diff --git a/examples/adms/bsimcmg/ac.sp b/examples/adms/bsimcmg/ac.sp new file mode 100644 index 000000000..422769943 --- /dev/null +++ b/examples/adms/bsimcmg/ac.sp @@ -0,0 +1,35 @@ +*Sample netlist for BSIM-MG +*AC Response + +.option abstol=1e-6 reltol=1e-6 post ingold + +.hdl "bsimcmg.va" +.include "modelcard.nmos" + +.param myvdd=1.0 + +* --- Voltage Sources --- +vdd supply 0 dc=myvdd +vsig gate 0 dc=0.5 ac=1 +vbs bulk 0 dc=0 + +* --- Transistor --- +X1 vout gate 0 bulk nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 + +* --- Load --- +rl supply vout r=2k +cl supply vout c=10f + +* --- AC Analysis --- +.ac dec 10 1k 1T + +* For Bias Point Testing +* .dc vsig -1 1.5 0.01 + +.print ac vm(vout) vp(vout) + +*.alter +*.param myvdd=2.0 + +.end + diff --git a/examples/adms/bsimcmg/cfrgeo.sp b/examples/adms/bsimcmg/cfrgeo.sp new file mode 100644 index 000000000..f73f306bf --- /dev/null +++ b/examples/adms/bsimcmg/cfrgeo.sp @@ -0,0 +1,49 @@ +*Sample netlist for BSIM-MG +* Geometry-dependent Cfr +* +.option abstol=1e-6 reltol=1e-6 post ingold +.temp 27 + +.hdl "bsimcmg.va" + +.param hfin=30n + +.model nmos2 bsimcmg ++ DEVTYPE=1 ++ CGEOMOD=2 ++ HEPI=10n ++ LSP=5n ++ EPSRSP=7.5 ++ TGATE=40n ++ TMASK=10n ++ TSILI=0n ++ CRATIO=1.0 ++ EOT=1.0n ++ TOXP=1.2n ++ HFIN=hfin + +* --- Voltage Sources --- +vds supply 0 dc=0 +vgs gate 0 dc=0 +vbs bulk 0 dc=0 + +* --- Transistor --- +X1 supply gate 0 bulk nmos2 TFIN=10n L=30n NFIN=1 FPITCH=20n LRSD=40n +X2 supply gate 0 bulk nmos2 TFIN=10n L=30n NFIN=1 FPITCH=40n LRSD=40n +X3 supply gate 0 bulk nmos2 TFIN=10n L=30n NFIN=1 FPITCH=60n LRSD=40n +X4 supply gate 0 bulk nmos2 TFIN=10n L=30n NFIN=1 FPITCH=80n LRSD=40n + +* --- DC Analysis --- +.dc vgs 0.0 1.0 1.5 +.print dc par'hfin' X1:CFGEO X2:CFGEO X3:CFGEO X4:CFGEO + +.alter +.param hfin=40n + +.alter +.param hfin=50n + +.alter +.param hfin=60n + +.end diff --git a/examples/adms/bsimcmg/gummel_n.sp b/examples/adms/bsimcmg/gummel_n.sp new file mode 100644 index 000000000..0a936acb6 --- /dev/null +++ b/examples/adms/bsimcmg/gummel_n.sp @@ -0,0 +1,28 @@ +*Sample netlist for BSIM-MG +*Drain current symmetry for nmos + +.option abstol=1e-6 reltol=1e-6 post ingold + +.hdl "bsimcmg.va" +.include "modelcard.nmos" + +* --- Voltage Sources --- +vdrain drain 0 dc=0 +esource source 0 drain 0 -1 +vgate gate 0 dc=1.0 +vbulk bulk 0 dc=0.0 + + +* --- Transistor --- +X1 drain gate source bulk nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 + +* --- DC Analysis --- +.dc vdrain -0.1 0.1 0.001 vgate 0.0 1.0 0.2 +.probe dc ids=par'-i(vdrain)' +.probe dc gx=deriv(ids) +.probe dc gx2=deriv(gx) +.probe dc gx3=deriv(gx2) +.probe dc gx4=deriv(gx3) +.print dc par'ids' par'gx' par'gx2' par'gx3' par 'gx4' + +.end diff --git a/examples/adms/bsimcmg/gummel_p.sp b/examples/adms/bsimcmg/gummel_p.sp new file mode 100644 index 000000000..399db7085 --- /dev/null +++ b/examples/adms/bsimcmg/gummel_p.sp @@ -0,0 +1,28 @@ +*Sample netlist for BSIM-MG +*Drain current symmetry + +.option abstol=1e-6 reltol=1e-6 post ingold + +.hdl "bsimcmg.va" +.include "modelcard.pmos" + +* --- Voltage Sources --- +vdrain drain 0 dc=0 +esource source 0 drain 0 -1 +vgate gate 0 dc=-1.0 +vbulk bulk 0 dc=0 + + +* --- Transistor --- +X1 drain gate source bulk pmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 + +* --- DC Analysis --- +.dc vdrain -0.1 0.1 0.001 vgate 0.0 -1.0 -0.2 +.probe dc ids=par'-i(vdrain)' +.probe dc gx=deriv(ids) +.probe dc gx2=deriv(gx) +.probe dc gx3=deriv(gx2) +.probe dc gx4=deriv(gx3) +.print dc par'ids' par'gx' par'gx2' par'gx3' par 'gx4' + +.end diff --git a/examples/adms/bsimcmg/idvdnmos.sp b/examples/adms/bsimcmg/idvdnmos.sp new file mode 100644 index 000000000..a02bcb480 --- /dev/null +++ b/examples/adms/bsimcmg/idvdnmos.sp @@ -0,0 +1,30 @@ +*Sample netlist for BSIM-MG +*Id-Vd Characteristics for NMOS (T = 27 C) + +.option abstol=1e-6 reltol=1e-6 post ingold +.temp -55 + +.hdl "bsimcmg.va" +.include "modelcard.nmos.1" + +* --- Voltage Sources --- +vds drain 0 dc=0 +vgs gate 0 dc=1.0 +vbs bulk 0 dc=0.2 + +* --- Transistor --- +X1 drain gate 0 bulk nmos1 TFIN=15n L=40n NFIN=10 NRS=1 NRD=1 + +* --- DC Analysis --- +.dc vds 0 1 0.01 vgs 0 1.0 0.1 +.probe dc ids=par`-i(vds)` +.probe dc gds=deriv(ids) +.print dc par'ids' par'gds' + +.alter +.temp 27 + +.alter +.temp 100 + +.end diff --git a/examples/adms/bsimcmg/idvdpmos.sp b/examples/adms/bsimcmg/idvdpmos.sp new file mode 100644 index 000000000..8cd924102 --- /dev/null +++ b/examples/adms/bsimcmg/idvdpmos.sp @@ -0,0 +1,30 @@ +*Sample netlist for BSIM-MG +*Id-Vd Characteristics for PMOS (T = 27 C) + +.option abstol=1e-6 reltol=1e-6 post ingold +.temp -55 + +.hdl "bsimcmg.va" +.include "modelcard.pmos.1" + +* --- Voltage Sources --- +vds drain 0 dc=0 +vgs gate 0 dc=-1 +vbs bulk 0 dc=0 + +* --- Transistor --- +X1 drain gate 0 bulk pmos1 TFIN=15n L=40n NFIN=10 NRS=1 NRD=1 + +* --- DC Analysis --- +.dc vds 0 -1 -0.01 vgs 0 -1.0 -0.1 +.probe dc ids=par`i(vds)` +.probe dc gds=deriv(ids) +.print dc par'ids' par'-gds' + +.alter +.temp 27 + +.alter +.temp 100 + +.end diff --git a/examples/adms/bsimcmg/idvgnmos.sp b/examples/adms/bsimcmg/idvgnmos.sp new file mode 100644 index 000000000..3402ff114 --- /dev/null +++ b/examples/adms/bsimcmg/idvgnmos.sp @@ -0,0 +1,31 @@ +*Sample netlist for BSIM-MG +*Id-Vg Characteristics for NMOS (T = 27 C) + +.option abstol=1e-6 reltol=1e-6 post ingold +.temp 27 + +.hdl "bsimcmg.va" +.include "modelcard.nmos.1" + +* --- Voltage Sources --- +vds supply 0 dc=0.05 +vgs gate 0 dc=1 +vbs bulk 0 dc=0 +vt t 0 dc= 0 + +* --- Transistor --- +X1 supply gate 0 bulk t nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 + +* --- DC Analysis --- +.dc vgs -0.5 1.0 0.01 vds 0.05 1 0.95 +.probe dc par'-i(vds)' +.probe dc par'-i(vbs)' +.print dc i(X1.d) + +.alter +.temp -55 + +.alter +.temp 100 + +.end diff --git a/examples/adms/bsimcmg/idvgpmos.sp b/examples/adms/bsimcmg/idvgpmos.sp new file mode 100644 index 000000000..cfaa4466f --- /dev/null +++ b/examples/adms/bsimcmg/idvgpmos.sp @@ -0,0 +1,30 @@ +*Sample netlist for BSIM-MG +*Id-Vg Characteristics for PMOS (T = 27 C) + +.option abstol=1e-6 reltol=1e-6 post ingold +.temp -55 + +.hdl "bsimcmg.va" +.include "modelcard.pmos.1" + +* --- Voltage Sources --- +vds supply 0 dc=-1 +vgs gate 0 dc=-1 +vbs bulk 0 dc=0 + +* --- Transistor --- +X1 supply gate 0 bulk pmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 + +* --- DC Analysis --- +.dc vgs 0.5 -1.0 -0.01 +.probe dc ids=par`i(vds)` +.probe dc gds=deriv(ids) +.print dc par'ids' par'-gds' + +.alter +.temp 27 + +.alter +.temp 100 + +.end diff --git a/examples/adms/bsimcmg/invdc.sp b/examples/adms/bsimcmg/invdc.sp new file mode 100644 index 000000000..8f7aea5e4 --- /dev/null +++ b/examples/adms/bsimcmg/invdc.sp @@ -0,0 +1,28 @@ +*Sample netlist for BSIM-MG +*Inverter Transient + +.option abstol=1e-6 reltol=1e-6 post ingold + +.hdl "bsimcmg.va" +.include "modelcard.nmos" +.include "modelcard.pmos" + +* --- Voltage Sources --- +vdd supply 0 dc=1.0 +vin vi 0 dc=0.5 + +* --- Inverter Subcircuit --- +.subckt mg_inv vin vout vdd gnd + Xp1 vout vin vdd gnd pmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 + Xn1 vout vin gnd gnd nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 +.ends + +* --- Inverter --- +Xinv1 vi vo supply 0 mg_inv + +* --- Transient Analysis --- +.dc vin 0 1 0.01 + +.print dc v(vi) v(vo) + +.end diff --git a/examples/adms/bsimcmg/inverter_transient.sp b/examples/adms/bsimcmg/inverter_transient.sp new file mode 100644 index 000000000..a0d1d73c2 --- /dev/null +++ b/examples/adms/bsimcmg/inverter_transient.sp @@ -0,0 +1,32 @@ +*Sample netlist for BSIM-MG +*Inverter Transient + +.option abstol=1e-6 reltol=1e-6 post ingold + +.hdl "bsimcmg.va" +.include "modelcard.nmos" +.include "modelcard.pmos" + +* --- Voltage Sources --- +vdd supply 0 dc=1.0 +vsig vi 0 dc=0.5 sin (0.5 0.5 1MEG) + +* --- Inverter Subcircuit --- +.subckt mg_inv vin vout vdd gnd + Xp1 vout vin vdd gnd pmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1 + Xn1 vout vin gnd gnd nmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1 +.ends + +* --- Inverter --- +Xinv1 vi 1 supply 0 mg_inv +Xinv2 1 2 supply 0 mg_inv +Xinv3 2 3 supply 0 mg_inv +Xinv4 3 4 supply 0 mg_inv +Xinv5 4 vo supply 0 mg_inv + +* --- Transient Analysis --- +.tran 10n 5u + +.print tran v(vi) v(vo) + +.end diff --git a/examples/adms/bsimcmg/modelcard.nmos b/examples/adms/bsimcmg/modelcard.nmos new file mode 100644 index 000000000..fda0dd386 --- /dev/null +++ b/examples/adms/bsimcmg/modelcard.nmos @@ -0,0 +1,140 @@ +******** BSIM-MG 105 Sample Modelcard for NMOS ******** + +** The BSIM-MG sample modelcard below was not extracted/obtained +** from/based on any real technologies. It should not be used for any +** other purposes except for benchmarking the implementation of BSIM-MG +** against BSIM Team's standard results + +.model nmos1 bsimcmg ++ BULKMOD = 1 ++ CGEOMOD = 0 ++ TYPE = 1 ++ GEOMOD = 0 ++ GIDLMOD = 1 ++ IGBMOD = 0 ++ IGCMOD = 1 ++ IIMOD = 0 ++ NGATE = 0 ++ NQSMOD = 0 ++ RDSMOD = 0 ++ RGATEMOD = 0 ++ RGEOMOD = 0 ++ NSEG = 5 ++ SDTERM = 0 ++ SHMOD = 0 ++ AGIDL = 1.00E-12 ++ AGISL = 1.00E-12 ++ AIGC = 0.014 ++ AIGD = 0.0115 ++ AIGS = 0.0115 ++ AT = 0.001 ++ BG0SUB = 1.17 ++ BGIDL = 1.00E+07 ++ BGISL = 1.00E+07 ++ BIGC = 0.005 ++ BIGD = 0.00332 ++ BIGS = 0.00332 ++ CDSC = 0.01 ++ CDSCD = 0.01 ++ CFD = 0.20E-10 ++ CFS = 0.20E-10 ++ CGBL = 0 ++ CGBO = 0 ++ CGDL = 0 ++ CGDO = 1e-10 ++ CGSL = 0 ++ CGSO = 1e-10 ++ CIGC = 0.25 ++ CIGD = 0.35 ++ CIGS = 0.35 ++ CIT = 0 ++ CKAPPAD = 0.6 ++ CKAPPAS = 0.6 ++ CTH0 = 0.000001243 ++ DELTAVSAT = 0.5 ++ DELTAW = 0 ++ DELTAWCV = 0 ++ DLBIN = 0 ++ DLC = 0 ++ DLCIGD = 1.00E-09 ++ DLCIGS = 1.00E-09 ++ DROUT = 1 ++ DSUB = 0.5 ++ DVT0 = 0.05 ++ DVT1 = 0.5 ++ DVTSHIFT = 0 ++ EASUB = 4.05 ++ EGIDL = 0.35 ++ EGISL = 0.35 ++ EOT = 1.50E-09 ++ EOTACC = 1.00E-10 ++ EOTBOX = 1.40E-07 ++ EPSROX = 3.9 ++ EPSRSP = 3.9 ++ EPSRSUB = 11.9 ++ ETA0 = 0.05 ++ ETAMOB = 2 ++ ETAQM = 0.54 ++ EU = 1.2 ++ FPITCH = 4.00E-08 ++ HFIN = 3.00E-08 ++ IGT = 2.5 ++ K1RSCE = 0 ++ KSATIV = 2 ++ KT1 = 0 ++ KT1L = 0 ++ L = 2.50E-08 ++ LINT = -2.00E-09 ++ LPE0 = 0 ++ LCDSCD = 5.00E-05 ++ LCDSCDR = 5.00E-05 ++ LRDSW = 0.2 ++ LVSAT = 0 ++ MEXP = 4 ++ NBODY = 1.00E+22 ++ NC0SUB = 2.86E+25 ++ NI0SUB = 1.10E+16 ++ NSD = 2.00E+26 ++ PCLM = 0.05 ++ PCLMCV = 0.013 ++ PCLMG = 0 ++ PDIBL1 = 0 ++ PDIBL2 = 0.002 ++ PHIG = 4.39 ++ PHIN = 0.05 ++ POXEDGE = 1.1 ++ PQM = 0.66 ++ PRT = 0 ++ PTWG = 0 ++ PTWGT = 0.004 ++ PVAG = 0 ++ QM0 = 0.001 ++ QMFACTOR = 2.5 ++ RDSW = 200 ++ RDSWMIN = 0 ++ RDWMIN = 0 ++ RSHD = 0 ++ RSHS = 0 ++ RSWMIN = 0 ++ RTH0 = 0.225 ++ TBGASUB = 0.000473 ++ TBGBSUB = 636 ++ TFIN = 1.40E-08 ++ TGIDL = -0.007 ++ TMEXP = 0 ++ TNOM = 25 ++ TOXP = 2.10E-09 ++ U0 = 0.025 ++ UA = 0.55 ++ UA1 = 0.001032 ++ UCS = 1 ++ UCSTE = -0.004775 ++ UD = 0 ++ UD1 = 0 ++ UP = 0 ++ UTE = -0.7 ++ UTL = 0 ++ VSAT = 80000 ++ WR = 1 ++ WTH0 = 2.60E-07 ++ XL = 0 diff --git a/examples/adms/bsimcmg/modelcard.nmos.1 b/examples/adms/bsimcmg/modelcard.nmos.1 new file mode 100644 index 000000000..a6c4e39f9 --- /dev/null +++ b/examples/adms/bsimcmg/modelcard.nmos.1 @@ -0,0 +1,111 @@ +******** BSIM-MG 105 Sample Modelcard for NMOS ******** + +** The BSIM-MG sample modelcard below was not extracted/obtained +** from/based on any real technologies. It should not be used for any +** other purposes except for benchmarking the implementation of BSIM-MG +** against BSIM Team's standard results + +.model nmos1 bsimcmg ++ AGIDL = 50.00f ++ AGISL = 50.00f ++ AIGBINV = 11.10m ++ AIGC = 13.60m ++ AT = 0.007 ++ BG0SUB = 1.120 ++ BGIDL = 400.0E6 ++ BGISL = 400.0E6 ++ BIGBINV =-1.000m ++ BIGC = 1.710m ++ BULKMOD = 1 ++ CDSC = 5.000m ++ CDSCD = 5.000m ++ CFS = 1.0e-10 ++ CFD = 1.0e-10 ++ CGEOMOD = 0 ++ CGSL = 1.0e-10 ++ CGDL = 1.0e-10 ++ CIGBINV = 6.000m ++ CIGC = 75.00m ++ CIT = 0.000 ++ CTH0 = 2.0e-5 ++ D = 40n ++ DELTAW = 0.000 ++ DELTAWCV = 0.000 ++ TYPE = 1.000 ++ DLC = 0.000 ++ DROUT = 0.530 ++ DSUB = 0.530 ++ DVT0 = 0.000 ++ DVT1 = 300.0m ++ EASUB = 4.050 ++ EGIDL = 0.000 ++ EGISL = 0.000 ++ EIGBINV = 1.100 ++ EOT = 1.0n ++ EPSROX = 3.900 ++ EPSRSUB = 11.90 ++ ETA0 = 70.0m ++ ETAMOB = 2.500 ++ EU = 0.9 ++ FECH = 2.000 ++ FECHCV = 1.000 ++ GEOMOD = 1.000 ++ GIDLMOD = 1.000 ++ HFIN = 30n ++ IGCMOD = 1.000 ++ IGBMOD = 1.000 ++ K1RSCE = 0.000 ++ KSATIV = 1.000 ++ KT1 = 0.0 ++ LINT = 0.000 ++ LL = 0.000 ++ LLC = 0.000 ++ LLN = 1.000 ++ LPA = 0.000 ++ LPE0 = 5.000n ++ MEXP = 3 ++ NBODY = 1E+24 ++ NC0SUB = 2.86000E+25 ++ NGATE = 0.0 ++ NI0SUB = 1.10000E+16 ++ NIGBINV = 3.000 ++ NSD = 2.00000E+26 ++ PCLM = 0.000 ++ PDIBL1 = 0.300 ++ PDIBL2 = 0.000 ++ PHIG = 4.610 ++ PHIN = 50.00m ++ PRWGS = 0.000 ++ PVAG = 0.000 ++ QMFACTOR = 0.000 ++ RDSW = 100.0 ++ RDSWMIN = 0.000 ++ RSHS = 2.0 ++ RTH0 = 0.05 ++ U0 = 40m ++ UA = 0.100 ++ UA1 = 1.032m ++ UCS = 1.0 ++ UD = 1.0 ++ UP = 0.000 ++ UTE = 0.000 ++ UTL =-1.497m ++ VSAT = 150K ++ WR = 1.000 ++ XL = -5.00n ++ IIMOD =0.0 ++ BETAII0 = 0 ++ BETAII1 = .028 ++ BETAII2 = .067 ++ TII = -0.7 ++ SII0 = 3.4 ++ SII1 = .8 ++ SII2 = .08 ++ SIID = 0.08 ++ ESATII = 1.7e6 ++ LII = 3e-9 ++ RGATEMOD = 0 ++ RGFIN = 100 ++ NQSMOD = 0 ++ RDSMOD = 0 ++ SHMOD = 0 diff --git a/examples/adms/bsimcmg/modelcard.pmos b/examples/adms/bsimcmg/modelcard.pmos new file mode 100644 index 000000000..11ff8ace1 --- /dev/null +++ b/examples/adms/bsimcmg/modelcard.pmos @@ -0,0 +1,140 @@ +******** BSIM-MG 105 Sample Modelcard for PMOS ******** + +** The BSIM-MG sample modelcard below was not extracted/obtained +** from/based on any real technologies. It should not be used for any +** other purposes except for benchmarking the implementation of BSIM-MG +** against BSIM Team's standard results + +.model pmos1 bsimcmg ++ BULKMOD = 1 ++ CGEOMOD = 0 ++ TYPE = 0 ++ GEOMOD = 0 ++ GIDLMOD = 1 ++ IGBMOD = 0 ++ IGCMOD = 1 ++ IIMOD = 0 ++ NGATE = 0 ++ NQSMOD = 0 ++ RDSMOD = 0 ++ RGATEMOD = 0 ++ RGEOMOD = 0 ++ NSEG = 5 ++ SDTERM = 0 ++ SHMOD = 0 ++ AGIDL = 2E-12 ++ AGISL = 2E-12 ++ AIGC = 0.007 ++ AIGD = 0.006 ++ AIGS = 0.006 ++ AT = 0.0008234 ++ BG0SUB = 1.17 ++ BGIDL = 1.50E+08 ++ BGISL = 1.50E+08 ++ BIGC = 0.0015 ++ BIGD = 0.001944 ++ BIGS = 0.001944 ++ CDSC = 0.003469 ++ CDSCD = 0.001486 ++ CFD = 0.2e-10 ++ CFS = 0.2e-10 ++ CGBL = 0 ++ CGBO = 0 ++ CGDL = 0 ++ CGDO = 1E-10 ++ CGSL = 0 ++ CGSO = 1E-10 ++ CIGC = 1 ++ CIGD = 1 ++ CIGS = 1 ++ CIT = 0 ++ CKAPPAD = 0.6 ++ CKAPPAS = 0.6 ++ CTH0 = 1.243E-06 ++ DELTAVSAT = 11.56 ++ DELTAW = 0 ++ DELTAWCV = -1.00E-08 ++ DLBIN = 0 ++ DLC = -9.2E-09 ++ DLCIGD = 5.00E-09 ++ DLCIGS = 5.00E-09 ++ DROUT = 4.97 ++ DSUB = 0.5 ++ DVT0 = 0.05006 ++ DVT1 = 0.4 ++ DVTSHIFT = 0 ++ EASUB = 4.05 ++ EGIDL = 1.142 ++ EGISL = 1.142 ++ EOT = 2.10E-09 ++ EOTACC = 3.00E-10 ++ EOTBOX = 1.40E-07 ++ EPSROX = 3.9 ++ EPSRSP = 3.9 ++ EPSRSUB = 11.9 ++ ETA0 = 0.03952 ++ ETAMOB = 4 ++ ETAQM = 0.54 ++ EU = 0.05 ++ FPITCH = 4.00E-08 ++ HFIN = 3.00E-08 ++ IGT = 3.5 ++ K1RSCE = 0 ++ KSATIV = 1.592 ++ KT1 = 0.08387 ++ KT1L = 0 ++ L = 2.50E-08 ++ LINT = -2.5E-09 ++ LPE0 = 0 ++ LCDSCD = 0 ++ LCDSCDR = 0 ++ LRDSW = 1.3 ++ LVSAT = 1441 ++ MEXP = 2.491 ++ NBODY = 1E+22 ++ NC0SUB = 2.86E+25 ++ NI0SUB = 1.1E+16 ++ NSD = 2E+26 ++ PCLM = 0.01 ++ PCLMCV = 0.013 ++ PCLMG = 1 ++ PDIBL1 = 800 ++ PDIBL2 = 0.005704 ++ PHIG = 4.678 ++ PHIN = 0.05 ++ POXEDGE = 1.152 ++ PQM = 0.66 ++ PRT = 0.002477 ++ PTWG = 6.322 ++ PTWGT = 0.0015 ++ PVAG = 200 ++ QM0 = 2.183E-12 ++ QMFACTOR = 0 ++ RDSW = 190.6 ++ RDSWMIN = 0 ++ RDWMIN = 0 ++ RSHD = 0 ++ RSHS = 0 ++ RSWMIN = 0 ++ RTH0 = 0.15 ++ TBGASUB = 0.000473 ++ TBGBSUB = 636 ++ TFIN = 1.40E-08 ++ TGIDL = -0.01 ++ TMEXP = 0 ++ TNOM = 25 ++ TOXP = 2.1E-09 ++ U0 = 0.02935 ++ UA = 1.133 ++ UA1 = 0.00134 ++ UCS = 0.2672 ++ UCSTE = 0 ++ UD = 0.0105 ++ UD1 = 0 ++ UP = 0 ++ UTE = 0 ++ UTL = 0.001 ++ VSAT = 48390 ++ WR = 1 ++ WTH0 = 2.60E-07 ++ XL = 0 diff --git a/examples/adms/bsimcmg/modelcard.pmos.1 b/examples/adms/bsimcmg/modelcard.pmos.1 new file mode 100644 index 000000000..4cf06281f --- /dev/null +++ b/examples/adms/bsimcmg/modelcard.pmos.1 @@ -0,0 +1,111 @@ +******** BSIM-MG 105 Sample Modelcard for PMOS ******** + +** The BSIM-MG sample modelcard below was not extracted/obtained +** from/based on any real technologies. It should not be used for any +** other purposes except for benchmarking the implementation of BSIM-MG +** against BSIM Team's standard results + +.model pmos1 bsimcmg ++ AGIDL =3.000p ++ AGISL =3.000p ++ AIGBINV =11.10m ++ AIGC =13.60m ++ AT = 0.007 ++ BG0SUB =1.120 ++ BGIDL =350.0E6 ++ BGISL =350.0E6 ++ BIGBINV =-1.000m ++ BIGC =1.710m ++ BULKMOD = 1 ++ CDSC =13.00m ++ CDSCD =10.00m ++ CFS = 1.0e-10 ++ CFD = 1.0e-10 ++ CGEOMOD = 0 ++ CGSL = 1.0e-10 ++ CGDL = 1.0e-10 ++ CIGBINV =6.000m ++ CIGC =75.00m ++ CIT =0.000 ++ CTH0 = 2.0e-5 ++ D = 40n ++ DELTAW =0.000 ++ DELTAWCV =0.000 ++ TYPE = 0.000 ++ DLC =0.000 ++ DROUT =0.530 ++ DSUB =0.530 ++ DVT0 =0.000 ++ DVT1 =600.0m ++ EASUB =4.050 ++ EGIDL =0.000 ++ EGISL =0.000 ++ EIGBINV =1.100 ++ EOT = 1.0n ++ EPSROX =3.900 ++ EPSRSUB =11.90 ++ ETA0 =50.0m ++ ETAMOB =2.000 ++ EU = 0.5 ++ FECH =0.500 ++ FECHCV =1.000 ++ GEOMOD =1.000 ++ GIDLMOD =1.000 ++ HFIN = 30n ++ IGBMOD =1.000 ++ IGCMOD =1.000 ++ K1RSCE =0.000 ++ KSATIV =1.000 ++ KT1 = 0.0 ++ LINT =0.000 ++ LL =0.000 ++ LLC =0.000 ++ LLN =1.000 ++ LPA =0.000 ++ LPE0 =5.000n ++ MEXP = 3 ++ NBODY = 1E+24 ++ NC0SUB =2.86000E+25 ++ NGATE = 0.0 ++ NI0SUB =1.10000E+16 ++ NIGBINV =3.000 ++ NSD =2.00000E+26 ++ PCLM =5.000m ++ PDIBL1 = 0.300 ++ PDIBL2 = 0.000 ++ PHIN =50.00m ++ PHIG = 4.610 ++ PRWGS = 0.000 ++ PVAG = 0.000 ++ QMFACTOR = 0.000 ++ RDSW = 100.0 ++ RDSWMIN = 0.0 ++ RSHS = 2.0 ++ RTH0 = 0.05 ++ U0 =20.00m ++ UA = 1.000 ++ UA1 = 1.032m ++ UCS = 1.0 ++ UD = 1.0 ++ UP =0.000 ++ UTE = 0.000 ++ UTL =-1.497m ++ VSAT =150.0K ++ WR =1.000 ++ XL =-5n ++ IIMOD =0.0 ++ BETAII0 = 0 ++ BETAII1 = .028 ++ BETAII2 = .067 ++ TII = -0.7 ++ SII0 = 3.4 ++ SII1 = .8 ++ SII2 = .08 ++ SIID = 0.08 ++ ESATII = 1.7e6 ++ LII = 3e-9 ++ RGATEMOD = 0 ++ RGFIN = 100 ++ NQSMOD = 0 ++ RDSMOD = 0 ++ SHMOD = 0 diff --git a/examples/adms/bsimcmg/noise.sp b/examples/adms/bsimcmg/noise.sp new file mode 100644 index 000000000..799437f68 --- /dev/null +++ b/examples/adms/bsimcmg/noise.sp @@ -0,0 +1,31 @@ +*Samle netlist for BSIM-MG +* Drain Noise Simulation + +.option abstol=1e-6 reltol=1e-6 post ingold +.temp 27 + +.hdl "bsimcmg.va" +.include "modelcard.nmos" + +* --- Voltage Sources --- +vds 1 0 dc=1v +vgs gate 0 dc=0.5v ac=1 +vbs bulk 0 dc=0v + +* --- Circuit --- +lbias 1 drain 1m +cload drain 2 1m +rload 2 0 R=1 noise=0 +X1 drain gate 0 bulk nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 + +* --- Analysis --- +.op +*.dc vgs -0.5 1.5 0.01 +*.print dc i(lbias) +.ac dec 11 1k 100g +.noise v(drain) vgs 1 +*.print ac i(cload) +.print ac v(drain) +.print noise inoise onoise +.end + diff --git a/examples/adms/bsimcmg/rdsgeo.sp b/examples/adms/bsimcmg/rdsgeo.sp new file mode 100644 index 000000000..d9b3d9b05 --- /dev/null +++ b/examples/adms/bsimcmg/rdsgeo.sp @@ -0,0 +1,58 @@ +*Sample netlist for BSIM-MG +* Geometry-dependent Rds + +.option abstol=1e-6 reltol=1e-6 post ingold +.temp 27 + +.hdl "bsimcmg.va" + +.model nmos2 bsimcmg ++ DEVTYPE=1 ++ RGEOMOD=1 ++ HEPI=15n ++ CRATIO=0.5 ++ DELTAPRSD=12.42n ++ RHOC=1.0p ++ LSP=15n ++ HFIN=30n ++ NSD=2.0e+26 ++ LINT = 0 + +.model pmos2 bsimcmg ++ DEVTYPE=0 ++ RGEOMOD=1 ++ HEPI=15n ++ CRATIO=0.5 ++ DELTAPRSD=12.42n ++ RHOC=1.0p ++ LSP=15n ++ HFIN=30n ++ NSD=2.0e+26 ++ LINT = 0 + +.param fp = 45n + +* --- Voltage Sources --- +vds supply 0 dc=0 +vgs gate 0 dc=0 +vbs bulk 0 dc=0 + +* --- Transistor --- +Xn1 supply gate 0 bulk nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=20n +Xn2 supply gate 0 bulk nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=40n +Xn3 supply gate 0 bulk nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=60n +Xn4 supply gate 0 bulk nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=80n +Xp1 supply gate 0 bulk pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=20n +Xp2 supply gate 0 bulk pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=40n +Xp3 supply gate 0 bulk pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=60n +Xp4 supply gate 0 bulk pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp SDTERM=0 LRSD=80n + +* --- DC Analysis --- +.dc vgs 0.0 1.0 2.0 +.print dc Xn1:RSGEO Xn2:RSGEO Xn3:RSGEO Xn4:RSGEO +.print dc Xp1:RSGEO Xp2:RSGEO Xp3:RSGEO Xp4:RSGEO + +.alter +.param fp=90n + +.end diff --git a/examples/adms/bsimcmg/ringosc_17stg.sp b/examples/adms/bsimcmg/ringosc_17stg.sp new file mode 100644 index 000000000..40c14ee53 --- /dev/null +++ b/examples/adms/bsimcmg/ringosc_17stg.sp @@ -0,0 +1,51 @@ +*Sample netlist for BSIM-MG +*17-stage ring oscillator + +*.options abstol=1e-6 reltol=1e-6 post ingold +.options abstol=1e-6 reltol=1e-6 post ingold dcon=1 + +.hdl "bsimcmg.va" +.include "modelcard.nmos" +.include "modelcard.pmos" + +* --- Voltage Sources --- +vdd supply 0 dc=1.0 + +* --- Inverter Subcircuit --- +.subckt mg_inv vin vout vdd gnd + Xp1 vout vin vdd gnd pmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1 + Xn1 vout vin gnd gnd nmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1 +.ends + +* --- 17 Stage Ring oscillator --- +Xinv1 1 2 supply 0 mg_inv +Xinv2 2 3 supply 0 mg_inv +Xinv3 3 4 supply 0 mg_inv +Xinv4 4 5 supply 0 mg_inv +Xinv5 5 6 supply 0 mg_inv +Xinv6 6 7 supply 0 mg_inv +Xinv7 7 8 supply 0 mg_inv +Xinv8 8 9 supply 0 mg_inv +Xinv9 9 10 supply 0 mg_inv +Xinv10 10 11 supply 0 mg_inv +Xinv11 11 12 supply 0 mg_inv +Xinv12 12 13 supply 0 mg_inv +Xinv13 13 14 supply 0 mg_inv +Xinv14 14 15 supply 0 mg_inv +Xinv15 15 16 supply 0 mg_inv +Xinv16 16 17 supply 0 mg_inv +Xinv17 17 1 supply 0 mg_inv + +* --- Initial Condition --- +.ic 1=1 + +.tran 1p 1n + +.print tran v(1) + +.measure tran t1 when v(1)=0.5 cross=1 +.measure tran t2 when v(1)=0.5 cross=7 +.measure tran period param'(t2-t1)/3' +.measure tran delay_per_stage param'period/34' + +.end