remove bsimcmg completely

This commit is contained in:
rlar 2018-03-18 14:44:33 +01:00
parent 9940d00b8f
commit ca391753b0
29 changed files with 2 additions and 6722 deletions

View File

@ -956,7 +956,6 @@ if test "x$enable_adms" = xyes ; then
AC_DEFINE([ADMS], [1], [Support for Verilog-A models])
VLADEVDIR=" adms/bsimbulk \
adms/bsimcmg \
adms/ekv \
adms/hicum0 \
adms/hicum2 \
@ -965,7 +964,6 @@ if test "x$enable_adms" = xyes ; then
# The makefiles for adms (to be added to AC_CONFIG_FILES by ./autogen.sh --adms)
#VLAMKF src/spicelib/devices/adms/bsimbulk/Makefile
#VLAMKF src/spicelib/devices/adms/bsimcmg/Makefile
#VLAMKF src/spicelib/devices/adms/ekv/Makefile
#VLAMKF src/spicelib/devices/adms/hicum0/Makefile
#VLAMKF src/spicelib/devices/adms/hicum2/Makefile
@ -975,7 +973,6 @@ if test "x$enable_adms" = xyes ; then
NOTVLADEVDIR=""
VLADEV=" spicelib/devices/adms/bsimbulk/libbsimbulk.la \
spicelib/devices/adms/bsimcmg/libbsimcmg.la \
spicelib/devices/adms/ekv/libekv.la \
spicelib/devices/adms/hicum0/libhicum0.la \
spicelib/devices/adms/hicum2/libhicum2.la \

View File

@ -1,44 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*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 ---
m1 vout gate 0 bulk 0 nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1
+ FPITCH = 4.00E-08
* --- 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
.control
run
plot vdb(vout)
plot cph(vout)
.endc
.end

View File

@ -1,65 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
* Geometry-dependent Cfr
*
.option abstol=1e-6 reltol=1e-6 post ingold
.temp 27
*.hdl "bsimcmg.va"
.param hfin=30n
.model nmos2 NMOS level=17
+ 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 ---
M1 supply gate 0 bulk 0 nmos2 TFIN=10n L=30n NFIN=1 FPITCH=20n LRSD=40n
M2 supply gate 0 bulk 0 nmos2 TFIN=10n L=30n NFIN=1 FPITCH=40n LRSD=40n
M3 supply gate 0 bulk 0 nmos2 TFIN=10n L=30n NFIN=1 FPITCH=60n LRSD=40n
M4 supply gate 0 bulk 0 nmos2 TFIN=10n L=30n NFIN=1 FPITCH=80n LRSD=40n
* --- DC Analysis ---
.dc vgs 0.0 1.0 0.1
*.print dc par'hfin' M1:CFGEO M2:CFGEO M3:CFGEO M4:CFGEO
.control
save @m1[CFGEO] @m2[CFGEO] @m3[CFGEO] @m4[CFGEO]
showmod #nmos2 : HFIN
run
plot @m1[CFGEO] @m2[CFGEO] @m3[CFGEO] @m4[CFGEO]
altermod nmos2 hfin = 40n
showmod #nmos2 : HFIN
run
plot @m1[CFGEO] @m2[CFGEO] @m3[CFGEO] @m4[CFGEO]
altermod nmos2 hfin = 50n
showmod #nmos2 : HFIN
run
plot @m1[CFGEO] @m2[CFGEO] @m3[CFGEO] @m4[CFGEO]
altermod nmos2 hfin = 60n
showmod #nmos2 : HFIN
run
plot @m1[CFGEO] @m2[CFGEO] @m3[CFGEO] @m4[CFGEO]
.endc
.end

View File

@ -1,48 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*Drain current symmetry for nmos
.option abstol=1e-6 reltol=1e-6 post ingold
.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 ---
m1 drain gate source bulk 0 nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1
+ FPITCH = 4.00E-08
* --- 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'
.control
save @m1[VDSSAT]
save @m1[GDS]
run
show all
let ids = -i(vdrain)
let gx = deriv(ids)
let gx2 = deriv(gx)
let gx3 = deriv(gx2)
let gx4 = deriv(gx3)
plot ids
plot @m1[VDSSAT]
plot @m1[GDS]
plot gx
plot gx2
plot gx3
plot gx4
.endc
.end

View File

@ -1,45 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*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 ---
m1 drain gate source bulk 0 pmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1
+ FPITCH = 4.00E-08
* --- 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'
.control
run
let ids = -i(vdrain)
let gx = deriv(ids)
let gx2 = deriv(gx)
let gx3 = deriv(gx2)
let gx4 = deriv(gx3)
plot ids
plot gx
plot gx2
plot gx3
plot gx4
.endc
.end

View File

@ -1,55 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*Id-Vd Characteristics for NMOS (T = 27 C)
.option abstol=1e-6 reltol=1e-6 post ingold
*.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 ---
m1 drain gate 0 bulk 0 nmos1 TFIN=15n L=40n NFIN=10 NRS=1 NRD=1 D=40n
* --- 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'
.control
save @m1[gds]
set temp = -55
run
let ids = -i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gds]
save @m1[gds]
set temp = 27
run
let ids = -i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gds]
set temp = 100
run
let ids = -i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gds]
*show all
.endc
.end

View File

@ -1,55 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*Id-Vd Characteristics for PMOS (T = 27 C)
.option abstol=1e-6 reltol=1e-6 post ingold
*.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 ---
m1 drain gate 0 bulk 0 pmos1 TFIN=15n L=40n NFIN=10 NRS=1 NRD=1
+ D = 40n
* --- 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'
.control
save @m1[gds]
set temp = 27
run
let ids = i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gds]
set temp = -55
run
let ids = i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gds]
set temp = 100
run
let ids = i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gds]
.endc
.end

View File

@ -1,43 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*Id-Vg Characteristics for NMOS (T = 27 C)
.option abstol=1e-6 reltol=1e-6 post ingold
*.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 ---
m1 supply gate 0 bulk t nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1 D=40n
* --- 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)
.control
set temp = 27
run
plot -i(vds)
plot -i(vbs)
set temp = -55
run
plot -i(vds)
plot -i(vbs)
set temp = 100
run
plot -i(vds)
plot -i(vbs)
.endc
.end

View File

@ -1,55 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*Id-Vg Characteristics for PMOS (T = 27 C)
.option abstol=1e-6 reltol=1e-6 post ingold
*.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 ---
m1 supply gate 0 bulk 0 pmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1
+ D = 40n
* --- 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'
.control
save @m1[gm]
set temp = 27
run
let ids = i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gm]
set temp = -55
run
let ids = i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gm]
set temp = 100
run
let ids = i(vds)
let xgds = deriv(ids)
plot ids
plot xgds
plot @m1[gm]
.endc
.end

View File

@ -1,37 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*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
mp1 vout vin vdd gnd 0 pmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1
+ FPITCH = 4.00E-08
mn1 vout vin gnd gnd 0 nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1
+ FPITCH = 4.00E-08
.ends
* --- Inverter ---
Xinv1 vi vo supply 0 mg_inv
* --- Transient Analysis ---
.dc vin 0 1 0.01
.print dc v(vi) v(vo)
.control
run
plot v(vi) v(vo)
.endc
.end

View File

@ -1,41 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*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
mp1 vout vin vdd gnd 0 pmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1
+ FPITCH = 4.00E-08
mn1 vout vin gnd gnd 0 nmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1
+ FPITCH = 4.00E-08
.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 20n 5u
.print tran v(vi) v(vo)
.control
run
plot v(vi) v(vo)
.endc
.end

View File

@ -1,137 +0,0 @@
******** 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 NMOS level=17
+ 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
+ HFIN = 3.00E-08
+ IGT = 2.5
+ K1RSCE = 0
+ KSATIV = 2
+ KT1 = 0
+ KT1L = 0
+ 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
+ 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

View File

@ -1,110 +0,0 @@
******** 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 NMOS level=17
+ 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
+ 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

View File

@ -1,137 +0,0 @@
******** 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 PMOS level=17
+ 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
+ HFIN = 3.00E-08
+ IGT = 3.5
+ K1RSCE = 0
+ KSATIV = 1.592
+ KT1 = 0.08387
+ KT1L = 0
+ 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
+ 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

View File

@ -1,110 +0,0 @@
******** 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 PMOS level=17
+ 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
+ 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

View File

@ -1,46 +0,0 @@
*Samle netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
* 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
M1 drain gate 0 bulk 0 nmos1 TFIN=15n L=30n NFIN=10 NRS=1 NRD=1
+ FPITCH = 4.00E-08
* --- 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
.control
op
ac dec 11 1k 100g
plot vdb(drain)
noise v(drain) vgs dec 11 1k 100g
print all
echo "silence in the studio, no noise today"
.endc
.end

View File

@ -1,77 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
* Geometry-dependent Rds
.option abstol=1e-6 reltol=1e-6 post ingold
.temp 27
*.hdl "bsimcmg.va"
.model nmos2 NMOS level=17
+ 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 PMOS level=17
+ 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 ---
Mn1 supply gate 0 bulk 0 nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=20n
Mn2 supply gate 0 bulk 0 nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=40n
Mn3 supply gate 0 bulk 0 nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=60n
Mn4 supply gate 0 bulk 0 nmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=80n
Mp1 supply gate 0 bulk 0 pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=20n
Mp2 supply gate 0 bulk 0 pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=40n
Mp3 supply gate 0 bulk 0 pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=60n
Mp4 supply gate 0 bulk 0 pmos2 TFIN=15n L=30n NFIN=10 FPITCH=fp LRSD=80n
* --- DC Analysis ---
.dc vgs 0.0 1.0 0.1
.print dc Xn1:RSGEO Xn2:RSGEO Xn3:RSGEO Xn4:RSGEO
.print dc Xp1:RSGEO Xp2:RSGEO Xp3:RSGEO Xp4:RSGEO
.control
save @Mn1[RSGEO] @Mn2[RSGEO] @Mn3[RSGEO] @Mn4[RSGEO]
save @Mp1[RSGEO] @Mp2[RSGEO] @Mp3[RSGEO] @Mp4[RSGEO]
run
plot @Mn1[RSGEO] @Mn2[RSGEO] @Mn3[RSGEO] @Mn4[RSGEO]
plot @Mp1[RSGEO] @Mp2[RSGEO] @Mp3[RSGEO] @Mp4[RSGEO]
alter @mn1[FPITCH] = 90n
alter @mn2[FPITCH] = 90n
alter @mn3[FPITCH] = 90n
alter @mn4[FPITCH] = 90n
alter @mp1[FPITCH] = 90n
alter @mp2[FPITCH] = 90n
alter @mp3[FPITCH] = 90n
alter @mp4[FPITCH] = 90n
run
plot @Mn1[RSGEO] @Mn2[RSGEO] @Mn3[RSGEO] @Mn4[RSGEO]
plot @Mp1[RSGEO] @Mp2[RSGEO] @Mp3[RSGEO] @Mp4[RSGEO]
.endc
.end

View File

@ -1,60 +0,0 @@
*Sample netlist for BSIM-MG
* (exec-spice "ngspice %s" t)
*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
mp1 vout vin vdd gnd 0 pmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1
+ FPITCH = 4.00E-08
mn1 vout vin gnd gnd 0 nmos1 TFIN=15n L=30n NFIN=10 ASEO=1.5e-14 ADEO=1.5e-14 NRS=1 NRD=1
+ FPITCH = 4.00E-08
.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 v(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'
.control
run
plot v(1)
.endc
.end

View File

@ -2187,53 +2187,6 @@
</admst:if>
</admst:when>
<admst:when test="[lower-case(name)='bsimcmg']">
<admst:if test="[nilled(variable[name='nmos'])]">
<admst:value-of select="analog"/>
<admst:value-of select="."/>
<admst:new datatype="variable" arguments="%p,nmos,%p">
<admst:push into="module/variable" select="." onduplicate="ignore"/>
<admst:value-to select="sizetype" value="scalar"/>
<admst:value-to select="type" value="integer"/>
<admst:value-to select="input" value="yes"/>
<admst:value-to select="output" value="yes"/>
<admst:value-to select="parametertype" value="model"/>
<admst:value-to select="scope" value="global_model"/>
<admst:new datatype="number" arguments="1">
<admst:value-to select="scalingunit" value="1"/>
<admst:value-of select="."/>
<admst:value-of select="../module"/>
<admst:new datatype="expression" arguments="%p,%p">
<admst:value-of select="."/>
<admst:value-to select="../../default" value="%p"/>
</admst:new>
</admst:new>
</admst:new>
</admst:if>
<admst:if test="[nilled(variable[name='pmos'])]">
<admst:value-of select="analog"/>
<admst:value-of select="."/>
<admst:new datatype="variable" arguments="%p,pmos,%p">
<admst:push into="module/variable" select="." onduplicate="ignore"/>
<admst:value-to select="sizetype" value="scalar"/>
<admst:value-to select="type" value="integer"/>
<admst:value-to select="input" value="yes"/>
<admst:value-to select="output" value="yes"/>
<admst:value-to select="parametertype" value="model"/>
<admst:value-to select="scope" value="global_model"/>
<admst:new datatype="number" arguments="1">
<admst:value-to select="scalingunit" value="1"/>
<admst:value-of select="."/>
<admst:value-of select="../module"/>
<admst:new datatype="expression" arguments="%p,%p">
<admst:value-of select="."/>
<admst:value-to select="../../default" value="%p"/>
</admst:new>
</admst:new>
</admst:new>
</admst:if>
</admst:when>
<admst:otherwise>
<admst:value-of select="name"/>
<admst:fatal format="%s: device not handled by the adms ngspice interface\n"/>

View File

@ -1,117 +0,0 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 *****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016__________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
`include "constants.vams"
`include "disciplines.vams"
/**************************************************************/
/* SHMOD is a model parameter */
/* SHMOD = 1 : Self-heating turned on */
/* SHMOD = 0 : Self-heating turned off */
/* */
/* RDSMOD is a model parameter */
/* RDSMOD = 1 : External source/drain resistance model */
/* RDSMOD = 0 : Internal source/drain resistance model */
/* RDSMOD = 2 : Internal Bias Dependent and Bias Independent part of source/drain resistance */
/* */
/* NQSMOD is a model parameter */
/* NQSMOD = 1 : NQS Resistance / gi node turned on */
/* NQSMOD = 0 : NQS Resistance / gi node turned off */
/* */
/* RGATEMOD is a model parameter */
/* RGATEMOD = 1 : Gate Resistance / ge node turned on */
/* RGATEMOD = 0 : Gate Resistance / ge node turned off */
/**************************************************************/
//
// In Verilog-A the number of internal nodes cannot be controlled by
// a model parameter. Therefore we use `define statements
// to control it. Comment the following lines whenever
// possible for best computational efficiency.
`define __OPINFO__
`define __DEBUG__
`define __SHMOD__
`define __RDSMOD__
//`define __NQSMOD1__
//`define __NQSMOD2__
`define __RGATEMOD__
`define __TNOIMOD1__ //Correlated Thermal Noise Switch
`include "common_defs.include"
`include "bsimcmg_cfringe.include"
module bsimcmg(d, g, s, e, t);
inout g, d, s, e, t;
electrical g, d, s, e;
electrical si, di;
`ifdef __NQSMOD1__
electrical gi;
`endif
`ifdef __NQSMOD2__
electrical q;
`endif
`ifdef __RGATEMOD__
electrical ge;
`endif
`ifdef __SHMOD__
thermal t;
branch (t) rth_branch;
branch (t) ith_branch;
`else
thermal t;
`endif
// Internal node controlled by Correlated Thermal Noise Switch
`ifdef __TNOIMOD1__
electrical N;
`endif
`include "bsimcmg_body.include"
endmodule

View File

@ -1,756 +0,0 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016_________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
`MPRnb( LNBODY ,0.0 ,"m^-2" ,"" )
`MPRnb( NNBODY ,0.0 ,"m^-2" ,"" )
`MPRnb( PNBODY ,0.0 ,"m^-1" ,"" )
`MPRnb( LPHIG ,0.0 ,"m*eV" ,"" )
`MPRnb( NPHIG ,0.0 ,"m*eV" ,"" )
`MPRnb( PPHIG ,0.0 ,"(m^2)*eV" ,"" )
`MPRnb( LNGATE ,0.0 ,"m^-2" ,"" )
`MPRnb( NNGATE ,0.0 ,"m^-2" ,"" )
`MPRnb( PNGATE ,0.0 ,"m^-1" ,"" )
`MPRnb( LCIT ,0.0 ,"F/m" ,"" )
`MPRnb( NCIT ,0.0 ,"F/m" ,"" )
`MPRnb( PCIT ,0.0 ,"F" ,"" )
`MPRnb( LCITR ,LCIT ,"" ,"" )
`MPRnb( NCITR ,NCIT ,"" ,"" )
`MPRnb( PCITR ,PCIT ,"" ,"" )
`MPRnb( LCDSC ,0.0 ,"F/m" ,"" )
`MPRnb( NCDSC ,0.0 ,"F/m" ,"" )
`MPRnb( PCDSC ,0.0 ,"F" ,"" )
`MPRnb( LCDSCD ,0.0 ,"F/m" ,"" )
`MPRnb( NCDSCD ,0.0 ,"F/m" ,"" )
`MPRnb( PCDSCD ,0.0 ,"F" ,"" )
`MPRnb( LCDSCDR ,LCDSCD ,"F/m" ,"" )
`MPRnb( NCDSCDR ,NCDSCD ,"F/m" ,"" )
`MPRnb( PCDSCDR ,PCDSCD ,"F" ,"" )
`MPRnb( LDVT0 ,0.0 ,"" ,"" )
`MPRnb( NDVT0 ,0.0 ,"" ,"" )
`MPRnb( PDVT0 ,0.0 ,"" ,"" )
`MPRnb( LDVT1 ,0.0 ,"" ,"" )
`MPRnb( NDVT1 ,0.0 ,"" ,"" )
`MPRnb( PDVT1 ,0.0 ,"" ,"" )
`MPRnb( LDVT1SS ,LDVT1 ,"" ,"" )
`MPRnb( NDVT1SS ,NDVT1 ,"" ,"" )
`MPRnb( PDVT1SS ,PDVT1 ,"" ,"" )
`MPRnb( LPHIN ,0.0 ,"m*V" ,"" )
`MPRnb( NPHIN ,0.0 ,"m*V" ,"" )
`MPRnb( PPHIN ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LETA0 ,0.0 ,"" ,"" )
`MPRnb( NETA0 ,0.0 ,"" ,"" )
`MPRnb( PETA0 ,0.0 ,"" ,"" )
`MPRnb( LETA0R ,LETA0 ,"" ,"" )
`MPRnb( NETA0R ,NETA0 ,"" ,"" )
`MPRnb( PETA0R ,PETA0 ,"" ,"" )
`MPRnb( LDSUB ,0.0 ,"" ,"" )
`MPRnb( NDSUB ,0.0 ,"" ,"" )
`MPRnb( PDSUB ,0.0 ,"" ,"" )
`MPRnb( LK1RSCE ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( NK1RSCE ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( PK1RSCE ,0.0 ,"(m^2)*V^(1/2)" ,"" )
`MPRnb( LLPE0 ,0.0 ,"m^2" ,"" )
`MPRnb( NLPE0 ,0.0 ,"m^2" ,"" )
`MPRnb( PLPE0 ,0.0 ,"m^3" ,"" )
`MPRnb( LDVTSHIFT ,0.0 ,"m*V" ,"" )
`MPRnb( NDVTSHIFT ,0.0 ,"m*V" ,"" )
`MPRnb( PDVTSHIFT ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LDVTSHIFTR ,LDVTSHIFT ,"" ,"" )
`MPRnb( NDVTSHIFTR ,NDVTSHIFT ,"" ,"" )
`MPRnb( PDVTSHIFTR ,PDVTSHIFT ,"" ,"" )
`MPRnb( LPHIBE ,0.0 ,"m*V" ,"" )
`MPRnb( NPHIBE ,0.0 ,"m*V" ,"" )
`MPRnb( PPHIBE ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LK0 ,0.0 ,"m*V" ,"" )
`MPRnb( NK0 ,0.0 ,"m*V" ,"" )
`MPRnb( PK0 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LK01 ,0.0 ,"(m*V)/K" ,"" )
`MPRnb( NK01 ,0.0 ,"(m*V)/K" ,"" )
`MPRnb( PK01 ,0.0 ,"(m^2*V)/K" ,"" )
`MPRnb( LK0SI ,0.0 ,"" ,"" )
`MPRnb( NK0SI ,0.0 ,"" ,"" )
`MPRnb( PK0SI ,0.0 ,"" ,"" )
`MPRnb( LK0SI1 ,0.0 ,"m/K" ,"" )
`MPRnb( NK0SI1 ,0.0 ,"m/K" ,"" )
`MPRnb( PK0SI1 ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LK1 ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( NK1 ,0.0 ,"m*V^(1/2)" ,"" )
`MPRnb( PK1 ,0.0 ,"(m^2)*V^(1/2)" ,"" )
`MPRnb( LK11 ,0.0 ,"(m*V^(-1/2))/K" ,"" )
`MPRnb( NK11 ,0.0 ,"(m*V^(-1/2))/K" ,"" )
`MPRnb( PK11 ,0.0 ,"(m^2*V^(-1/2))/K" ,"" )
`MPRnb( LK2SI ,LK0SI ,"" ,"" )
`MPRnb( NK2SI ,NK0SI ,"" ,"" )
`MPRnb( PK2SI ,PK0SI ,"" ,"" )
`MPRnb( LK2SI1 ,LK0SI1 ,"" ,"" )
`MPRnb( NK2SI1 ,NK0SI1 ,"" ,"" )
`MPRnb( PK2SI1 ,PK0SI1 ,"" ,"" )
`MPRnb( LK0SISAT ,0.0 ,"" ,"" )
`MPRnb( NK0SISAT ,0.0 ,"" ,"" )
`MPRnb( PK0SISAT ,0.0 ,"" ,"" )
`MPRnb( LK0SISAT1 ,0.0 ,"" ,"" )
`MPRnb( NK0SISAT1 ,0.0 ,"" ,"" )
`MPRnb( PK0SISAT1 ,0.0 ,"" ,"" )
`MPRnb( LK2SISAT ,LK0SISAT ,"" ,"" )
`MPRnb( NK2SISAT ,NK0SISAT ,"" ,"" )
`MPRnb( PK2SISAT ,PK0SISAT ,"" ,"" )
`MPRnb( LK2SISAT1 ,LK0SISAT1 ,"" ,"" )
`MPRnb( NK2SISAT1 ,NK0SISAT1 ,"" ,"" )
`MPRnb( PK2SISAT1 ,PK0SISAT1 ,"" ,"" )
`MPRnb( LK2SAT ,0.0 ,"" ,"" )
`MPRnb( NK2SAT ,0.0 ,"" ,"" )
`MPRnb( PK2SAT ,0.0 ,"" ,"" )
`MPRnb( LK2SAT1 ,0.0 ,"" ,"" )
`MPRnb( NK2SAT1 ,0.0 ,"" ,"" )
`MPRnb( PK2SAT1 ,0.0 ,"" ,"" )
`MPRnb( LK2 ,0.0 ,"" ,"" )
`MPRnb( NK2 ,0.0 ,"" ,"" )
`MPRnb( PK2 ,0.0 ,"" ,"" )
`MPRnb( LK21 ,0.0 ,"" ,"" )
`MPRnb( NK21 ,0.0 ,"" ,"" )
`MPRnb( PK21 ,0.0 ,"" ,"" )
`MPRnb( LDVTB ,0.0 ,"" ,"" )
`MPRnb( NDVTB ,0.0 ,"" ,"" )
`MPRnb( PDVTB ,0.0 ,"" ,"" )
`MPRnb( LLPEB ,0.0 ,"" ,"" )
`MPRnb( NLPEB ,0.0 ,"" ,"" )
`MPRnb( PLPEB ,0.0 ,"" ,"" )
`MPRnb( LQMFACTOR ,0.0 ,"" ,"" )
`MPRnb( NQMFACTOR ,0.0 ,"" ,"" )
`MPRnb( PQMFACTOR ,0.0 ,"" ,"" )
`MPRnb( LQMTCENCV ,0.0 ,"" ,"" )
`MPRnb( NQMTCENCV ,0.0 ,"" ,"" )
`MPRnb( PQMTCENCV ,0.0 ,"" ,"" )
`MPRnb( LQMTCENCVA ,0.0 ,"" ,"" )
`MPRnb( NQMTCENCVA ,0.0 ,"" ,"" )
`MPRnb( PQMTCENCVA ,0.0 ,"" ,"" )
`MPRnb( LVSAT ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( NVSAT ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( PVSAT ,0.0 ,"(m^3)/s" ,"" )
`MPRnb( LVSATR ,LVSAT ,"" ,"" )
`MPRnb( NVSATR ,NVSAT ,"" ,"" )
`MPRnb( PVSATR ,PVSAT ,"" ,"" )
`MPRnb( LVSAT1 ,LVSAT ,"" ,"" )
`MPRnb( NVSAT1 ,NVSAT ,"" ,"" )
`MPRnb( PVSAT1 ,PVSAT ,"" ,"" )
`MPRnb( LVSAT1R ,LVSAT1 ,"(m^2)/s" ,"" )
`MPRnb( NVSAT1R ,NVSAT1 ,"(m^2)/s" ,"" )
`MPRnb( PVSAT1R ,PVSAT1 ,"(m^3)/s" ,"" )
`MPRnb( LPSAT ,0.0 ,"" ,"" )
`MPRnb( NPSAT ,0.0 ,"" ,"" )
`MPRnb( PPSAT ,0.0 ,"" ,"" )
`MPRnb( LDELTAVSAT ,0.0 ,"" ,"" )
`MPRnb( NDELTAVSAT ,0.0 ,"" ,"" )
`MPRnb( PDELTAVSAT ,0.0 ,"" ,"" )
`MPRnb( LKSATIV ,0.0 ,"" ,"" )
`MPRnb( NKSATIV ,0.0 ,"" ,"" )
`MPRnb( PKSATIV ,0.0 ,"" ,"" )
`MPRnb( LKSATIVR ,LKSATIV ,"" ,"" )
`MPRnb( NKSATIVR ,NKSATIV ,"" ,"" )
`MPRnb( PKSATIVR ,PKSATIV ,"" ,"" )
`MPRnb( LVSATCV ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( NVSATCV ,0.0 ,"(m^2)/s" ,"" )
`MPRnb( PVSATCV ,0.0 ,"(m^3)/s" ,"" )
`MPRnb( LPSATCV ,0.0 ,"" ,"" )
`MPRnb( NPSATCV ,0.0 ,"" ,"" )
`MPRnb( PPSATCV ,0.0 ,"" ,"" )
`MPRnb( LDELTAVSATCV ,0.0 ,"" ,"" )
`MPRnb( NDELTAVSATCV ,0.0 ,"" ,"" )
`MPRnb( PDELTAVSATCV ,0.0 ,"" ,"" )
`MPRnb( LMEXP ,0.0 ,"" ,"" )
`MPRnb( NMEXP ,0.0 ,"" ,"" )
`MPRnb( PMEXP ,0.0 ,"" ,"" )
`MPRnb( LMEXPR ,LMEXP ,"" ,"" )
`MPRnb( NMEXPR ,NMEXP ,"" ,"" )
`MPRnb( PMEXPR ,PMEXP ,"" ,"" )
`MPRnb( LPTWG ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( NPTWG ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( PPTWG ,0.0 ,"m^2*(V^-2)" ,"" )
`MPRnb( LPTWGR ,LPTWG ,"m*(V^-2)" ,"" )
`MPRnb( NPTWGR ,NPTWG ,"m*(V^-2)" ,"" )
`MPRnb( PPTWGR ,PPTWG ,"m^2*(V^-2)" ,"" )
`MPRnb( LU0 ,0.0 ,"(m^3)/V*s" ,"" )
`MPRnb( NU0 ,0.0 ,"(m^3)/V*s" ,"" )
`MPRnb( PU0 ,0.0 ,"(m^4)/V*s" ,"" )
`MPRnb( LU0R ,LU0 ,"" ,"" )
`MPRnb( NU0R ,NU0 ,"" ,"" )
`MPRnb( PU0R ,PU0 ,"" ,"" )
`MPRnb( LETAMOB ,0.0 ,"" ,"" )
`MPRnb( NETAMOB ,0.0 ,"" ,"" )
`MPRnb( PETAMOB ,0.0 ,"" ,"" )
`MPRnb( LUP ,0.0 ,"m*(um^LPA)" ,"" )
`MPRnb( NUP ,0.0 ,"m*(um^LPA)" ,"" )
`MPRnb( PUP ,0.0 ,"m^2*(um^LPA)" ,"" )
`MPRnb( LUPR ,LUP ,"" ,"" )
`MPRnb( NUPR ,NUP ,"" ,"" )
`MPRnb( PUPR ,PUP ,"" ,"" )
`MPRnb( LUA ,0.0 ,"m*((cm/MV)^EU)" ,"" )
`MPRnb( NUA ,0.0 ,"m*((cm/MV)^EU)" ,"" )
`MPRnb( PUA ,0.0 ,"m^2*((cm/MV)^EU)" ,"" )
`MPRnb( LUAR ,LUA ,"" ,"" )
`MPRnb( NUAR ,NUA ,"" ,"" )
`MPRnb( PUAR ,PUA ,"" ,"" )
`MPRnb( LUC ,0.0 ,"" ,"" )
`MPRnb( NUC ,0.0 ,"" ,"" )
`MPRnb( PUC ,0.0 ,"" ,"" )
`MPRnb( LUCR ,LUC ,"" ,"" )
`MPRnb( NUCR ,NUC ,"" ,"" )
`MPRnb( PUCR ,PUC ,"" ,"" )
`MPRnb( LEU ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( NEU ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( PEU ,0.0 ,"m^2*(cm/MV)" ,"" )
`MPRnb( LEUR ,LEU ,"" ,"" )
`MPRnb( NEUR ,NEU ,"" ,"" )
`MPRnb( PEUR ,PEU ,"" ,"" )
`MPRnb( LUD ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( NUD ,0.0 ,"m*(cm/MV)" ,"" )
`MPRnb( PUD ,0.0 ,"m^2*(cm/MV)" ,"" )
`MPRnb( LUDR ,LUD ,"" ,"" )
`MPRnb( NUDR ,NUD ,"" ,"" )
`MPRnb( PUDR ,PUD ,"" ,"" )
`MPRnb( LUCS ,0.0 ,"" ,"" )
`MPRnb( NUCS ,0.0 ,"" ,"" )
`MPRnb( PUCS ,0.0 ,"" ,"" )
`MPRnb( LPCLM ,0.0 ,"" ,"" )
`MPRnb( NPCLM ,0.0 ,"" ,"" )
`MPRnb( PPCLM ,0.0 ,"" ,"" )
`MPRnb( LPCLMR ,LPCLM ,"" ,"" )
`MPRnb( NPCLMR ,NPCLM ,"" ,"" )
`MPRnb( PPCLMR ,PPCLM ,"" ,"" )
`MPRnb( LPCLMG ,0.0 ,"" ,"" )
`MPRnb( NPCLMG ,0.0 ,"" ,"" )
`MPRnb( PPCLMG ,0.0 ,"" ,"" )
`MPRnb( LPCLMCV ,LPCLM ,"" ,"" )
`MPRnb( NPCLMCV ,NPCLM ,"" ,"" )
`MPRnb( PPCLMCV ,PPCLM ,"" ,"" )
`MPRnb( LA1 ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( NA1 ,0.0 ,"m*(V^-2)" ,"" )
`MPRnb( PA1 ,0.0 ,"m^2*(V^-2)" ,"" )
`MPRnb( LA11 ,0.0 ,"m*(V^-2/K)" ,"" )
`MPRnb( NA11 ,0.0 ,"m*(V^-2/K)" ,"" )
`MPRnb( PA11 ,0.0 ,"m^2*(V^-2/K)" ,"" )
`MPRnb( LA2 ,0.0 ,"m*(V^-1)" ,"" )
`MPRnb( NA2 ,0.0 ,"m*(V^-1)" ,"" )
`MPRnb( PA2 ,0.0 ,"m^2*(V^-1)" ,"" )
`MPRnb( LA21 ,0.0 ,"m*(V^-1/K)" ,"" )
`MPRnb( NA21 ,0.0 ,"m*(V^-1/K)" ,"" )
`MPRnb( PA21 ,0.0 ,"m^2*(V^-1/K)" ,"" )
`MPRnb( LRDSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( NRDSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( PRDSW ,0.0 ,"(m^2)*(ohm-um^WR)" ,"" )
`MPRnb( LRSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( NRSW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( PRSW ,0.0 ,"(m^2)*(ohm-um^WR)" ,"" )
`MPRnb( LRDW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( NRDW ,0.0 ,"m*(ohm-um^WR)" ,"" )
`MPRnb( PRDW ,0.0 ,"(m^2)*(ohm-um^WR)" ,"" )
`MPRnb( LPRWGS ,0.0 ,"m/V" ,"" )
`MPRnb( NPRWGS ,0.0 ,"m/V" ,"" )
`MPRnb( PPRWGS ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LPRWGD ,0.0 ,"m/V" ,"" )
`MPRnb( NPRWGD ,0.0 ,"m/V" ,"" )
`MPRnb( PPRWGD ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LWR ,0.0 ,"" ,"" )
`MPRnb( NWR ,0.0 ,"" ,"" )
`MPRnb( PWR ,0.0 ,"" ,"" )
`MPRnb( LPDIBL1 ,0.0 ,"" ,"" )
`MPRnb( NPDIBL1 ,0.0 ,"" ,"" )
`MPRnb( PPDIBL1 ,0.0 ,"" ,"" )
`MPRnb( LPDIBL1R ,LPDIBL1 ,"" ,"" )
`MPRnb( NPDIBL1R ,NPDIBL1 ,"" ,"" )
`MPRnb( PPDIBL1R ,PPDIBL1 ,"" ,"" )
`MPRnb( LPDIBL2 ,0.0 ,"" ,"" )
`MPRnb( NPDIBL2 ,0.0 ,"" ,"" )
`MPRnb( PPDIBL2 ,0.0 ,"" ,"" )
`MPRnb( LPDIBL2R ,LPDIBL2 ,"" ,"" )
`MPRnb( NPDIBL2R ,NPDIBL2 ,"" ,"" )
`MPRnb( PPDIBL2R ,PPDIBL2 ,"" ,"" )
`MPRnb( LDROUT ,0.0 ,"" ,"" )
`MPRnb( NDROUT ,0.0 ,"" ,"" )
`MPRnb( PDROUT ,0.0 ,"" ,"" )
`MPRnb( LPVAG ,0.0 ,"" ,"" )
`MPRnb( NPVAG ,0.0 ,"" ,"" )
`MPRnb( PPVAG ,0.0 ,"" ,"" )
`MPRnb( LAIGBINV ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGBINV ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGBINV ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGBINV1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGBINV1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGBINV1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGBINV ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGBINV ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGBINV ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGBINV ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGBINV ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGBINV ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LEIGBINV ,0.0 ,"m*V" ,"" )
`MPRnb( NEIGBINV ,0.0 ,"m*V" ,"" )
`MPRnb( PEIGBINV ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LNIGBINV ,0.0 ,"" ,"" )
`MPRnb( NNIGBINV ,0.0 ,"" ,"" )
`MPRnb( PNIGBINV ,0.0 ,"" ,"" )
`MPRnb( LAIGBACC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGBACC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGBACC ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGBACC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGBACC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGBACC1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGBACC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGBACC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGBACC ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGBACC ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGBACC ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGBACC ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LNIGBACC ,0.0 ,"" ,"" )
`MPRnb( NNIGBACC ,0.0 ,"" ,"" )
`MPRnb( PNIGBACC ,0.0 ,"" ,"" )
`MPRnb( LAIGC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGC ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGC ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGC1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGC1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGC ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGC ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGC ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGC ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGC ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LPIGCD ,0.0 ,"" ,"" )
`MPRnb( NPIGCD ,0.0 ,"" ,"" )
`MPRnb( PPIGCD ,0.0 ,"" ,"" )
`MPRnb( LAIGS ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGS ,0.0 ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGS ,0.0 ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGS1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGS1 ,0.0 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGS1 ,0.0 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGS ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGS ,0.0 ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGS ,0.0 ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGS ,0.0 ,"m/V" ,"" )
`MPRnb( NCIGS ,0.0 ,"m/V" ,"" )
`MPRnb( PCIGS ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LAIGD ,LAIGS ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( NAIGD ,NAIGS ,"(F*s^2/g)^0.5" ,"" )
`MPRnb( PAIGD ,PAIGS ,"((F*s^2/g)^0.5)*m" ,"" )
`MPRnb( LAIGD1 ,LAIGS1 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( NAIGD1 ,NAIGS1 ,"((F*s^2/g)^0.5)/K" ,"" )
`MPRnb( PAIGD1 ,PAIGS1 ,"((F*s^2/g)^0.5)*(m/K)" ,"" )
`MPRnb( LBIGD ,LBIGS ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( NBIGD ,NBIGS ,"((F*s^2/g)^0.5)/V" ,"" )
`MPRnb( PBIGD ,PBIGS ,"((F*s^2/g)^0.5)*(m/V)" ,"" )
`MPRnb( LCIGD ,LCIGS ,"m/V" ,"" )
`MPRnb( NCIGD ,NCIGS ,"m/V" ,"" )
`MPRnb( PCIGD ,PCIGS ,"(m^2)/V" ,"" )
`MPRnb( LNTOX ,0.0 ,"" ,"" )
`MPRnb( NNTOX ,0.0 ,"" ,"" )
`MPRnb( PNTOX ,0.0 ,"" ,"" )
`MPRnb( LPOXEDGE ,0.0 ,"" ,"" )
`MPRnb( NPOXEDGE ,0.0 ,"" ,"" )
`MPRnb( PPOXEDGE ,0.0 ,"" ,"" )
`MPRnb( LAGISL ,0.0 ,"m/ohm" ,"" )
`MPRnb( NAGISL ,0.0 ,"m/ohm" ,"" )
`MPRnb( PAGISL ,0.0 ,"(m^2)/ohm" ,"" )
`MPRnb( LBGISL ,0.0 ,"V" ,"" )
`MPRnb( NBGISL ,0.0 ,"V" ,"" )
`MPRnb( PBGISL ,0.0 ,"m*V" ,"" )
`MPRnb( LCGISL ,0.0 ,"m*(V^3)" ,"" )
`MPRnb( NCGISL ,0.0 ,"m*(V^3)" ,"" )
`MPRnb( PCGISL ,0.0 ,"(m^2)*(V^3)" ,"" )
`MPRnb( LEGISL ,0.0 ,"m*V" ,"" )
`MPRnb( NEGISL ,0.0 ,"m*V" ,"" )
`MPRnb( PEGISL ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LPGISL ,0.0 ,"" ,"" )
`MPRnb( NPGISL ,0.0 ,"" ,"" )
`MPRnb( PPGISL ,0.0 ,"" ,"" )
`MPRnb( LAGIDL ,LAGISL ,"m/ohm" ,"" )
`MPRnb( NAGIDL ,NAGISL ,"m/ohm" ,"" )
`MPRnb( PAGIDL ,PAGISL ,"(m^2)/ohm" ,"" )
`MPRnb( LBGIDL ,LBGISL ,"V" ,"" )
`MPRnb( NBGIDL ,NBGISL ,"V" ,"" )
`MPRnb( PBGIDL ,PBGISL ,"m*V" ,"" )
`MPRnb( LCGIDL ,LCGISL ,"m*(V^3)" ,"" )
`MPRnb( NCGIDL ,NCGISL ,"m*(V^3)" ,"" )
`MPRnb( PCGIDL ,PCGISL ,"(m^2)*(V^3)" ,"" )
`MPRnb( LEGIDL ,LEGISL ,"m*V" ,"" )
`MPRnb( NEGIDL ,NEGISL ,"m*V" ,"" )
`MPRnb( PEGIDL ,PEGISL ,"(m^2)*V" ,"" )
`MPRnb( LPGIDL ,LPGISL ,"" ,"" )
`MPRnb( NPGIDL ,NPGISL ,"" ,"" )
`MPRnb( PPGIDL ,PPGISL ,"" ,"" )
`MPRnb( LALPHA0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( NALPHA0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( PALPHA0 ,0.0 ,"(m^3)/V" ,"" )
`MPRnb( LALPHA1 ,0.0 ,"m/V" ,"" )
`MPRnb( NALPHA1 ,0.0 ,"m/V" ,"" )
`MPRnb( PALPHA1 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LALPHAII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( NALPHAII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( PALPHAII0 ,0.0 ,"(m^3)/V" ,"" )
`MPRnb( LALPHAII1 ,0.0 ,"m/V" ,"" )
`MPRnb( NALPHAII1 ,0.0 ,"m/V" ,"" )
`MPRnb( PALPHAII1 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LBETA0 ,0.0 ,"m/V" ,"" )
`MPRnb( NBETA0 ,0.0 ,"m/V" ,"" )
`MPRnb( PBETA0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LBETAII0 ,0.0 ,"m/V" ,"" )
`MPRnb( NBETAII0 ,0.0 ,"m/V" ,"" )
`MPRnb( PBETAII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LBETAII1 ,0.0 ,"" ,"" )
`MPRnb( NBETAII1 ,0.0 ,"" ,"" )
`MPRnb( PBETAII1 ,0.0 ,"" ,"" )
`MPRnb( LBETAII2 ,0.0 ,"m*V" ,"" )
`MPRnb( NBETAII2 ,0.0 ,"m*V" ,"" )
`MPRnb( PBETAII2 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LESATII ,0.0 ,"V" ,"" )
`MPRnb( NESATII ,0.0 ,"V" ,"" )
`MPRnb( PESATII ,0.0 ,"m*V" ,"" )
`MPRnb( LLII ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( NLII ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( PLII ,0.0 ,"(m^3)*V" ,"" )
`MPRnb( LSII0 ,0.0 ,"m/V" ,"" )
`MPRnb( NSII0 ,0.0 ,"m/V" ,"" )
`MPRnb( PSII0 ,0.0 ,"(m^2)/V" ,"" )
`MPRnb( LSII1 ,0.0 ,"" ,"" )
`MPRnb( NSII1 ,0.0 ,"" ,"" )
`MPRnb( PSII1 ,0.0 ,"" ,"" )
`MPRnb( LSII2 ,0.0 ,"m*V" ,"" )
`MPRnb( NSII2 ,0.0 ,"m*V" ,"" )
`MPRnb( PSII2 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LSIID ,0.0 ,"m*V" ,"" )
`MPRnb( NSIID ,0.0 ,"m*V" ,"" )
`MPRnb( PSIID ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LCFS ,0.0 ,"F" ,"" )
`MPRnb( NCFS ,0.0 ,"F" ,"" )
`MPRnb( PCFS ,0.0 ,"F*m" ,"" )
`MPRnb( LCFD ,LCFS ,"F" ,"" )
`MPRnb( NCFD ,NCFS ,"F" ,"" )
`MPRnb( PCFD ,PCFS ,"F*m" ,"" )
`MPRnb( LCOVS ,0.0 ,"F" ,"" )
`MPRnb( NCOVS ,0.0 ,"F" ,"" )
`MPRnb( PCOVS ,0.0 ,"F*m" ,"" )
`MPRnb( LCOVD ,LCOVS ,"F" ,"" )
`MPRnb( NCOVD ,NCOVS ,"F" ,"" )
`MPRnb( PCOVD ,PCOVS ,"F*m" ,"" )
`MPRnb( LCGSL ,0.0 ,"F" ,"" )
`MPRnb( NCGSL ,0.0 ,"F" ,"" )
`MPRnb( PCGSL ,0.0 ,"F*m" ,"" )
`MPRnb( LCGDL ,LCGSL ,"F" ,"" )
`MPRnb( NCGDL ,NCGSL ,"F" ,"" )
`MPRnb( PCGDL ,PCGSL ,"F*m" ,"" )
`MPRnb( LCKAPPAS ,0.0 ,"m*V" ,"" )
`MPRnb( NCKAPPAS ,0.0 ,"m*V" ,"" )
`MPRnb( PCKAPPAS ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LCKAPPAD ,LCKAPPAS ,"m*V" ,"" )
`MPRnb( NCKAPPAD ,NCKAPPAS ,"m*V" ,"" )
`MPRnb( PCKAPPAD ,PCKAPPAS ,"(m^2)*V" ,"" )
`MPRnb( LCGBL ,0.0 ,"F" ,"" )
`MPRnb( NCGBL ,0.0 ,"F" ,"" )
`MPRnb( PCGBL ,0.0 ,"F*m" ,"" )
`MPRnb( LCKAPPAB ,0.0 ,"m*V" ,"" )
`MPRnb( NCKAPPAB ,0.0 ,"m*V" ,"" )
`MPRnb( PCKAPPAB ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LNTGEN ,0.0 ,"" ,"" )
`MPRnb( NNTGEN ,0.0 ,"" ,"" )
`MPRnb( PNTGEN ,0.0 ,"" ,"" )
`MPRnb( LAIGEN ,0.0 ,"(m^-2)*(V^-1)" ,"" )
`MPRnb( NAIGEN ,0.0 ,"(m^-2)*(V^-1)" ,"" )
`MPRnb( PAIGEN ,0.0 ,"(m^-1)*(V^-1)" ,"" )
`MPRnb( LBIGEN ,0.0 ,"(m^-2)*(V^-3)" ,"" )
`MPRnb( NBIGEN ,0.0 ,"(m^-2)*(V^-3)" ,"" )
`MPRnb( PBIGEN ,0.0 ,"(m^-1)*(V^-3)" ,"" )
`MPRnb( LXRCRG1 ,0.0 ,"" ,"" )
`MPRnb( NXRCRG1 ,0.0 ,"" ,"" )
`MPRnb( PXRCRG1 ,0.0 ,"" ,"" )
`MPRnb( LXRCRG2 ,0.0 ,"" ,"" )
`MPRnb( NXRCRG2 ,0.0 ,"" ,"" )
`MPRnb( PXRCRG2 ,0.0 ,"" ,"" )
`MPRnb( LUTE ,0.0 ,"" ,"" )
`MPRnb( NUTE ,0.0 ,"" ,"" )
`MPRnb( PUTE ,0.0 ,"" ,"" )
`MPRnb( LUTER ,LUTE ,"" ,"" )
`MPRnb( NUTER ,NUTE ,"" ,"" )
`MPRnb( PUTER ,PUTE ,"" ,"" )
`MPRnb( LUTL ,0.0 ,"" ,"" )
`MPRnb( NUTL ,0.0 ,"" ,"" )
`MPRnb( PUTL ,0.0 ,"" ,"" )
`MPRnb( LUTLR ,LUTL ,"" ,"" )
`MPRnb( NUTLR ,NUTL ,"" ,"" )
`MPRnb( PUTLR ,PUTL ,"" ,"" )
`MPRnb( LEMOBT ,0.0 ,"" ,"" )
`MPRnb( NEMOBT ,0.0 ,"" ,"" )
`MPRnb( PEMOBT ,0.0 ,"" ,"" )
`MPRnb( LUA1 ,0.0 ,"" ,"" )
`MPRnb( NUA1 ,0.0 ,"" ,"" )
`MPRnb( PUA1 ,0.0 ,"" ,"" )
`MPRnb( LUA1R ,LUA1 ,"" ,"" )
`MPRnb( NUA1R ,NUA1 ,"" ,"" )
`MPRnb( PUA1R ,PUA1 ,"" ,"" )
`MPRnb( LUC1 ,0.0 ,"" ,"" )
`MPRnb( NUC1 ,0.0 ,"" ,"" )
`MPRnb( PUC1 ,0.0 ,"" ,"" )
`MPRnb( LUC1R ,LUC1 ,"" ,"" )
`MPRnb( NUC1R ,NUC1 ,"" ,"" )
`MPRnb( PUC1R ,PUC1 ,"" ,"" )
`MPRnb( LUD1 ,0.0 ,"" ,"" )
`MPRnb( NUD1 ,0.0 ,"" ,"" )
`MPRnb( PUD1 ,0.0 ,"" ,"" )
`MPRnb( LUD1R ,LUD1 ,"" ,"" )
`MPRnb( NUD1R ,NUD1 ,"" ,"" )
`MPRnb( PUD1R ,PUD1 ,"" ,"" )
`MPRnb( LUCSTE ,0.0 ,"" ,"" )
`MPRnb( NUCSTE ,0.0 ,"" ,"" )
`MPRnb( PUCSTE ,0.0 ,"" ,"" )
`MPRnb( LPTWGT ,0.0 ,"m/K" ,"" )
`MPRnb( NPTWGT ,0.0 ,"m/K" ,"" )
`MPRnb( PPTWGT ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LAT ,0.0 ,"m/K" ,"" )
`MPRnb( NAT ,0.0 ,"m/K" ,"" )
`MPRnb( PAT ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LATR ,LAT ,"" ,"" )
`MPRnb( NATR ,NAT ,"" ,"" )
`MPRnb( PATR ,PAT ,"" ,"" )
`MPRnb( LATCV ,0.0 ,"m/K" ,"" )
`MPRnb( NATCV ,0.0 ,"m/K" ,"" )
`MPRnb( PATCV ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LSTTHETASAT ,0.0 ,"" ,"" )
`MPRnb( NSTTHETASAT ,0.0 ,"" ,"" )
`MPRnb( PSTTHETASAT ,0.0 ,"" ,"" )
`MPRnb( LPRT ,0.0 ,"m/K" ,"" )
`MPRnb( NPRT ,0.0 ,"m/K" ,"" )
`MPRnb( PPRT ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LKT1 ,0.0 ,"m*V" ,"" )
`MPRnb( NKT1 ,0.0 ,"m*V" ,"" )
`MPRnb( PKT1 ,0.0 ,"(m^2)*V" ,"" )
`MPRnb( LTSS ,0.0 ,"" ,"" )
`MPRnb( NTSS ,0.0 ,"" ,"" )
`MPRnb( PTSS ,0.0 ,"" ,"" )
`MPRnb( LIIT ,0.0 ,"" ,"" )
`MPRnb( NIIT ,0.0 ,"" ,"" )
`MPRnb( PIIT ,0.0 ,"" ,"" )
`MPRnb( LTII ,0.0 ,"" ,"" )
`MPRnb( NTII ,0.0 ,"" ,"" )
`MPRnb( PTII ,0.0 ,"" ,"" )
`MPRnb( LTGIDL ,0.0 ,"m/K" ,"" )
`MPRnb( NTGIDL ,0.0 ,"m/K" ,"" )
`MPRnb( PTGIDL ,0.0 ,"(m^2)/K" ,"" )
`MPRnb( LIGT ,0.0 ,"" ,"" )
`MPRnb( NIGT ,0.0 ,"" ,"" )
`MPRnb( PIGT ,0.0 ,"" ,"" )

File diff suppressed because it is too large Load Diff

View File

@ -1,117 +0,0 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal,
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016__________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// ********************************************************
// Macro for the geometry-dependent fringing capacitance
// model
// ********************************************************
/*
(while (re-search-forward
(rx bow
(or "Hr" "Lr" "Hgdelta" "Lmax" "y" "x"
"CcgSat" "Cnon" "TT1" "Ccg1" "r1cf" "Rcf" "Ccg2"
"Ccg" "C1" "C2" "C3" "Cfglog" "dcf" "TT0"
"TT2" "Cfgsat" "delta" "xCfg")
eow)
nil t)
(replace-match "x42_\\&" t))
*/
`define Cfringe_2d_vars() \
real x42_Hr, x42_Lr, x42_Hgdelta, x42_Lmax, x42_y, x42_x; \
real x42_CcgSat, x42_Cnon, x42_TT1, x42_Ccg1, x42_r1cf, x42_Rcf, x42_Ccg2; \
real x42_Ccg, x42_C1, x42_C2, x42_C3, x42_Cfglog, x42_dcf, x42_TT0; \
real x42_TT2, x42_Cfgsat, x42_delta, Cfg;
`define Cfringe_2d(block_name, Hg, Hc, Lext, Wfin, Lc, Lg, Tox, Cf1, Cgg) \
begin : block_name \
x42_Hr = 2.3 + 0.2 * ((Hg) + (Tox)) / (Hc); \
x42_Lr = 1.05; \
x42_Hgdelta = abs((Hg) + (Tox) - (Hc)); \
x42_Lmax = (Lext) * x42_Lr; \
\
x42_y = min((Hc), (Hg) + (Tox)); \
x42_x = (Lext) / (x42_Hr + 1.0); \
x42_Cnon = 1.7e12; \
x42_CcgSat = epssp * (x42_y - x42_x) / (Lext); \
x42_TT1 = x42_Cnon * x42_CcgSat; \
if(x42_TT1 > `EXPL_THRESHOLD) \
x42_Ccg1 = x42_CcgSat; \
else \
x42_Ccg1 = 1.0 / x42_Cnon * ln(1.0 + lexp(x42_TT1)); \
\
x42_r1cf = 0.5 * \
min((Hc) / ((Hg) + (Tox)), ((Hg) + (Tox)) / (Hc)); \
x42_Rcf = x42_Hgdelta * x42_r1cf; \
x42_Ccg2 = epssp * 2 / `M_PI * \
ln(((Lext) + 0.5 * `M_PI * x42_Rcf) / (Lext)); \
\
x42_Ccg = (Wfin) * (x42_Ccg1 + x42_Ccg2); \
\
x42_x = x42_Lmax / (Hg); \
x42_C1 = 4.0 / (sqrt(2.0 * (x42_x + 1)) * `M_PI); \
x42_C2 = sqrt((Tox) * (Tox) + 2.0 * (Hg) * (Tox) + \
(Hg) * (Hg) * (x42_x + 1)) * sqrt(x42_x + 1) + (Tox) + \
(Hg) * x42_x + (Hg); \
x42_C3 = (Tox) * sqrt((x42_x + 1) * (x42_x + 4)) + Tox * (x42_x + 2); \
x42_Cfglog = epssp * (x42_C1 * ln(x42_C2 / x42_C3) + 12.27); \
\
x42_dcf = x42_Hr * x42_Lr; \
x42_TT0 = sqrt(x42_dcf * x42_dcf + 1.0); \
x42_TT1 = sqrt((x42_dcf * x42_dcf + 1) * ((x42_dcf * (Tox)) * (x42_dcf * (Tox)) + \
2 * x42_dcf * x42_Lmax * (Tox) + (x42_dcf * x42_dcf + 1) * x42_Lmax * x42_Lmax)) \
+ x42_dcf * (Tox) + x42_dcf * x42_dcf * x42_Lmax + x42_Lmax; \
x42_TT2 = (x42_TT0 + 1.0) * (x42_dcf * (Tox)); \
x42_Cfgsat = 2.0 * epssp * sqrt(2) / `M_PI * (Cf1) * x42_dcf \
/ x42_TT0 * ln(x42_TT1 / x42_TT2); \
\
x42_delta = 1.2e-12; \
x42_TT1 = x42_Cfgsat - x42_Cfglog - x42_delta; \
Cfg = (Wfin) * (x42_Cfgsat - 0.5 * (x42_TT1 + \
sqrt(x42_TT1 * x42_TT1 + 4 * x42_delta * x42_Cfgsat))); \
Cgg = x42_Ccg + Cfg; \
end

View File

@ -1,89 +0,0 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu,
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016_________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// *** Quasi Static CV Model ***
T11 = (2.0*qia+nVtm)/DvsatCV;//G
qg = qia+dqi*dqi/(6.0*T11);//qc
qd = -0.5*(qia-(dqi/(6.0))*(1.0-(dqi/T11)*(1+dqi/(5.0*T11))));//qd
// Including CLM in qg and qd
inv_MclmCV = 1.0 / MclmCV;
qg = inv_MclmCV * qg + (MclmCV - 1.0) * qid;
qd = inv_MclmCV * inv_MclmCV * qd + 0.5 * (MclmCV - inv_MclmCV) * qid;
//Calculating partition for NQSMOD2
`ifdef __NQSMOD2__
if(NQSMOD == 2) xdpart = qd / qg;
else xdpart = 0;
`endif
qs = -qg-qd; //from charge conservation qs = -qg-qd;
T6 = NFINtotal*WeffCV0 * LeffCV * coxeff;
qg = T6*qg;
qd = T6*qd;
qs = T6*qs;
qinv = qg ;
if(BULKMOD != 0) begin
T1 = NFINtotal * WeffCV0 * LeffCV_acc * cox_acc;
T7 = qi_acc_for_QM;//qbulk
T10 = T7 * T1;
qg_acc = - T10;
qb_acc = T10;
T1 = NFINtotal * WeffCV0 * LeffCV * cox;
T2 = qba - qi_acc_for_QM;
T10 = T1*T2;
qg_acc = qg_acc - T10;
qb_acc = qb_acc + T10;
T1 = NFINtotal * WeffCV0 * LeffCV * cox;
T2 = (nq-1.0)*0.5*(qia+(dqi*dqi/(6.0*T11)));
T10 = T1*T2;
qg_acc = qg_acc - T10;
qb_acc = qb_acc + T10;
end
// if vds is negative, physical charge on qd is qs
if (sigvds < 0) begin
T1 = qd;
qd = qs;
qs = T1;
end

View File

@ -1,84 +0,0 @@
// *******************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016_________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// Source-Drain Resistance Model
case(RDSMOD)
1: begin
Rdsi = 0.0;
Dr = 1.0;
T2 = vgs_noswap - vfbsd;
T3 = sqrt(T2 * T2 + 1.0e-1);
vgs_eff = 0.5 * (T2 + T3);
T4 = 1.0 + PRWGS_i * vgs_eff;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
T5 = RSW_i * (1.0 + RSDR_a * lexp(0.5 * PRSDR * lln(V(si,s) * V(si,s) + 1.0E-6)));
Rsource = rdstemp * (RSourceGeo + (RSWMIN_i + T5 * T0) * WeffWRFactor);
T2 = vgd_noswap - vfbsd;
T3 = sqrt(T2 * T2 + 1.0e-1);
vgd_eff = 0.5 * (T2 + T3);
T4 = 1.0 + PRWGD_i * vgd_eff;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
T5 = RDW_i * (1.0 + RDDR_a * lexp(0.5 * PRDDR * lln(V(di,d) * V(di,d) + 1.0E-6)));
Rdrain = rdstemp * (RDrainGeo + (RDWMIN_i + T5 * T0) * WeffWRFactor);
end
0: begin
Rsource = RSourceGeo;
Rdrain = RDrainGeo;
T4 = 1.0 + PRWGS_i * qia;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
Rdsi = rdstemp * (RDSWMIN_i + RDSW_i * T0) * WeffWRFactor;
Dr = 1.0 + (NFINtotal) * beta * ids0_ov_dqi / (Dmob * Dvsat) * Rdsi;
end
2: begin
T4 = 1.0 + PRWGS_i * qia;
T1 = 1.0 / T4;
T0 = 0.5 * (T1 + sqrt(T1 * T1 + 0.01));
Rdsi = rdstemp * (RSourceGeo + RDrainGeo + RDSWMIN_i + RDSW_i * T0) * WeffWRFactor;
Dr = 1.0 + (NFINtotal) * beta * ids0_ov_dqi / (Dmob * Dvsat) * Rdsi;
Rsource = 0.0;
Rdrain = 0.0;
end
endcase

View File

@ -1,185 +0,0 @@
// ********************************************************
// **** BSIM-CMG 110.0.0 released by Sourabh Khandelwal on 01/01/2016 ****/
// * BSIM Common Multi-Gate Model Equations (Verilog-A)
// ********************************************************
//
// ********************************************************
// * Copyright 2016 Regents of the University of California.
// * All rights reserved.
// *
// * Project Director: Prof. Chenming Hu.
// * Authors: Sriramkumar V., Navid Paydavosi, Juan Duarte, Darsen Lu, Sourabh Khandelwal
// * Chung-Hsun Lin, Mohan Dunga, Shijing Yao,
// * Ali Niknejad, Chenming Hu
// ********************************************************
// ********************************************************
// * NONDISCLOSURE STATEMENT
// Software is distributed as is, completely without warranty or service
// support. The University of California and its employees are not liable
// for the condition or performance of the software.
// The University of California owns the copyright and grants users a perpetual,
// irrevocable, worldwide, non-exclusive, royalty-free license with
// respect to the software as set forth below.
// The University of California hereby disclaims all implied warranties.
// The University of California grants the users the right to modify, copy,
// and redistribute the software and documentation, both within the user's
// organization and externally, subject to the following restrictions
// 1. The users agree not to charge for the University of California code
// itself but may charge for additions, extensions, or support.
// 2. In any product based on the software, the users agree to acknowledge
// the University of California that developed the software. This
// acknowledgment shall appear in the product documentation.
// 3. The users agree to obey all U.S. Government restrictions governing
// redistribution or export of the software.
// 4. The users agree to reproduce any copyright notice which appears on
// the software on any copy or modification of such made available
// to others
// Agreed to on __Jan 01, 2016__________________
// By: ___University of California, Berkeley____
// ___Chenming Hu_____________________
// ___Professor in Graduate School _______
// ********************************************************
// Numerical Constants
`define EXPL_THRESHOLD 80.0
`define MAX_EXPL 5.540622384e34
`define MIN_EXPL 1.804851387e-35
`define N_MINLOG 1.0e-38
`define MEXPQM 4
`define DELTA_1 0.02
`define DELTA_ASYMM 0.04
`define CONSTCtoK (273.15)
`define REFTEMP (300.15) /* 27 degrees C */
// Model type definitions
`define ntype 1
`define ptype 0
// Physical Constants
`define q 1.60219e-19 // Coul
`define EPS0 8.8542e-12 // F/m
`define HBAR 1.05457e-34 // Joule-sec
`define MEL 9.11e-31 // kg
`define KboQ 8.617087e-5 // Joule / degree
// Mathematical functions
//`define SINH(x) (0.5 * (lexp(x) - lexp(-(x))))
`define COSH(x) (0.5 * (lexp(x) + lexp(-(x))))
//`define TANH(x) ((lexp(x) - lexp(-(x))) / (lexp(x) + lexp(-(x))))
`define COT(x) ((x)>=`M_PI/2 ? 0 : ((x)<=-`M_PI/2 ? 0 : 1.0/tan(x)))
// Junction capacitance
//ex:(ves_jct, Czbs, PBS_t, SBS, MJS, MJS2, Qes1)
`define BSIM6JunctnCap(vex, Cz, PB, SJ, MJ, MJ2, Qej) \
begin \
if (Cz > 0.0) begin \
T1 = vex / PB; \
if (T1 < 0.9) begin \
if (SJ > 0.0) begin /*second-step junction*/ \
vec = PB * (1.0 - lexp((1.0 / MJ) * lln(1.0/SJ))); /*Switch over voltage*/\
pb2 = PB * SJ * MJ2 / MJ / lexp(- (1.0 + MJ) * lln(1.0 - vec / PB)); /*PB for second doping region*/\
if (vex > vec) begin \
arg = 1.0 - T1; \
if (MJ == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ * lln(arg)); \
Qej = PB * Cz * (1.0 - arg * sarg) / (1.0 - MJ); \
end else begin /*vex < vec*/ \
arg = 1.0 - vec / PB; \
if (MJ == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ * lln(arg)); \
Qec = PB * Cz * (1.0 - arg * sarg) / (1.0 - MJ); \
arg = 1.0 - (vex - vec) / pb2; \
if (MJ2 == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ2 * lln(arg)); \
Qej = Qec + SJ * pb2 * Cz * (1.0 - arg * sarg) / (1.0 - MJ2); \
end \
end else begin /*single junction*/ \
arg = 1.0 - T1; \
if (MJ == 0.5) sarg = 1.0 / sqrt(arg); \
else sarg = lexp(-MJ * lln(arg)); \
Qej = PB * Cz * (1.0 - arg * sarg) / (1.0 - MJ); \
end \
end else begin /*vex/PB>=0.9*/ \
T2 = lexp(-MJ * lln(0.1)); \
T3 = 1.0 / (1.0-MJ); \
T4 = T2 * (T1 - 1.0) * (5.0 * MJ * (T1-1.0) + (1.0 + MJ) ); \
T5 = T3 * (1.0 - 0.05 * MJ * (1.0 + MJ) * T2 ); \
Qej = PB * Cz * (T4 + T5); /*Quadratic equation for Qej when vex/PB>=0.9*/\
end \
end else begin \
Qej = 0.0; \
end \
end
//
// Macros for the model/instance parameters
//
// MPRxx model parameter real
// MPIxx model parameter integer
// IPRxx instance parameter real
// IPIxx instance parameter integer
// ||
// cc closed lower bound, closed upper bound
// oo open lower bound, open upper bound
// co closed lower bound, open upper bound
// oc open lower bound, closed upper bound
// cz closed lower bound=0, open upper bound=inf
// oz open lower bound=0, open upper bound=inf
// nb no bounds
// ex no bounds with exclude
// sw switch(integer only, values 0=false and 1=true)
// ty switch(integer only, values -1=p-type and +1=n-type)
//
// IPM instance parameter mFactor(multiplicity, implicit for LRM2.2)
// OPP operating point parameter, includes units and description for printing
//
`define ALIAS(alias,paramName) aliasparam alias = paramName ;
`define OPP(nam,uni,des) (*units=uni, desc=des*) real nam ;
`define MPRnb(nam,def,uni, des) (*units=uni, desc=des*) parameter real nam=def ;
`define MPRex(nam,def,uni,exc, des) (*units=uni, desc=des*) parameter real nam=def exclude exc ;
`define MPRcc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from[lwr:upr] ;
`define MPRoo(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from(lwr:upr) ;
`define MPRco(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from[lwr:upr) ;
`define MPRoc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter real nam=def from(lwr:upr] ;
`define MPRcz(nam,def,uni, des) (*units=uni, desc=des*) parameter real nam=def from[ 0:inf);
`define MPRoz(nam,def,uni, des) (*units=uni, desc=des*) parameter real nam=def from( 0:inf);
`define MPInb(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def ;
`define MPIex(nam,def,uni,exc, des) (*units=uni, desc=des*) parameter integer nam=def exclude exc ;
`define MPIcc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from[lwr:upr] ;
`define MPIoo(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from(lwr:upr) ;
`define MPIco(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from[lwr:upr) ;
`define MPIoc(nam,def,uni,lwr,upr,des) (*units=uni, desc=des*) parameter integer nam=def from(lwr:upr] ;
`define MPIcz(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from[ 0:inf);
`define MPIoz(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from( 0:inf);
`define MPIsw(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from[ 0: 1] ;
`define MPIty(nam,def,uni, des) (*units=uni, desc=des*) parameter integer nam=def from[ -1: 1] exclude 0 ;
`define IPRnb(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter real nam=def ;
`define IPRex(nam,def,uni,exc, des) (*units=uni, type="instance", desc=des*) parameter real nam=def exclude exc ;
`define IPRcc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from[lwr:upr] ;
`define IPRoo(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from(lwr:upr) ;
`define IPRco(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from[lwr:upr) ;
`define IPRoc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter real nam=def from(lwr:upr] ;
`define IPRcz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter real nam=def from[ 0:inf);
`define IPRoz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter real nam=def from( 0:inf);
`define IPInb(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def ;
`define IPIex(nam,def,uni,exc, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def exclude exc ;
`define IPIcc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from[lwr:upr] ;
`define IPIoo(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from(lwr:upr) ;
`define IPIco(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from[lwr:upr) ;
`define IPIoc(nam,def,uni,lwr,upr,des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from(lwr:upr] ;
`define IPIcz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from[ 0:inf);
`define IPIoz(nam,def,uni, des) (*units=uni, type="instance", desc=des*) parameter integer nam=def from( 0:inf);
`ifdef EXPLICIT_MFACTOR
`define IPM (*units="" , type="instance", desc="multiplicity factor"*) parameter real m=1.0 from(0.0:inf) ;
`define MFACTOR_USE m
`else //
`define IPM
`define MFACTOR_USE 1.0
`endif

View File

@ -126,7 +126,6 @@ int add_udn(int,Evt_Udn_Info_t **);
#include "adms/ekv/ekvitf.h"
#include "adms/psp102/psp102itf.h"
#include "adms/bsimbulk/bsimbulkitf.h"
#include "adms/bsimcmg/bsimcmgitf.h"
#endif
#ifdef CIDER
/* Numerical devices (Cider integration) */
@ -208,7 +207,6 @@ static SPICEdev *(*static_devices[])(void) = {
(SPICEdev *(*)(void)) get_ekv_info,
(SPICEdev *(*)(void)) get_psp102_info,
(SPICEdev *(*)(void)) get_bsimbulk_info,
(SPICEdev *(*)(void)) get_bsimcmg_info,
#endif
#ifdef NDEV
@ -293,7 +291,7 @@ SPICEdev ** devices(void)
#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", "bsim4v7", \
"bsim4soi", "bsim3soipd", "bsim3soifd", "bsim3soidd", "hisim2", "hisimhv1", "hisimhv2", \
"cap", "cccs", "ccvs", "csw", "dio", "hfet", "hfet2", "ind", "isrc", "jfet", "ltra", "mes", "mesa" ,"mos1", "mos2", "mos3", \
"mos6", "mos9", "res", "soi3", "sw", "tra", "urc", "vccs", "vcvs", "vsrc", "hicum0", "hicum2", "bjt504t", "ekv", "psp102", "bsimbulk", "bsimcmg"}
"mos6", "mos9", "res", "soi3", "sw", "tra", "urc", "vccs", "vcvs", "vsrc", "hicum0", "hicum2", "bjt504t", "ekv", "psp102", "bsimbulk"}
#else
#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", "bsim4v7", \
"bsim4soi", "bsim3soipd", "bsim3soifd", "bsim3soidd", "hisim2", "hisimhv1", "hisimhv2", \

View File

@ -32,8 +32,7 @@ model_numnodes(int type)
}
#ifdef ADMS
if (type == INPtypelook("BSIMBULK") || /* bsimbulk.va */
type == INPtypelook("BSIMCMG")) /* bsimcmg.va */
if (type == INPtypelook("BSIMBULK")) /* bsimbulk.va */
{
return 5;
}
@ -134,7 +133,6 @@ INP2M(CKTcircuit *ckt, INPtables *tab, card *current)
thismodel->INPmodType != INPtypelook("ekv") &&
thismodel->INPmodType != INPtypelook("psp102") &&
thismodel->INPmodType != INPtypelook("bsimbulk") &&
thismodel->INPmodType != INPtypelook("bsimcmg") &&
#endif
thismodel->INPmodType != INPtypelook("HiSIM2") &&
thismodel->INPmodType != INPtypelook("HiSIMHV1") &&

View File

@ -337,14 +337,6 @@ char *INPdomodel(CKTcircuit *ckt, card * image, INPtables * tab)
INPmkTemp
("Device type BSIMBULK not available in this binary\n");}
break;
case 17:
case 72:
type = INPtypelook("BSIMCMG");
if (type < 0) {
err =
INPmkTemp
("Device type BSIMCMG not available in this binary\n");}
break;
case 44:
type = INPtypelook("ekv");
if (type < 0) {