Add lab 2 parameters and simulation script.
This commit is contained in:
parent
b41e616236
commit
61b22fffdf
26
Lab2/modelcard/1um.pm
Normal file
26
Lab2/modelcard/1um.pm
Normal file
@ -0,0 +1,26 @@
|
||||
|
||||
*
|
||||
* Long channel models from CMOS Circuit Design, Layout, and Simulation,
|
||||
* Level=3 models VDD=5V, see CMOSedu.com
|
||||
.MODEL nmos NMOS LEVEL = 3
|
||||
+ TOX = 200E-10 NSUB = 1E17 GAMMA = 0.5
|
||||
+ PHI = 0.7 VTO = 0.8 DELTA = 3.0
|
||||
+ UO = 650 ETA = 3.0E-6 THETA = 0.1
|
||||
+ KP = 120E-6 VMAX = 1E5 KAPPA = 0.3
|
||||
+ RSH = 0 NFS = 1E12 TPG = 1
|
||||
+ XJ = 500E-9 LD = 100E-9
|
||||
+ CGDO = 200E-12 CGSO = 200E-12 CGBO = 1E-10
|
||||
+ CJ = 400E-6 PB = 1 MJ = 0.5
|
||||
+ CJSW = 300E-12 MJSW = 0.5
|
||||
*
|
||||
.MODEL pmos PMOS LEVEL = 3
|
||||
+ TOX = 200E-10 NSUB = 1E17 GAMMA = 0.6
|
||||
+ PHI = 0.7 VTO = -0.9 DELTA = 0.1
|
||||
+ UO = 250 ETA = 0 THETA = 0.1
|
||||
+ KP = 40E-6 VMAX = 5E4 KAPPA = 1
|
||||
+ RSH = 0 NFS = 1E12 TPG = -1
|
||||
+ XJ = 500E-9 LD = 100E-9
|
||||
+ CGDO = 200E-12 CGSO = 200E-12 CGBO = 1E-10
|
||||
+ CJ = 400E-6 PB = 1 MJ = 0.5
|
||||
+ CJSW = 300E-12 MJSW = 0.5
|
||||
*
|
121
Lab2/modelcard/50nm.pm
Normal file
121
Lab2/modelcard/50nm.pm
Normal file
@ -0,0 +1,121 @@
|
||||
|
||||
* Short channel models from CMOS Circuit Design, Layout, and Simulation,
|
||||
* 50nm BSIM4 models VDD=1V, see CMOSedu.com
|
||||
*
|
||||
.model nmos nmos level = 54
|
||||
+binunit = 1 paramchk= 1 mobmod = 0
|
||||
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 0
|
||||
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
|
||||
+permod = 1 acnqsmod= 0 trnqsmod= 0
|
||||
+tnom = 27 toxe = 1.4e-009 toxp = 7e-010 toxm = 1.4e-009
|
||||
+epsrox = 3.9 wint = 5e-009 lint = 1.2e-008
|
||||
+ll = 0 wl = 0 lln = 1 wln = 1
|
||||
+lw = 0 ww = 0 lwn = 1 wwn = 1
|
||||
+lwl = 0 wwl = 0 xpart = 0 toxref = 1.4e-009
|
||||
+vth0 = 0.22 k1 = 0.35 k2 = 0.05 k3 = 0
|
||||
+k3b = 0 w0 = 2.5e-006 dvt0 = 2.8 dvt1 = 0.52
|
||||
+dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0
|
||||
+dsub = 2 minv = 0.05 voffl = 0 dvtp0 = 1e-007
|
||||
+dvtp1 = 0.05 lpe0 = 5.75e-008 lpeb = 2.3e-010 xj = 2e-008
|
||||
+ngate = 5e+020 ndep = 2.8e+018 nsd = 1e+020 phin = 0
|
||||
+cdsc = 0.0002 cdscb = 0 cdscd = 0 cit = 0
|
||||
+voff = -0.15 nfactor = 1.2 eta0 = 0.15 etab = 0
|
||||
+vfb = -0.55 u0 = 0.032 ua = 1.6e-010 ub = 1.1e-017
|
||||
+uc = -3e-011 vsat = 1.1e+005 a0 = 2 ags = 1e-020
|
||||
+a1 = 0 a2 = 1 b0 = -1e-020 b1 = 0
|
||||
+keta = 0.04 dwg = 0 dwb = 0 pclm = 0.18
|
||||
+pdiblc1 = 0.028 pdiblc2 = 0.022 pdiblcb = -0.005 drout = 0.45
|
||||
+pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 1e-007
|
||||
+fprout = 0.2 pdits = 0.2 pditsd = 0.23 pditsl = 2.3e+006
|
||||
+rsh = 3 rdsw = 150 rsw = 150 rdw = 150
|
||||
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0
|
||||
+prwb = 6.8e-011 wr = 1 alpha0 = 0.074 alpha1 = 0.005
|
||||
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
|
||||
+egidl = 0.8
|
||||
+aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
|
||||
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
|
||||
+eigbinv = 1.1 nigbinv = 3 aigc = 0.017 bigc = 0.0028
|
||||
+cigc = 0.002 aigsd = 0.017 bigsd = 0.0028 cigsd = 0.002
|
||||
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
|
||||
+xrcrg1 = 12 xrcrg2 = 5
|
||||
+cgso = 6.238e-010 cgdo = 6.238e-010 cgbo = 2.56e-011 cgdl = 2.495e-10
|
||||
+cgsl = 2.495e-10 ckappas = 0.02 ckappad = 0.02 acde = 1
|
||||
+moin = 15 noff = 0.9 voffcv = 0.02
|
||||
+kt1 = -0.21 kt1l = 0.0 kt2 = -0.042 ute = -1.5
|
||||
+ua1 = 1e-009 ub1 = -3.5e-019 uc1 = 0 prt = 0
|
||||
+at = 53000
|
||||
+fnoimod = 1 tnoimod = 0
|
||||
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
|
||||
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
|
||||
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
|
||||
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
|
||||
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
|
||||
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 5e-010
|
||||
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
|
||||
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
|
||||
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
|
||||
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
|
||||
+xtis = 3 xtid = 3
|
||||
+dmcg = 0e-006 dmci = 0e-006 dmdg = 0e-006 dmcgt = 0e-007
|
||||
+dwj = 0e-008 xgw = 0e-007 xgl = 0e-008
|
||||
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
|
||||
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
|
||||
*
|
||||
.model pmos pmos level = 54
|
||||
+binunit = 1 paramchk= 1 mobmod = 0
|
||||
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 0
|
||||
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
|
||||
+permod = 1 acnqsmod= 0 trnqsmod= 0
|
||||
+tnom = 27 toxe = 1.4e-009 toxp = 7e-010 toxm = 1.4e-009
|
||||
+epsrox = 3.9 wint = 5e-009 lint = 1.2e-008
|
||||
+ll = 0 wl = 0 lln = 1 wln = 1
|
||||
+lw = 0 ww = 0 lwn = 1 wwn = 1
|
||||
+lwl = 0 wwl = 0 xpart = 0 toxref = 1.4e-009
|
||||
+vth0 = -0.22 k1 = 0.39 k2 = 0.05 k3 = 0
|
||||
+k3b = 0 w0 = 2.5e-006 dvt0 = 3.9 dvt1 = 0.635
|
||||
+dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0
|
||||
+dsub = 0.7 minv = 0.05 voffl = 0 dvtp0 = 0.5e-008
|
||||
+dvtp1 = 0.05 lpe0 = 5.75e-008 lpeb = 2.3e-010 xj = 2e-008
|
||||
+ngate = 5e+020 ndep = 2.8e+018 nsd = 1e+020 phin = 0
|
||||
+cdsc = 0.000258 cdscb = 0 cdscd = 6.1e-008 cit = 0
|
||||
+voff = -0.15 nfactor = 2 eta0 = 0.15 etab = 0
|
||||
+vfb = 0.55 u0 = 0.0095 ua = 1.6e-009 ub = 8e-018
|
||||
+uc = 4.6e-013 vsat = 90000 a0 = 1.2 ags = 1e-020
|
||||
+a1 = 0 a2 = 1 b0 = -1e-020 b1 = 0
|
||||
+keta = -0.047 dwg = 0 dwb = 0 pclm = 0.55
|
||||
+pdiblc1 = 0.03 pdiblc2 = 0.0055 pdiblcb = 3.4e-008 drout = 0.56
|
||||
+pvag = 1e-020 delta = 0.014 pscbe1 = 8.14e+008 pscbe2 = 9.58e-007
|
||||
+fprout = 0.2 pdits = 0.2 pditsd = 0.23 pditsl = 2.3e+006
|
||||
+rsh = 3 rdsw = 250 rsw = 160 rdw = 160
|
||||
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 3.22e-008
|
||||
+prwb = 6.8e-011 wr = 1 alpha0 = 0.074 alpha1 = 0.005
|
||||
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
|
||||
+egidl = 0.8
|
||||
+aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
|
||||
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
|
||||
+eigbinv = 1.1 nigbinv = 3 aigc = 0.69 bigc = 0.0012
|
||||
+cigc = 0.0008 aigsd = 0.0087 bigsd = 0.0012 cigsd = 0.0008
|
||||
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
|
||||
+xrcrg1 = 12 xrcrg2 = 5
|
||||
+cgso = 7.43e-010 cgdo = 7.43e-010 cgbo = 2.56e-011 cgdl = 1e-014
|
||||
+cgsl = 1e-014 ckappas = 0.5 ckappad = 0.5 acde = 1
|
||||
+moin = 15 noff = 0.9 voffcv = 0.02
|
||||
+kt1 = -0.19 kt1l = 0 kt2 = -0.052 ute = -1.5
|
||||
+ua1 = -1e-009 ub1 = 2e-018 uc1 = 0 prt = 0
|
||||
+at = 33000
|
||||
+fnoimod = 1 tnoimod = 0
|
||||
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
|
||||
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
|
||||
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
|
||||
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
|
||||
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
|
||||
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 5e-010
|
||||
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
|
||||
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
|
||||
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
|
||||
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
|
||||
+xtis = 3 xtid = 3
|
||||
+dmcg = 0e-006 dmci = 0e-006 dmdg = 0e-006 dmcgt = 0e-007
|
||||
+dwj = 0e-008 xgw = 0e-007 xgl = 0e-008
|
||||
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
|
||||
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
|
141
Lab2/modelcard/PTM_HP/16nm.pm
Normal file
141
Lab2/modelcard/PTM_HP/16nm.pm
Normal file
@ -0,0 +1,141 @@
|
||||
* PTM High Performance 16nm Metal Gate / High-K / Strained-Si
|
||||
* nominal Vdd = 0.7V
|
||||
|
||||
.model nmos nmos level = 54
|
||||
|
||||
+version = 4.0 binunit = 1 paramchk= 1 mobmod = 0
|
||||
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 1
|
||||
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
|
||||
+permod = 1 acnqsmod= 0 trnqsmod= 0
|
||||
|
||||
+tnom = 27 toxe = 9.5e-010 toxp = 7e-010 toxm = 9.5e-010
|
||||
+dtox = 2.5e-010 epsrox = 3.9 wint = 5e-009 lint = 1.45e-009
|
||||
+ll = 0 wl = 0 lln = 1 wln = 1
|
||||
+lw = 0 ww = 0 lwn = 1 wwn = 1
|
||||
+lwl = 0 wwl = 0 xpart = 0 toxref = 9.5e-010
|
||||
+xl = -6.5e-9
|
||||
|
||||
+vth0 = 0.47965 k1 = 0.4 k2 = 0 k3 = 0
|
||||
+k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2
|
||||
+dvt2 = 0 dvt0w = 0 dvt1w = 0 dvt2w = 0
|
||||
+dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011
|
||||
+dvtp1 = 0.1 lpe0 = 0 lpeb = 0 xj = 5e-009
|
||||
+ngate = 1e+023 ndep = 7e+018 nsd = 2e+020 phin = 0
|
||||
+cdsc = 0 cdscb = 0 cdscd = 0 cit = 0
|
||||
+voff = -0.13 nfactor = 2.3 eta0 = 0.0032 etab = 0
|
||||
+vfb = -0.55 u0 = 0.03 ua = 6e-010 ub = 1.2e-018
|
||||
+uc = 0 vsat = 290000 a0 = 1 ags = 0
|
||||
+a1 = 0 a2 = 1 b0 = 0 b1 = 0
|
||||
+keta = 0.04 dwg = 0 dwb = 0 pclm = 0.02
|
||||
+pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = -0.005 drout = 0.5
|
||||
+pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 1e-007
|
||||
+fprout = 0.2 pdits = 0.01 pditsd = 0.23 pditsl = 2300000
|
||||
+rsh = 5 rdsw = 140 rsw = 75 rdw = 75
|
||||
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0
|
||||
+prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005
|
||||
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
|
||||
+egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
|
||||
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
|
||||
+eigbinv = 1.1 nigbinv = 3 aigc = 0.0213 bigc = 0.0025889
|
||||
+cigc = 0.002 aigsd = 0.0213 bigsd = 0.0025889 cigsd = 0.002
|
||||
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
|
||||
+xrcrg1 = 12 xrcrg2 = 5
|
||||
|
||||
+cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010
|
||||
+cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1
|
||||
+moin = 15 noff = 0.9 voffcv = 0.02
|
||||
|
||||
+kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5
|
||||
+ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0
|
||||
+at = 33000
|
||||
|
||||
+fnoimod = 1 tnoimod = 0
|
||||
|
||||
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
|
||||
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
|
||||
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
|
||||
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
|
||||
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
|
||||
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010
|
||||
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
|
||||
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
|
||||
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
|
||||
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
|
||||
+xtis = 3 xtid = 3
|
||||
|
||||
+dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0
|
||||
+dwj = 0 xgw = 0 xgl = 0
|
||||
|
||||
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
|
||||
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
|
||||
|
||||
|
||||
.model pmos pmos level = 54
|
||||
|
||||
+version = 4.0 binunit = 1 paramchk= 1 mobmod = 0
|
||||
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 1
|
||||
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
|
||||
+permod = 1 acnqsmod= 0 trnqsmod= 0
|
||||
|
||||
+tnom = 27 toxe = 1e-009 toxp = 7e-010 toxm = 1e-009
|
||||
+dtox = 3e-010 epsrox = 3.9 wint = 5e-009 lint = 1.45e-009
|
||||
+ll = 0 wl = 0 lln = 1 wln = 1
|
||||
+lw = 0 ww = 0 lwn = 1 wwn = 1
|
||||
+lwl = 0 wwl = 0 xpart = 0 toxref = 1e-009
|
||||
+xl = -6.5e-9
|
||||
|
||||
+vth0 = -0.43121 k1 = 0.4 k2 = -0.01 k3 = 0
|
||||
+k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2
|
||||
+dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0
|
||||
+dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011
|
||||
+dvtp1 = 0.05 lpe0 = 0 lpeb = 0 xj = 5e-009
|
||||
+ngate = 1e+023 ndep = 5.5e+018 nsd = 2e+020 phin = 0
|
||||
+cdsc = 0 cdscb = 0 cdscd = 0 cit = 0
|
||||
+voff = -0.126 nfactor = 2.1 eta0 = 0.0032 etab = 0
|
||||
+vfb = 0.55 u0 = 0.006 ua = 2e-009 ub = 5e-019
|
||||
+uc = 0 vsat = 250000 a0 = 1 ags = 1e-020
|
||||
+a1 = 0 a2 = 1 b0 = 0 b1 = 0
|
||||
+keta = -0.047 dwg = 0 dwb = 0 pclm = 0.12
|
||||
+pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = 3.4e-008 drout = 0.56
|
||||
+pvag = 1e-020 delta = 0.01 pscbe1 = 1.2e+009 pscbe2 = 8.0472e-007
|
||||
+fprout = 0.2 pdits = 0.08 pditsd = 0.23 pditsl = 2300000
|
||||
+rsh = 5 rdsw = 140 rsw = 70 rdw = 70
|
||||
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0
|
||||
+prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005
|
||||
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
|
||||
+egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
|
||||
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
|
||||
+eigbinv = 1.1 nigbinv = 3 aigc = 0.0213 bigc = 0.0025889
|
||||
+cigc = 0.002 aigsd = 0.0213 bigsd = 0.0025889 cigsd = 0.002
|
||||
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
|
||||
+xrcrg1 = 12 xrcrg2 = 5
|
||||
|
||||
+cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010
|
||||
+cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1
|
||||
+moin = 15 noff = 0.9 voffcv = 0.02
|
||||
|
||||
+kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5
|
||||
+ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0
|
||||
+at = 33000
|
||||
|
||||
+fnoimod = 1 tnoimod = 0
|
||||
|
||||
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
|
||||
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
|
||||
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
|
||||
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
|
||||
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
|
||||
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010
|
||||
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
|
||||
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
|
||||
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
|
||||
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
|
||||
+xtis = 3 xtid = 3
|
||||
|
||||
+dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0
|
||||
+dwj = 0 xgw = 0 xgl = 0
|
||||
|
||||
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
|
||||
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
|
||||
|
||||
|
139
Lab2/modelcard/PTM_LP/16nm.pm
Normal file
139
Lab2/modelcard/PTM_LP/16nm.pm
Normal file
@ -0,0 +1,139 @@
|
||||
* PTM Low Power 16nm Metal Gate / High-K / Strained-Si
|
||||
* nominal Vdd = 0.9V
|
||||
|
||||
.model nmos nmos level = 54
|
||||
|
||||
|
||||
+version = 4.0 binunit = 1 paramchk= 1 mobmod = 0
|
||||
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 1
|
||||
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
|
||||
+permod = 1 acnqsmod= 0 trnqsmod= 0
|
||||
|
||||
+tnom = 27 toxe = 1.2e-009 toxp = 9e-010 toxm = 1.2e-009
|
||||
+dtox = 3e-010 epsrox = 3.9 wint = 5e-009 lint = 0
|
||||
+ll = 0 wl = 0 lln = 1 wln = 1
|
||||
+lw = 0 ww = 0 lwn = 1 wwn = 1
|
||||
+lwl = 0 wwl = 0 xpart = 0 toxref = 1.2e-009
|
||||
|
||||
+vth0 = 0.68191 k1 = 0.4 k2 = 0 k3 = 0
|
||||
+k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2
|
||||
+dvt2 = 0 dvt0w = 0 dvt1w = 0 dvt2w = 0
|
||||
+dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011
|
||||
+dvtp1 = 0.1 lpe0 = 0 lpeb = 0 xj = 5e-009
|
||||
+ngate = 1e+023 ndep = 7e+018 nsd = 2e+020 phin = 0
|
||||
+cdsc = 0 cdscb = 0 cdscd = 0 cit = 0
|
||||
+voff = -0.1014 nfactor = 1.6 eta0 = 0.0095 etab = 0
|
||||
+vfb = -0.55 u0 = 0.028 ua = 6e-010 ub = 1.2e-018
|
||||
+uc = 0 vsat = 200000 a0 = 1 ags = 0
|
||||
+a1 = 0 a2 = 1 b0 = 0 b1 = 0
|
||||
+keta = 0.04 dwg = 0 dwb = 0 pclm = 0.02
|
||||
+pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = -0.005 drout = 0.5
|
||||
+pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 1e-007
|
||||
+fprout = 0.2 pdits = 0.01 pditsd = 0.23 pditsl = 2300000
|
||||
+rsh = 5 rdsw = 170 rsw = 75 rdw = 75
|
||||
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0
|
||||
+prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005
|
||||
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
|
||||
+egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
|
||||
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
|
||||
+eigbinv = 1.1 nigbinv = 3 aigc = 0.015211 bigc = 0.0027432
|
||||
+cigc = 0.002 aigsd = 0.015211 bigsd = 0.0027432 cigsd = 0.002
|
||||
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
|
||||
+xrcrg1 = 12 xrcrg2 = 5
|
||||
|
||||
+cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010
|
||||
+cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1
|
||||
+moin = 15 noff = 0.9 voffcv = 0.02
|
||||
|
||||
+kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5
|
||||
+ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0
|
||||
+at = 33000
|
||||
|
||||
+fnoimod = 1 tnoimod = 0
|
||||
|
||||
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
|
||||
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
|
||||
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
|
||||
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
|
||||
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
|
||||
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010
|
||||
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
|
||||
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
|
||||
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
|
||||
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
|
||||
+xtis = 3 xtid = 3
|
||||
|
||||
+dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0
|
||||
+dwj = 0 xgw = 0 xgl = 0
|
||||
|
||||
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
|
||||
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
|
||||
|
||||
|
||||
.model pmos pmos level = 54
|
||||
|
||||
|
||||
+version = 4.0 binunit = 1 paramchk= 1 mobmod = 0
|
||||
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 1
|
||||
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
|
||||
+permod = 1 acnqsmod= 0 trnqsmod= 0
|
||||
|
||||
+tnom = 27 toxe = 1.22e-009 toxp = 9e-010 toxm = 1.22e-009
|
||||
+dtox = 3.2e-010 epsrox = 3.9 wint = 5e-009 lint = 8e-010
|
||||
+ll = 0 wl = 0 lln = 1 wln = 1
|
||||
+lw = 0 ww = 0 lwn = 1 wwn = 1
|
||||
+lwl = 0 wwl = 0 xpart = 0 toxref = 1.22e-009
|
||||
|
||||
+vth0 = -0.6862 k1 = 0.4 k2 = -0.01 k3 = 0
|
||||
+k3b = 0 w0 = 2.5e-006 dvt0 = 1 dvt1 = 2
|
||||
+dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0
|
||||
+dsub = 0.1 minv = 0.05 voffl = 0 dvtp0 = 1e-011
|
||||
+dvtp1 = 0.05 lpe0 = 0 lpeb = 0 xj = 7.2e-009
|
||||
+ngate = 1e+023 ndep = 4.4e+018 nsd = 2e+020 phin = 0
|
||||
+cdsc = 0 cdscb = 0 cdscd = 0 cit = 0
|
||||
+voff = -0.08 nfactor = 1.8 eta0 = 0.0095 etab = 0
|
||||
+vfb = 0.55 u0 = 0.0075 ua = 2e-009 ub = 5e-019
|
||||
+uc = 0 vsat = 195000 a0 = 1 ags = 1e-020
|
||||
+a1 = 0 a2 = 1 b0 = 0 b1 = 0
|
||||
+keta = -0.047 dwg = 0 dwb = 0 pclm = 0.12
|
||||
+pdiblc1 = 0.001 pdiblc2 = 0.001 pdiblcb = 3.4e-008 drout = 0.56
|
||||
+pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 9.58e-007
|
||||
+fprout = 0.2 pdits = 0.08 pditsd = 0.23 pditsl = 2300000
|
||||
+rsh = 5 rdsw = 220 rsw = 72.5 rdw = 72.5
|
||||
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0
|
||||
+prwb = 0 wr = 1 alpha0 = 0.074 alpha1 = 0.005
|
||||
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
|
||||
+egidl = 0.8 aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
|
||||
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
|
||||
+eigbinv = 1.1 nigbinv = 3 aigc = 0.0097 bigc = 0.00125
|
||||
+cigc = 0.0008 aigsd = 0.0115 bigsd = 0.00125 cigsd = 0.0008
|
||||
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
|
||||
+xrcrg1 = 12 xrcrg2 = 5
|
||||
|
||||
+cgso = 5e-011 cgdo = 5e-011 cgbo = 2.56e-011 cgdl = 2.653e-010
|
||||
+cgsl = 2.653e-010 ckappas = 0.03 ckappad = 0.03 acde = 1
|
||||
+moin = 15 noff = 0.9 voffcv = 0.02
|
||||
|
||||
+kt1 = -0.11 kt1l = 0 kt2 = 0.022 ute = -1.5
|
||||
+ua1 = 4.31e-009 ub1 = 7.61e-018 uc1 = -5.6e-011 prt = 0
|
||||
+at = 33000
|
||||
|
||||
+fnoimod = 1 tnoimod = 0
|
||||
|
||||
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
|
||||
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
|
||||
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
|
||||
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
|
||||
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
|
||||
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 3e-010
|
||||
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
|
||||
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
|
||||
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
|
||||
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
|
||||
+xtis = 3 xtid = 3
|
||||
|
||||
+dmcg = 0 dmci = 0 dmdg = 0 dmcgt = 0
|
||||
+dwj = 0 xgw = 0 xgl = 0
|
||||
|
||||
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
|
||||
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
|
146
Lab2/process.py
Normal file
146
Lab2/process.py
Normal file
@ -0,0 +1,146 @@
|
||||
import os
|
||||
import ltspice
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
simulations = {
|
||||
"longchannel": (5.0, """
|
||||
.include modelcard/1um.pm
|
||||
.param supply = {}
|
||||
.param ll = 1u
|
||||
"""),
|
||||
"50nm": (1.0, """
|
||||
.include ./modelcard/50nm.pm
|
||||
.param supply = {}
|
||||
.param ll=50nm
|
||||
"""),
|
||||
"16nmlp": (0.9, """
|
||||
.include ./modelcard/PTM_LP/16nm.pm
|
||||
.param supply = {}
|
||||
.param ll=16nm
|
||||
"""),
|
||||
"16nmhp": (0.7, """
|
||||
.include ./modelcard/PTM_HP/16nm.pm
|
||||
.param supply = {}
|
||||
.param ll=16nm
|
||||
""")
|
||||
}
|
||||
|
||||
moss = {
|
||||
"nmos": "M1 2 1 0 0 nmos W={10*ll} L= ll",
|
||||
"pmos": "M1 2 1 vdd vdd pmos W={10*ll} L={ll}"
|
||||
}
|
||||
|
||||
script_dc = """
|
||||
vdd vdd 0 {supply}
|
||||
Vgs 1 0 {supply}
|
||||
Vds 2 0 {supply}
|
||||
.op
|
||||
.dc vds 0 {supply} {supply/100} Vgs 0 {supply} {supply/12}
|
||||
*.step param lambda 50n 100n 10n
|
||||
.meas ix(1:D) at vgs='supply'
|
||||
.save I(vds)
|
||||
.end
|
||||
"""
|
||||
|
||||
script_ring = """
|
||||
.subckt nn d g s ww=100nm
|
||||
mnfet d g s gnd nmos L=ll w=ww
|
||||
.ends
|
||||
|
||||
.subckt pp d g s ww=100nm
|
||||
mpfet d g s vdd pmos L=ll w=ww
|
||||
.ends
|
||||
|
||||
|
||||
.subckt inv out inn size=100n beta=2
|
||||
XPP out inn vdd pp ww='size*beta/(beta+1)'
|
||||
XNN out inn 0 nn ww='size/(beta+1)'
|
||||
.ENDS inv
|
||||
|
||||
.global gnd vdd
|
||||
vdd vdd 0 'supply'
|
||||
*Top level
|
||||
.ic v(n0)=0
|
||||
X0 n1 n0 inv size = '10*ll'
|
||||
X1 n2 n1 inv size = '10*ll'
|
||||
X2 n3 n2 inv size = '10*ll'
|
||||
X3 n4 n3 inv size = '10*ll'
|
||||
X4 n0 n4 inv size = '10*ll'
|
||||
.tran 0.1p 3n
|
||||
"""
|
||||
|
||||
def find_period(ident, script, model, mos, l):
|
||||
time = l.get_time()
|
||||
data = l.get_data('V(n0)')
|
||||
largest = max(data)
|
||||
smallest = min(data)
|
||||
diff = largest-smallest
|
||||
nearmax = [(i, dp) for (i, dp) in enumerate(data) if abs((largest-dp)/diff) < 0.01]
|
||||
nearmin = [(i, dp) for (i, dp) in enumerate(data) if abs((smallest-dp)/diff) < 0.01]
|
||||
|
||||
group1, group2 = [], []
|
||||
# Discard near-min values
|
||||
while nearmin[0][0] < nearmax[0][0]:
|
||||
nearmin.pop(0)
|
||||
# Group first peak
|
||||
while nearmax[0][0] < nearmin[0][0]:
|
||||
i, dp = nearmax.pop(0)
|
||||
group1.append((dp, time[i]))
|
||||
# Discard near-min values
|
||||
while nearmin[0][0] < nearmax[0][0]:
|
||||
nearmin.pop(0)
|
||||
# Group first peak
|
||||
while nearmax[0][0] < nearmin[0][0]:
|
||||
i, dp = nearmax.pop(0)
|
||||
group2.append((dp, time[i]))
|
||||
peak1 = max(group1)[1] * 1000000000000
|
||||
peak2 = max(group2)[1] * 1000000000000
|
||||
print(ident, peak2-peak1)
|
||||
|
||||
def find_onoff(ident, script, model, mos, l):
|
||||
vds = l.get_data('vds')
|
||||
current_lo = l.get_data('I(vds)', 0)
|
||||
current_hi = l.get_data('I(vds)', l.case_count - 1)
|
||||
print(ident, current_lo[-5], current_hi[-5])
|
||||
|
||||
def find_gm(ident, script, model, mos, l):
|
||||
vds = l.get_data('vds')
|
||||
gms = []
|
||||
for i in range(l.case_count):
|
||||
if i == 0: continue
|
||||
max_diff = max(
|
||||
[ abs(curr - prev) for (curr, prev) in
|
||||
zip(l.get_data('I(vds)', i), l.get_data('I(vds)', i-1)) ])
|
||||
gms.append(max_diff/(simulations[model][0]/12))
|
||||
print(ident, max(gms) * 10000)
|
||||
|
||||
def render_current(ident, script, model, mos, l):
|
||||
vds = l.get_data('vds')
|
||||
for i in range(l.case_count):
|
||||
curr = l.get_data('I(vds)', i)
|
||||
plt.plot(vds, curr)
|
||||
plt.savefig(ident + "_current.png", dpi=192)
|
||||
plt.close()
|
||||
|
||||
def run_sim(script, model, mos, callback):
|
||||
scriptname = "t_{}_{}".format(model, mos)
|
||||
with open(scriptname + ".cir", "w") as f:
|
||||
f.write(simulations[model][1].format(simulations[model][0]))
|
||||
if mos is not None: f.write(moss[mos])
|
||||
f.write(script)
|
||||
# sp = os.popen("wine ~/.wine/drive_c/Program\ Files/LTC/LTspiceXVII/XVIIx64.exe -b {}.cir -ascii"
|
||||
# .format(scriptname))
|
||||
# sp.read()
|
||||
l = ltspice.Ltspice(scriptname + ".raw")
|
||||
l.parse()
|
||||
|
||||
callback(scriptname, script, model, mos, l)
|
||||
|
||||
|
||||
for mos in moss.keys():
|
||||
for node in simulations.keys():
|
||||
run_sim(script_dc, node, mos, find_onoff)
|
||||
|
||||
for node in simulations.keys():
|
||||
run_sim(script_ring, node, None, find_period)
|
Loading…
Reference in New Issue
Block a user