Fixing including right pm3 file from spice corner files. Fixes https://github.com/google/skywater-pdk/issues/228. Signed-off-by: Stefan Schippers <schippes@mazinga.lan> Signed-off-by: Tim Edwards <tim@opencircuitdesign.com> Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/cells/diode_pw2nd_05v5/sky130_fd_pr__diode_pw2nd_05v5__extended_drain.model.spice b/cells/diode_pw2nd_05v5/sky130_fd_pr__diode_pw2nd_05v5__extended_drain.model.spice new file mode 100644 index 0000000..4c4a15c --- /dev/null +++ b/cells/diode_pw2nd_05v5/sky130_fd_pr__diode_pw2nd_05v5__extended_drain.model.spice
@@ -0,0 +1,63 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ ndiodedefet_pb_mult = 2.7281 +.model sky130_fd_pr__diode_pw2nd_05v5__extended_drain d ++ level = 3.0 ++ tlevc = 1.0 ++ scalm = 1.0e-6 ++ area = 1.0e+12 +* Junction Capacitance Parameters ++ cj = '0.0013459*1e-12*sky130_fd_pr__nfet_01v8__ajunction_mult' $ Units: farad/meter^2 ++ mj = 0.44 ++ pb = '0.729*ndiodedefet_pb_mult' $ Units: volt ++ cjsw = '3.6001e-011*1e-6*sky130_fd_pr__nfet_01v8__pjunction_mult' $ Units: farad/meter ++ mjsw = 0.0009 ++ php = 0.2 $ Units: volt ++ cta = 0.000792 $ Units: 1/coulomb ++ ctp = 1e-005 $ Units: 1/coulomb ++ tpb = 0.0012287 $ Units: volt/coulomb ++ tphp = 0 $ Units: volt/coulomb +* Diode IV Parameters ++ js = 2.75e-015 $ Units: amper/meter^2 ++ jsw = 6e-016 $ Units: amper/meter ++ n = 1.2928 ++ rs = 981 $ Units: ohm (ohm/meter^2 if area defined) ++ ik = '1.3e-009/1e-12' $ Units: amper/meter^2 ++ ikr = '0/1e-12' $ Units: amper/meter^2 ++ vb = 11.7 $ Units: volt ++ ibv = 0.00106 $ Units: amper ++ trs = 0 $ Units: 1/coulomb ++ eg = 1.05 $ Units: electron-volt ++ xti = 2.0 ++ tref = 30 $ Units: coulomb +* Default Parameters ++ tcv = 0 $ Units: 1/coulomb ++ gap1 = 0.000473 $ Units: electron-volt/coulomb ++ gap2 = 1110.0 ++ ttt1 = 0 $ Units: 1/coulomb ++ ttt2 = 0 $ Units: 1/coulomb^2 ++ tm1 = 0 $ Units: 1/coulomb ++ tm2 = 0 $ Units: 1/coulomb^2 ++ lm = 0 $ Units: meter ++ lp = 0 $ Units: meter ++ wm = 0 $ Units: meter ++ wp = 0 $ Units: meter ++ xm = 0 $ Units: meter ++ xoi = 10000.0 ++ xom = 10000 $ Units: angstrom ++ xp = 0 $ Units: meter ++ xw = 0 $ Units: meter
diff --git a/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice new file mode 100644 index 0000000..557aa0e --- /dev/null +++ b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice
@@ -0,0 +1,38 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0__toxe_mult = 1.06 ++ sky130_fd_pr__nfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__overlap_mult = 0.10 ++ sky130_fd_pr__nfet_20v0__ajunction_mult = 1.6 ++ sky130_fd_pr__nfet_20v0__pjunction_mult = 1.6 ++ sky130_fd_pr__nfet_20v0__lint_diff = -1.7325e-8 ++ sky130_fd_pr__nfet_20v0__wint_diff = 3.2175e-8 ++ sky130_fd_pr__nfet_20v0__dlc_diff = -1.7325e-8 ++ sky130_fd_pr__nfet_20v0__dwc_diff = 3.2175e-8 +.param ++ sky130_fd_pr__nfet_20v0__rdrift_mult = 1.8205 ++ sky130_fd_pr__nfet_20v0__hvvsat_mult = 1.3172 ++ sky130_fd_pr__nfet_20v0__vth0_diff = 1.7977e-1 ++ sky130_fd_pr__nfet_20v0__k2_diff = -2.5783e-2 +.param ++ sky130_fd_pr__nfet_20v0_iso__rdrift_mult = 2.3846 ++ sky130_fd_pr__nfet_20v0_iso__hvvsat_mult = 2.4860 ++ sky130_fd_pr__nfet_20v0_iso__vth0_diff = 1.4387e-1 ++ sky130_fd_pr__nfet_20v0_iso__k2_diff = -1.9447e-2 +.include "sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice" +.include "../nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice" +.include "../nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__fs_discrete.corner.spice"
diff --git a/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__leak_discrete.corner.spice b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__leak_discrete.corner.spice new file mode 100644 index 0000000..250605a --- /dev/null +++ b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__leak_discrete.corner.spice
@@ -0,0 +1,38 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0__toxe_mult = 0.94 ++ sky130_fd_pr__nfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__overlap_mult = 1.9 ++ sky130_fd_pr__nfet_20v0__ajunction_mult = 4.1753e-1 ++ sky130_fd_pr__nfet_20v0__pjunction_mult = 4.7786e-1 ++ sky130_fd_pr__nfet_20v0__lint_diff = 1.7325e-8 ++ sky130_fd_pr__nfet_20v0__wint_diff = -3.2175e-8 ++ sky130_fd_pr__nfet_20v0__dlc_diff = 1.7325e-8 ++ sky130_fd_pr__nfet_20v0__dwc_diff = -3.2175e-8 +.param ++ sky130_fd_pr__nfet_20v0__rdrift_mult = 4.9875e-1 ++ sky130_fd_pr__nfet_20v0__hvvsat_mult = 5.6124e-1 ++ sky130_fd_pr__nfet_20v0__vth0_diff = -3.8460e-1 ++ sky130_fd_pr__nfet_20v0__k2_diff = -2.8999e-2 +.param ++ sky130_fd_pr__nfet_20v0_iso__rdrift_mult = 2.8388e-1 ++ sky130_fd_pr__nfet_20v0_iso__hvvsat_mult = 2.1534e-1 ++ sky130_fd_pr__nfet_20v0_iso__vth0_diff = -3.9471e-1 ++ sky130_fd_pr__nfet_20v0_iso__k2_diff = -2.0083e-2 +.include "sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice" +.include "../nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice" +.include "../nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__leak_discrete.corner.spice"
diff --git a/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice new file mode 100644 index 0000000..2d6da79 --- /dev/null +++ b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice
@@ -0,0 +1,38 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0__toxe_mult = 0.94 ++ sky130_fd_pr__nfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__overlap_mult = 1.9 ++ sky130_fd_pr__nfet_20v0__ajunction_mult = 4.1753e-1 ++ sky130_fd_pr__nfet_20v0__pjunction_mult = 4.7786e-1 ++ sky130_fd_pr__nfet_20v0__lint_diff = 1.7325e-8 ++ sky130_fd_pr__nfet_20v0__wint_diff = -3.2175e-8 ++ sky130_fd_pr__nfet_20v0__dlc_diff = 1.7325e-8 ++ sky130_fd_pr__nfet_20v0__dwc_diff = -3.2175e-8 +.param ++ sky130_fd_pr__nfet_20v0__rdrift_mult = 4.9875e-1 ++ sky130_fd_pr__nfet_20v0__hvvsat_mult = 5.6124e-1 ++ sky130_fd_pr__nfet_20v0__vth0_diff = -1.0850e-1 ++ sky130_fd_pr__nfet_20v0__k2_diff = -2.8999e-2 +.param ++ sky130_fd_pr__nfet_20v0_iso__rdrift_mult = 2.8388e-1 ++ sky130_fd_pr__nfet_20v0_iso__hvvsat_mult = 2.1534e-1 ++ sky130_fd_pr__nfet_20v0_iso__vth0_diff = -1.4327e-1 ++ sky130_fd_pr__nfet_20v0_iso__k2_diff = -2.0083e-2 +.include "sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice" +.include "../nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice" +.include "../nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__sf_discrete.corner.spice"
diff --git a/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice new file mode 100644 index 0000000..621daa1 --- /dev/null +++ b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice
@@ -0,0 +1,339 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.include "../../models/parasitics/sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain.model.spice" +.include "../diode_pw2nd_05v5/sky130_fd_pr__diode_pw2nd_05v5__extended_drain.model.spice" +.subckt sky130_fd_pr__nfet_20v0 d g s b w=60u l=2u m=1 t=30 ++ ad=0 as=0 pd=0 ps=0 nrd=2 nrs=2 mf=1 sa=0 sb=0 +.PARAM rdrift_tnom=1.934600e+004 vgdep_tnom=6.000000e-002 vth_tnom=7.000000e-001 vbdep_tnom=-1.224000 ++ vth2=+1.048000e-001 hvvsat_tnom=3.893600 avsat_tnom=9.407600e-001 deltaw=9.000000e-001 hvnel_n20vhv1=2.95 hvvbdep=-2.490600e-002 +.param ++ sky130_fd_pr__nfet_20v0__vgdep_mult=1 ++ n20vhv1res_vth0_diff=0.0 ++ sky130_fd_pr__nfet_20v0__vbdep_mult=1 ++ sky130_fd_pr__nfet_20v0__avsat_mult=1 +.param ++ sky130_fd_pr__nfet_20v0__pgatejunction_mult = 4.6689e-1 ++ sky130_fd_pr__nfet_20v0__mjswgatejunction_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__pbswgatejunction_mult = 1.0 +.param ++ w_n20vhv1 = 29.41 ++ nrd_n20vhv1 = 2.0 ++ nrs_n20vhv1 = 2.0 ++ ad_n20vhv1 = '294.5*0.5' ++ as_n20vhv1 = 8.7 ++ pd_n20vhv1 = '91.5*0.5' ++ ps_n20vhv1 = 60.58 ++ delvto_n20vhv1 = 0.0 +.param tc1_rdrift=0.00671814786081909 +.param tc1_vgdep=0.00067352380952381 +.param tc1_vth=0.00573669467787115 +.param tc1_vbdep=-0.000337318979879533 +.param tc1_hvvsat=0.0070429485950945 +.param tc1_avsat=0.00120508503584265 +.param tc2_rdrift=1.77312980397369E-05 +.param tc2_vgdep=7.92380952380953E-06 +.param tc2_vth=-0.000036750700280112 +.param tc2_vbdep=-1.67576573112905E-05 +.param tc2_hvvsat=-6.16729946550226E-06 +.param tc2_avsat=-1.16883863966948E-05 +.param ++ rdrift='rdrift_tnom*((w_n20vhv1-deltaw)/w_n20vhv1)*(1+tc1_rdrift*(temper-30)+tc2_rdrift*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__rdrift_mult' ++ vgdep='vgdep_tnom*(1+tc1_vgdep*(temper-30)+tc2_vgdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vgdep_mult' ++ vth='vth_tnom*(1+tc1_vth*(temper-30)+tc2_vth*(temper-30)*(temper-30))+n20vhv1res_vth0_diff' ++ vbdep='vbdep_tnom*(1+tc1_vbdep*(temper-30)+tc2_vbdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vbdep_mult' ++ hvvsat='hvvsat_tnom*(1+tc1_hvvsat*(temper-30)+tc2_hvvsat*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__hvvsat_mult' ++ avsat='avsat_tnom*(1+tc1_avsat*(temper-30)+tc2_avsat*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__avsat_mult' +m1 d1 g s b sky130_fd_pr__nfet_20v0__base w=w_n20vhv1 l=hvnel_n20vhv1 ad=0 as=0 pd=0 ps=0 nrd=nrd_n20vhv1 nrs=nrs_n20vhv1 delvto=delvto_n20vhv1 m=m +rldd d d1 r='abs((1/w_n20vhv1)*(rdrift/(1+vgdep*(v(g,s)-vth-vbdep*v(b,s))))*(1+pwr((abs(v(d,s)+vth2-min(v(d1,s),60))/(hvvsat*(1+hvvbdep*v(b,s)))),avsat)))' tc1 = 0 tc2 = 0 m = {m} +dNDrain1 b d sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain area='0.5*ad_n20vhv1' pj='0.5*pd_n20vhv1' m=m +dNDrain2 b d1 sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain area='0.5*ad_n20vhv1' pj='0.5*pd_n20vhv1' m=m +dNSrc b s sky130_fd_pr__diode_pw2nd_05v5__extended_drain area='as_n20vhv1' pj='ps_n20vhv1-w_n20vhv1' m=m +.model sky130_fd_pr__nfet_20v0__base.0 nmos +* DC IV MOS Parameters ++ lmin = 4.95e-07 lmax = 3.05e-06 wmin = 1.9995e-05 wmax = 6.0005e-5 ++ level = 54.0 ++ tnom = 30.0 ++ version = 4.5 ++ toxm = 1.16e-8 ++ xj = 1.5e-7 ++ lln = 1.0 ++ lwn = 1.0 ++ wln = 1.0 ++ wwn = 1.0 ++ lint = '7.6507e-08+sky130_fd_pr__nfet_20v0__lint_diff' ++ ll = 0.0 ++ lw = 0.0 ++ lwl = 0.0 ++ wint = '2.1346e-08+sky130_fd_pr__nfet_20v0__wint_diff' ++ wl = 0.0 ++ ww = 0.0 ++ wwl = 0.0 ++ xl = 0.0 ++ xw = 0.0 ++ mobmod = 0.0 ++ binunit = 2.0 ++ dwg = -4.1292e-9 ++ dwb = -1.6944e-9 +* BSIM4 - Model Selectors ++ igcmod = 0.0 ++ igbmod = 0.0 ++ rgatemod = 0.0 ++ rbodymod = 1.0 ++ trnqsmod = 0.0 ++ acnqsmod = 0.0 ++ fnoimod = 1.0 ++ tnoimod = 1.0 ++ permod = 1.0 ++ geomod = 0.0 ++ rdsmod = 0.0 ++ tempmod = 0.0 ++ lintnoi = 0.0 ++ vfbsdoff = 0.0 ++ lambda = 0.0 ++ vtl = 0.0 ++ lc = 5.0e-9 ++ xn = 3.0 ++ rnoia = 0.794 ++ rnoib = 0.38 ++ tnoia = 7.5e+6 ++ tnoib = 7.2e+6 +* BSIM4 - Process Parameters ++ epsrox = 3.9 ++ toxe = '1.16e-08*sky130_fd_pr__nfet_20v0__toxe_mult' ++ dtox = 0.0 ++ ndep = 1.7e+17 ++ nsd = 1.0e+20 ++ rshg = 0.1 ++ rsh = '1.0*sky130_fd_pr__nfet_20v0__rshn_mult' +* Threshold Voltage Parameters ++ vth0 = '0.80788+sky130_fd_pr__nfet_20v0__vth0_diff' ++ k1 = 0.88325 ++ k2 = '-0.022723 + sky130_fd_pr__nfet_20v0__k2_diff' ++ k3 = -0.884 ++ dvt0 = 0.0 ++ dvt1 = 0.53 ++ dvt2 = -0.19251 ++ dvt0w = 0.16 ++ dvt1w = 6909100.0 ++ dvt2w = -0.036016 ++ w0 = 0.0 ++ k3b = 0.43 +* NEW BSIM4 Parameters for Level 54 ++ phin = 0.0 ++ lpe0 = 2.5e-8 ++ lpeb = -2.182e-7 ++ vbm = -3.0 ++ dvtp0 = 0.0 ++ dvtp1 = 0.0 +* Mobility Parameters ++ vsat = 1.1160e+5 ++ ua = -1.321700e-10 ++ ub = 9.6801e-19 ++ uc = 1.0857e-10 ++ rdsw = 724.62 ++ prwb = 0.05626 ++ prwg = 0.048 ++ wr = 1.0 ++ u0 = 0.17559 ++ a0 = 2.1951 ++ keta = -0.01066 ++ a1 = 0.0 ++ a2 = 0.65972622 ++ ags = 0.18589 ++ b0 = 3.2933e-8 ++ b1 = 0.0 +* BSIM4 - Mobility Parameters ++ eu = 1.67 ++ rdswmin = 0.0 ++ rdw = 0.0 ++ rdwmin = 0.0 ++ rsw = 0.0 ++ rswmin = 0.0 +* Subthreshold Current Parameters ++ voff = -0.20613 ++ nfactor = 0.2786 ++ up = 0.0 ++ ud = 0.0 ++ lp = 1.0 ++ tvfbsdoff = 0.0 ++ tvoff = 0.0 ++ cit = -0.0008 ++ cdsc = 0.0 ++ cdscb = 0.0 ++ cdscd = 0.0 ++ eta0 = 0.056336 ++ etab = -0.01932 ++ dsub = 0.504 +* BSIM4 - Sub-threshold parameters ++ voffl = -4.2579486e-7 ++ minv = 0.0 +* Rout Parameters ++ pclm = 1.2848 ++ pdiblc1 = 0.21098 ++ pdiblc2 = 0.0002 ++ pdiblcb = -0.26831 ++ drout = 0.36075 ++ pscbe1 = 2.2576e+9 ++ pscbe2 = 1.68e-6 ++ pvag = 1.99 ++ delta = 0.0246 ++ alpha0 = 9.8435e-9 ++ alpha1 = 0.0 ++ beta0 = 36.96 +* BSIM4 - Rout Parameters ++ fprout = 10.125 ++ pdits = 0.0 ++ pditsl = 0.0 ++ pditsd = 0.0 +* BSIM4 - Gate Induced Drain Leakage Model Parameters ++ agidl = 5.06e-16 ++ bgidl = 1058000000.0 ++ cgidl = 4000.0 ++ egidl = 0.8 +* BSIM4 - Gate Leakage Current Parameters ++ aigbacc = 1.0 ++ bigbacc = 0.0 ++ cigbacc = 0.0 ++ nigbacc = 1.0 ++ aigbinv = 0.35 ++ bigbinv = 0.03 ++ cigbinv = 0.006 ++ eigbinv = 1.1 ++ nigbinv = 3.0 ++ aigc = 0.43 ++ bigc = 0.054 ++ cigc = 0.075 ++ nigc = 1.0 ++ aigsd = 0.43 ++ bigsd = 0.054 ++ cigsd = 0.075 ++ dlcig = 0.0 ++ poxedge = 1.0 ++ pigcd = 1.0 ++ ntox = 1.0 ++ toxref = 1.16e-8 +* Temperature Effects Parameters ++ kt1 = -0.35073 ++ kt2 = -0.019151 ++ at = 49600.0 ++ ute = -1.2986 ++ ua1 = 3.0044e-9 ++ ub1 = -3.4025e-18 ++ uc1 = -5.9821e-11 ++ kt1l = 0.0 ++ prt = 0.0 +* BSIM4 - High Speed RF Model Parameters ++ xrcrg1 = 12.0 ++ xrcrg2 = 1.0 ++ rbpb = 50.0 ++ rbpd = 50.0 ++ rbps = 50.0 ++ rbdb = 50.0 ++ rbsb = 50.0 ++ gbmin = 1.0e-12 +* BSIM4 - Flicker and Thermal Noise Parameters ++ noia = 2.6e+41 ++ noib = 0.0 ++ noic = 0.0 ++ em = 4.1000000e+7 ++ af = 1.0 ++ ef = 0.89 ++ kf = 0.0 ++ ntnoi = 1.0 +* BSIM4 - Layout Dependent Parasitic Model Parameters ++ dmcg = 0.0 ++ dmcgt = 0.0 ++ dmdg = 0.0 ++ xgw = 0.0 ++ xgl = 0.0 ++ ngcon = 1.0 +* Diode DC IV Parameters +* BSIM4 - Diode DC IV parameters ++ diomod = 1.0 ++ njs = 1.0773 ++ jss = 0.000375 ++ jsws = 5.84e-11 ++ xtis = 0.76 ++ bvs = 12.636 ++ xjbvs = 1.0 ++ ijthsrev = 0.1 ++ ijthsfwd = 0.1 +* Diode and FET Capacitance Parameters ++ tpb = 0.001344 ++ tpbsw = 0.00099005 ++ tpbswg = 0.0 ++ tcj = 0.00067434 ++ tcjsw = 0.0002493 ++ tcjswg = 0.0 ++ cgdo = '2.90e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgso = '2.90e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgbo = 0.0 ++ capmod = 2.0 ++ xpart = 0.0 ++ cgsl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgdl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cf = 0.0 ++ clc = 1.0e-7 ++ cle = 0.6 ++ dlc = '7.20e-07+sky130_fd_pr__nfet_20v0__dlc_diff' ++ dwc = '0.0+sky130_fd_pr__nfet_20v0__dwc_diff' ++ vfbcv = -1.0 ++ acde = 0.4176 ++ moin = 15.0 ++ noff = 4.0 ++ voffcv = -0.4104 ++ ngate = 1.0e+23 ++ lwc = 0.0 ++ llc = 0.0 ++ lwlc = 0.0 ++ wlc = 0.0 ++ wwc = 0.0 ++ wwlc = 0.0 +* BSIM4 - FET and Diode capacitance parameters ++ ckappas = 0.6 ++ cjs = '0.0008512*sky130_fd_pr__nfet_20v0__ajunction_mult' ++ mjs = 0.295 ++ pbs = 0.72468 ++ cjsws = '8.5204e-011*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjsws = 0.037586 ++ pbsws = 0.29067 ++ cjswgs = '5.4e-011*sky130_fd_pr__nfet_20v0__pgatejunction_mult*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjswgs = '0.78692*sky130_fd_pr__nfet_20v0__mjswgatejunction_mult' ++ pbswgs = '0.54958*sky130_fd_pr__nfet_20v0__pbswgatejunction_mult' +* Stress Parameters ++ saref = 1.81e-6 ++ sbref = 1.81e-6 ++ wlod = 0.0 ++ kvth0 = 1.1e-8 ++ lkvth0 = 0.0 ++ wkvth0 = 6.5e-7 ++ pkvth0 = 0.0 ++ llodvth = 0.0 ++ wlodvth = 1.0 ++ stk2 = 0.0 ++ lodk2 = 1.0 ++ lodeta0 = 1.0 ++ ku0 = -4.5e-8 ++ lku0 = 0.0 ++ wku0 = 2.0e-7 ++ pku0 = 0.0 ++ llodku0 = 0.0 ++ wlodku0 = 1.0 ++ kvsat = 0.3 ++ steta0 = 0.0 ++ tku0 = 0.0 +.ends sky130_fd_pr__nfet_20v0 +*.END
diff --git a/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice new file mode 100644 index 0000000..30f356c --- /dev/null +++ b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice
@@ -0,0 +1,44 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0__toxe_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__overlap_mult = 0.89805 ++ sky130_fd_pr__nfet_20v0__ajunction_mult = 9.9505e-1 ++ sky130_fd_pr__nfet_20v0__pjunction_mult = 1.0144 ++ sky130_fd_pr__nfet_20v0__lint_diff = 0.0 ++ sky130_fd_pr__nfet_20v0__wint_diff = 0.0 ++ sky130_fd_pr__nfet_20v0__dlc_diff = 0.0 ++ sky130_fd_pr__nfet_20v0__dwc_diff = 0.0 +* +* sky130_fd_pr__nfet_20v0, Bin 000, W = 30.0, L = 1.0 +* ----------------------------------- +.param ++ sky130_fd_pr__nfet_20v0__rdrift_mult = 9.6982e-1 ++ sky130_fd_pr__nfet_20v0__hvvsat_mult = 9.2197e-1 ++ sky130_fd_pr__nfet_20v0__vth0_diff = 3.4824e-2 ++ sky130_fd_pr__nfet_20v0__k2_diff = -2.7400e-2 +* +* sky130_fd_pr__nfet_20v0_iso, Bin 000, W = 30.0, L = 1.0 +* -------------------------------------- +.param ++ sky130_fd_pr__nfet_20v0_iso__rdrift_mult = 9.1661e-1 ++ sky130_fd_pr__nfet_20v0_iso__hvvsat_mult = 8.5177e-1 ++ sky130_fd_pr__nfet_20v0_iso__vth0_diff = -1.2392e-3 ++ sky130_fd_pr__nfet_20v0_iso__k2_diff = -1.9873e-2 +.include "sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice" +.include "../nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice" +.include "../nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__tt_discrete.corner.spice"
diff --git a/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__wafer_discrete.corner.spice b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__wafer_discrete.corner.spice new file mode 100644 index 0000000..e88fe77 --- /dev/null +++ b/cells/nfet_20v0/sky130_fd_pr__nfet_20v0__wafer_discrete.corner.spice
@@ -0,0 +1,38 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0__toxe_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__overlap_mult = 0.89805 ++ sky130_fd_pr__nfet_20v0__ajunction_mult = 9.9505e-1 ++ sky130_fd_pr__nfet_20v0__pjunction_mult = 1.0144 ++ sky130_fd_pr__nfet_20v0__lint_diff = 0.0 ++ sky130_fd_pr__nfet_20v0__wint_diff = 0.0 ++ sky130_fd_pr__nfet_20v0__dlc_diff = 0.0 ++ sky130_fd_pr__nfet_20v0__dwc_diff = 0.0 +.param ++ sky130_fd_pr__nfet_20v0__rdrift_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__hvvsat_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__vth0_diff = 0.0 ++ sky130_fd_pr__nfet_20v0__k2_diff = 0.0 +.param ++ sky130_fd_pr__nfet_20v0_iso__rdrift_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_iso__hvvsat_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_iso__vth0_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_iso__k2_diff = 0.0 +.include "sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice" +.include "../nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice" +.include "../nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__tt_discrete.corner.spice"
diff --git a/cells/nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice b/cells/nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice new file mode 100644 index 0000000..5312907 --- /dev/null +++ b/cells/nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice
@@ -0,0 +1,343 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.include "../../models/parasitics/sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain.model.spice" +.include "../nfet_20v0_reverse_iso/sky130_fd_pr__nfet_20v0_reverse_iso__subcircuit.pm3.spice" +.subckt sky130_fd_pr__nfet_20v0_iso d g s b sub w=60u l=2u m=1 t=30 ++ ad=0 as=0 pd=0 ps=0 nrd=2 nrs=2 mf=1 sa=0 sb=0 +.PARAM rdrift_tnom=1.648600e+004 vgdep_tnom=1.102900e-001 vth_tnom=7.000000e-001 vbdep_tnom=-5.260300e-001 ++ vth2=+1.048000e-001 hvvsat_tnom=1.878600 avsat_tnom=7.467500e-001 deltaw=9.000000e-001 hvnel_n20vhviso1=1.50 hvvbdep=-2.490600e-002 +.param ++ sky130_fd_pr__nfet_20v0__pgatejunction_mult = 1.7357 ++ sky130_fd_pr__nfet_20v0__mjswgatejunction_mult = 5.3981e-1 ++ sky130_fd_pr__nfet_20v0__pbswgatejunction_mult = 3.4999e+0 +.param ++ sky130_fd_pr__nfet_20v0__vgdep_mult=1 ++ n20vhv1res_vth0_diff=0.0 ++ sky130_fd_pr__nfet_20v0__vbdep_mult=1 ++ sky130_fd_pr__nfet_20v0__avsat_mult=1 +.param ++ w_n20vhv1 = 30.00 ++ nrd_n20vhv1 = 2.0 ++ nrs_n20vhv1 = 2.0 ++ ad_n20vhviso1 = 125.8 ++ as_n20vhv1 = 8.7 ++ pd_n20vhviso1 = 75.4 ++ ps_n20vhv1 = 60.58 ++ delvto_n20vhv1 = 0.0 +.param ++ ad_n20vhv1isopsub = 403.5 ++ pd_n20vhv1isopsub = 60.16 +.param tc1_rdrift=0.00621917042930238 +.param tc1_vgdep=0 +.param tc1_vth=0 +.param tc1_vbdep=0 +.param tc1_hvvsat=0.0061411164700097 +.param tc1_avsat=-0.000120490754051872 +.param tc2_rdrift=0.000021055807983754 +.param tc2_vgdep=0 +.param tc2_vth=0 +.param tc2_vbdep=0 +.param tc2_hvvsat=3.61396725197052E-05 +.param tc2_avsat=3.0122688512968E-06 +.param ++ rdrift='rdrift_tnom*((w_n20vhv1-deltaw)/w_n20vhv1)*(1+tc1_rdrift*(temper-30)+tc2_rdrift*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_iso__rdrift_mult' ++ vgdep='vgdep_tnom*(1+tc1_vgdep*(temper-30)+tc2_vgdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vgdep_mult' ++ vth='vth_tnom*(1+tc1_vth*(temper-30)+tc2_vth*(temper-30)*(temper-30))+n20vhv1res_vth0_diff' ++ vbdep='vbdep_tnom*(1+tc1_vbdep*(temper-30)+tc2_vbdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vbdep_mult' ++ hvvsat='hvvsat_tnom*(1+tc1_hvvsat*(temper-30)+tc2_hvvsat*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_iso__hvvsat_mult' ++ avsat='avsat_tnom*(1+tc1_avsat*(temper-30)+tc2_avsat*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__avsat_mult' +m1 d1 g s b sky130_fd_pr__nfet_20v0__base w=w_n20vhv1 l=hvnel_n20vhviso1 ad=0 as=0 pd=0 ps=0 nrd=nrd_n20vhv1 nrs=nrs_n20vhv1 delvto=delvto_n20vhv1 m=m +rldd d d1 r='abs((1/w_n20vhv1)*(rdrift/(1+vgdep*(v(g,s)-vth-vbdep*v(b,s))))*(1+pwr((abs(v(d,s)+vth2-min(v(d1,s),60))/(hvvsat*(1+hvvbdep*v(b,s)))),avsat)))' tc1 = 0 tc2 = 0 m = {m} +dNDrain1 b d sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNDrain2 b d1 sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNSrc b s sky130_fd_pr__diode_pw2nd_05v5 area=as_n20vhv1 pj='ps_n20vhv1-w_n20vhv1' m=m +dDrnPsub sub d sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain area='0.5*ad_n20vhv1isopsub' pj='0.5*pd_n20vhv1isopsub' m=m +.model sky130_fd_pr__nfet_20v0__base.0 nmos +* DC IV MOS Parameters ++ lmin = 4.95e-07 lmax = 3.05e-06 wmin = 1.9995e-05 wmax = 6.0005e-5 ++ level = 54.0 ++ tnom = 30.0 ++ version = 4.5 ++ toxm = 1.16e-8 ++ xj = 1.5e-7 ++ lln = 1.0 ++ lwn = 1.0 ++ wln = 1.0 ++ wwn = 1.0 ++ lint = '7.6507e-08 + sky130_fd_pr__nfet_20v0__lint_diff' ++ ll = 0.0 ++ lw = 0.0 ++ lwl = 0.0 ++ wint = '2.1346e-08 + sky130_fd_pr__nfet_20v0__wint_diff' ++ wl = 0.0 ++ ww = 0.0 ++ wwl = 0.0 ++ xl = 0.0 ++ xw = 0.0 ++ mobmod = 0.0 ++ binunit = 2.0 ++ dwg = -4.1292e-9 ++ dwb = -1.6944e-9 +* BSIM4 - Model Selectors ++ igcmod = 0.0 ++ igbmod = 0.0 ++ rgatemod = 0.0 ++ rbodymod = 1.0 ++ trnqsmod = 0.0 ++ acnqsmod = 0.0 ++ fnoimod = 1.0 ++ tnoimod = 1.0 ++ permod = 1.0 ++ geomod = 0.0 ++ rdsmod = 0.0 ++ tempmod = 0.0 ++ lintnoi = 0.0 ++ vfbsdoff = 0.0 ++ lambda = 0.0 ++ vtl = 0.0 ++ lc = 5.0e-9 ++ xn = 3.0 ++ rnoia = 0.794 ++ rnoib = 0.38 ++ tnoia = 7.5e+6 ++ tnoib = 7.2e+6 +* BSIM4 - Process Parameters ++ epsrox = 3.9 ++ toxe = '1.16e-08*sky130_fd_pr__nfet_20v0__toxe_mult' ++ dtox = 0.0 ++ ndep = 1.7e+17 ++ nsd = 1.0e+20 ++ rshg = 0.1 ++ rsh = '1.0*sky130_fd_pr__nfet_20v0__rshn_mult' +* Threshold Voltage Parameters ++ vth0 = '0.84689 + sky130_fd_pr__nfet_20v0_iso__vth0_diff' ++ k1 = 1.019 ++ k2 = '-0.055829 + sky130_fd_pr__nfet_20v0_iso__k2_diff' ++ k3 = -0.884 ++ dvt0 = 0.0 ++ dvt1 = 0.53 ++ dvt2 = -0.19251 ++ dvt0w = 0.16 ++ dvt1w = 6.9091e+6 ++ dvt2w = -0.036016 ++ w0 = 0.0 ++ k3b = 0.43 +* NEW BSIM4 Parameters for Level 54 ++ phin = 0.0 ++ lpe0 = 0.0 ++ lpeb = -2.182e-7 ++ vbm = -3.0 ++ dvtp0 = 0.0 ++ dvtp1 = 0.0 +* Mobility Parameters ++ vsat = 2.2883e+5 ++ ua = -1.131400e-10 ++ ub = 4.1888e-18 ++ uc = 7.0353e-11 ++ rdsw = 3856.7 ++ prwb = 0.36549 ++ prwg = 0.002801 ++ wr = 1.0 ++ u0 = 0.10816 ++ a0 = 0.96953 ++ keta = -0.18204 ++ a1 = 0.37848 ++ a2 = 0.54362 ++ ags = 0.60228 ++ b0 = 3.2933e-8 ++ b1 = 0.0 +* BSIM4 - Mobility Parameters ++ eu = 1.67 ++ rdswmin = 0.0 ++ rdw = 0.0 ++ rdwmin = 0.0 ++ rsw = 0.0 ++ rswmin = 0.0 +* Subthreshold Current Parameters ++ voff = -0.20613 ++ nfactor = 0.2786 ++ up = 0.0 ++ ud = 0.0 ++ lp = 1.0 ++ tvfbsdoff = 0.0 ++ tvoff = 0.0 ++ cit = -0.0008 ++ cdsc = 0.0 ++ cdscb = 0.0 ++ cdscd = 0.0 ++ eta0 = 0.038662 ++ etab = -0.028284 ++ dsub = 0.42 +* BSIM4 - Sub-threshold parameters ++ voffl = -4.2579486e-7 ++ minv = 0.0 +* Rout Parameters ++ pclm = 0.2 ++ pdiblc1 = 0.21098 ++ pdiblc2 = 0.0002 ++ pdiblcb = -0.26831 ++ drout = 0.36075 ++ pscbe1 = 4.0572e+9 ++ pscbe2 = 1.68e-6 ++ pvag = 1.99 ++ delta = 0.14671 ++ alpha0 = 1.6301e-8 ++ alpha1 = 0.0 ++ beta0 = 36.96 +* BSIM4 - Rout Parameters ++ fprout = 10.125 ++ pdits = 0.0 ++ pditsl = 0.0 ++ pditsd = 0.0 +* BSIM4 - Gate Induced Drain Leakage Model Parameters ++ agidl = 5.06e-16 ++ bgidl = 1.058e+9 ++ cgidl = 4000.0 ++ egidl = 0.8 +* BSIM4 - Gate Leakage Current Parameters ++ aigbacc = 1.0 ++ bigbacc = 0.0 ++ cigbacc = 0.0 ++ nigbacc = 1.0 ++ aigbinv = 0.35 ++ bigbinv = 0.03 ++ cigbinv = 0.006 ++ eigbinv = 1.1 ++ nigbinv = 3.0 ++ aigc = 0.43 ++ bigc = 0.054 ++ cigc = 0.075 ++ nigc = 1.0 ++ aigsd = 0.43 ++ bigsd = 0.054 ++ cigsd = 0.075 ++ dlcig = 0.0 ++ poxedge = 1.0 ++ pigcd = 1.0 ++ ntox = 1.0 ++ toxref = 1.16e-8 +* Temperature Effects Parameters ++ kt1 = -0.34636 ++ kt2 = -0.042078 ++ at = 69440.0 ++ ute = -0.67527 ++ ua1 = 3.0525e-9 ++ ub1 = -1.5515e-18 ++ uc1 = -5.9821e-11 ++ kt1l = 0.0 ++ prt = 0.0 +* BSIM4 - High Speed RF Model Parameters ++ xrcrg1 = 12.0 ++ xrcrg2 = 1.0 ++ rbpb = 50.0 ++ rbpd = 50.0 ++ rbps = 50.0 ++ rbdb = 50.0 ++ rbsb = 50.0 ++ gbmin = 1.0e-12 +* BSIM4 - Flicker and Thermal Noise Parameters ++ noia = 2.6e+41 ++ noib = 0.0 ++ noic = 0.0 ++ em = 4.1000000e+7 ++ af = 1.0 ++ ef = 0.89 ++ kf = 0.0 ++ ntnoi = 1.0 +* BSIM4 - Layout Dependent Parasitic Model Parameters ++ dmcg = 0.0 ++ dmcgt = 0.0 ++ dmdg = 0.0 ++ xgw = 0.0 ++ xgl = 0.0 ++ ngcon = 1.0 +* Diode DC IV Parameters +* BSIM4 - Diode DC IV parameters ++ diomod = 1.0 ++ njs = 1.0773 ++ jss = 0.000375 ++ jsws = 5.84e-11 ++ xtis = 0.76 ++ bvs = 12.636 ++ xjbvs = 1.0 ++ ijthsrev = 0.1 ++ ijthsfwd = 0.1 +* Diode and FET Capacitance Parameters ++ tpb = 0.001344 ++ tpbsw = 0.00099005 ++ tpbswg = 0.0 ++ tcj = 0.00067434 ++ tcjsw = 0.0002493 ++ tcjswg = -0.005 ++ cgdo = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgso = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgbo = 0.0 ++ capmod = 2.0 ++ xpart = 0.0 ++ cgsl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgdl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cf = 0.0 ++ clc = 1.0e-7 ++ cle = 0.6 ++ dlc = '6.5995e-08+sky130_fd_pr__nfet_20v0__dlc_diff' ++ dwc = '0.0+sky130_fd_pr__nfet_20v0__dwc_diff' ++ vfbcv = -1.0 ++ acde = 0.4176 ++ moin = 15.0 ++ noff = 4.0 ++ voffcv = -0.4104 ++ ngate = 1.0e+23 ++ lwc = 0.0 ++ llc = 0.0 ++ lwlc = 0.0 ++ wlc = 0.0 ++ wwc = 0.0 ++ wwlc = 0.0 +* BSIM4 - FET and Diode capacitance parameters ++ ckappas = 0.6 ++ cjs = '0.0008512*sky130_fd_pr__nfet_20v0__ajunction_mult' ++ mjs = 0.295 ++ pbs = 0.72468 ++ cjsws = '1.5204e-011*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjsws = 0.037586 ++ pbsws = 0.29067 ++ cjswgs = '5.4e-011*sky130_fd_pr__nfet_20v0__pgatejunction_mult*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjswgs = '0.78692*sky130_fd_pr__nfet_20v0__mjswgatejunction_mult' ++ pbswgs = '0.54958*sky130_fd_pr__nfet_20v0__pbswgatejunction_mult' +* Stress Parameters ++ saref = 1.81e-6 ++ sbref = 1.81e-6 ++ wlod = 0.0 ++ kvth0 = 1.1e-8 ++ lkvth0 = 0.0 ++ wkvth0 = 6.5e-7 ++ pkvth0 = 0.0 ++ llodvth = 0.0 ++ wlodvth = 1.0 ++ stk2 = 0.0 ++ lodk2 = 1.0 ++ lodeta0 = 1.0 ++ ku0 = -4.5e-8 ++ lku0 = 0.0 ++ wku0 = 2.0e-7 ++ pku0 = 0.0 ++ llodku0 = 0.0 ++ wlodku0 = 1.0 ++ kvsat = 0.3 ++ steta0 = 0.0 ++ tku0 = 0.0 +.ends sky130_fd_pr__nfet_20v0_iso +*.END
diff --git a/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt.bins.csv b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt.bins.csv new file mode 100644 index 0000000..fef526d --- /dev/null +++ b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt.bins.csv
@@ -0,0 +1,3 @@ +device,bin,W,L +model corner +,0,30.0,1.0
diff --git a/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice new file mode 100644 index 0000000..7079454 --- /dev/null +++ b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice
@@ -0,0 +1,25 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_nvt__rdrift_mult = 1.3479e+0 ++ sky130_fd_pr__nfet_20v0_nvt__hvvsat_mult = 7.9823e-1 ++ sky130_fd_pr__nfet_20v0_nvt__vth0_diff = 1.6910e-1 ++ sky130_fd_pr__nfet_20v0_nvt__k2_diff = -1.1937e-1 +.include "sky130_fd_pr__nfet_20v0_nvt__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__parasitic__diode_ps2dn.model.spice b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__parasitic__diode_ps2dn.model.spice new file mode 100644 index 0000000..57071d2 --- /dev/null +++ b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__parasitic__diode_ps2dn.model.spice
@@ -0,0 +1,62 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +*.param +.model sky130_fd_pr__nfet_20v0_nvt__parasitic__diode_ps2dn d ++ level = 3.0 ++ tlevc = 1.0 ++ scalm = 1.0e-6 ++ area = 1.0e+12 +* Junction Capacitance Parameters ++ cj = '1.6920e-004*sky130_fd_pr__nfet_20v0__cjdnwpsubjunction_mult*1e-12*sky130_fd_pr__model__parasitic__diode_ps2dn__ajunction_mult' $ Units: farad/meter^2 ++ mj = '0.56056*sky130_fd_pr__nfet_20v0__mjdnwpsubjunction_mult' ++ pb = '0.21294*sky130_fd_pr__nfet_20v0__pbdnwpsubjunction_mult' $ Units: volt ++ cjsw = '8.1380e-010*sky130_fd_pr__nfet_20v0__cjdnwpsubjunction_mult*1e-6*sky130_fd_pr__model__parasitic__diode_ps2dn__pjunction_mult' $ Units: farad/meter ++ mjsw = '0.18742*sky130_fd_pr__nfet_20v0__mjdnwpsubjunction_mult' ++ php = '0.21294*sky130_fd_pr__nfet_20v0__pbdnwpsubjunction_mult' $ Units: volt ++ cta = 0.0031223 $ Units: 1/coulomb ++ ctp = 0.0014703 $ Units: 1/coulomb ++ tpb = 0.0016859 $ Units: volt/coulomb ++ tphp = 0.0016859 $ Units: volt/coulomb +* Diode IV Parameters ++ js = 6.1049e-017 $ Units: amper/meter^2 ++ jsw = 8.1115e-016 $ Units: amper/meter ++ n = 1.0791 ++ rs = 900 $ Units: ohm (ohm/meter^2 if area defined) ++ ik = '2.08e-009/1e-12' $ Units: amper/meter^2 ++ ikr = '0/1e-12' $ Units: amper/meter^2 ++ vb = 'sky130_fd_pr__nfet_20v0__vb' $ Units: volt ++ ibv = 0.00106 $ Units: amper ++ trs = 0 $ Units: 1/coulomb ++ eg = 1.17 $ Units: electron-volt ++ xti = 1.0 ++ tref = 30 $ Units: coulomb +* Default Parameters ++ tcv = 0 $ Units: 1/coulomb ++ gap1 = 0.000473 $ Units: electron-volt/coulomb ++ gap2 = 1110.0 ++ ttt1 = 0 $ Units: 1/coulomb ++ ttt2 = 0 $ Units: 1/coulomb^2 ++ tm1 = 0 $ Units: 1/coulomb ++ tm2 = 0 $ Units: 1/coulomb^2 ++ lm = 0 $ Units: meter ++ lp = 0 $ Units: meter ++ wm = 0 $ Units: meter ++ wp = 0 $ Units: meter ++ xm = 0 $ Units: meter ++ xoi = 10000.0 ++ xom = 10000 $ Units: angstrom ++ xp = 0 $ Units: meter ++ xw = 0 $ Units: meter
diff --git a/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice new file mode 100644 index 0000000..3bc2b75 --- /dev/null +++ b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice
@@ -0,0 +1,25 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_nvt__rdrift_mult = 4.0584e-1 ++ sky130_fd_pr__nfet_20v0_nvt__hvvsat_mult = 3.4596e-1 ++ sky130_fd_pr__nfet_20v0_nvt__vth0_diff = -1.0255e-1 ++ sky130_fd_pr__nfet_20v0_nvt__k2_diff = -1.1937e-1 +.include "sky130_fd_pr__nfet_20v0_nvt__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__subcircuit.pm3.spice b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__subcircuit.pm3.spice new file mode 100644 index 0000000..86dd8af --- /dev/null +++ b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__subcircuit.pm3.spice
@@ -0,0 +1,346 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.include "sky130_fd_pr__nfet_20v0_nvt__parasitic__diode_ps2dn.model.spice" +.subckt sky130_fd_pr__nfet_20v0_nvt d g s b w=60u l=2u m=1 t=30 ++ ad=0 as=0 pd=0 ps=0 nrd=2 nrs=2 mf=1 sa=0 sb=0 +.PARAM rdrift_tnom=1.648600e+004 vgdep_tnom=1.102900e-001 vth_tnom=7.000000e-001 vbdep_tnom=-5.260300e-001 ++ vth2=+1.048000e-001 hvvsat_tnom=1.878600 avsat_tnom=7.467500e-001 deltaw=9.000000e-001 hvnel_n20vhviso1=1.50 hvvbdep=-2.490600e-002 +.param ++ sky130_fd_pr__nfet_20v0__pgatejunction_mult = 1.7357 ++ sky130_fd_pr__nfet_20v0__mjswgatejunction_mult = 5.3981e-1 ++ sky130_fd_pr__nfet_20v0__pbswgatejunction_mult = 3.4999e+0 +.param ++ sky130_fd_pr__nfet_20v0__vgdep_mult=1 ++ n20vhv1res_vth0_diff=0.0 ++ sky130_fd_pr__nfet_20v0__vbdep_mult=1 ++ sky130_fd_pr__nfet_20v0__avsat_mult=1 +.param ++ w_n20vhv1 = 30.00 ++ nrd_n20vhv1 = 2.0 ++ nrs_n20vhv1 = 2.0 ++ ad_n20vhviso1 = 125.8 ++ as_n20vhv1 = 8.7 ++ pd_n20vhviso1 = 75.4 ++ ps_n20vhv1 = 60.58 ++ delvto_n20vhv1 = 0.0 +.param ++ ad_n20vhv1isopsub = 403.5 ++ pd_n20vhv1isopsub = 60.16 +.param tc1_vgdep=0 +.param tc1_vth=0 +.param tc1_vbdep=0 +.param tc1_hvvsat_n20nativevhviso1=0.0061411164700097 +.param tc2_rdrift_n20nativevhviso1=0.000021055807983754 +.param tc2_vgdep=0 +.param tc2_vth=0 +.param tc2_vbdep=0 +.param tc2_hvvsat_n20nativevhviso1=3.61396725197052E-05 +.param tc2_avsat_n20nativevhviso1=3.0122688512968E-06 +*.param tc1_rdrift_n20nativevhviso1=1.2314e-02 +*.param tc1_hvvsat_n20nativevhviso1=-2.5733e-02 +.param tc1_rdrift_n20nativevhviso1=7.6637e-03 +.param tc1_avsat_n20nativevhviso1=-7.4563e-04 +.param ++ rdrift='rdrift_tnom*((w_n20vhv1-deltaw)/w_n20vhv1)*(1+tc1_rdrift_n20nativevhviso1*(temper-30)+tc2_rdrift_n20nativevhviso1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_nvt__rdrift_mult' ++ vgdep='vgdep_tnom*(1+tc1_vgdep*(temper-30)+tc2_vgdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vgdep_mult' ++ vth='vth_tnom*(1+tc1_vth*(temper-30)+tc2_vth*(temper-30)*(temper-30))+n20vhv1res_vth0_diff' ++ vbdep='vbdep_tnom*(1+tc1_vbdep*(temper-30)+tc2_vbdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vbdep_mult' ++ hvvsat='hvvsat_tnom*(1+tc1_hvvsat_n20nativevhviso1*(temper-30)+tc2_hvvsat_n20nativevhviso1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_nvt__hvvsat_mult' ++ avsat='avsat_tnom*(1+tc1_avsat_n20nativevhviso1*(temper-30)+tc2_avsat_n20nativevhviso1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__avsat_mult' +m1 d1 g s b sky130_fd_pr__nfet_20v0__base w=w_n20vhv1 l=hvnel_n20vhviso1 ad=0 as=0 pd=0 ps=0 nrd=nrd_n20vhv1 nrs=nrs_n20vhv1 delvto=delvto_n20vhv1 m=m +rldd d d1 r='abs((1/w_n20vhv1)*(rdrift/(1+vgdep*(v(g,s)-vth-vbdep*v(b,s))))*(1+pwr((abs(v(d,s)+vth2-min(v(d1,s),60))/(hvvsat*(1+hvvbdep*v(b,s)))),avsat)))' tc1 = 0 tc2 = 0 m = {m} +dNDrain1 b d sky130_fd_pr__nfet_20v0_nvt__parasitic__diode_ps2dn area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNDrain2 b d1 sky130_fd_pr__nfet_20v0_nvt__parasitic__diode_ps2dn area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNSrc b s sky130_fd_pr__diode_pw2nd_05v5 area=as_n20vhv1 pj='ps_n20vhv1-w_n20vhv1' m=m +.model sky130_fd_pr__nfet_20v0__base.0 nmos +* DC IV MOS Parameters ++ lmin = 4.95e-07 lmax = 3.05e-06 wmin = 1.9995e-05 wmax = 6.0005e-5 ++ level = 54.0 ++ tnom = 30.0 ++ version = 4.5 ++ toxm = 1.16e-8 ++ xj = 1.5e-7 ++ lln = 1.0 ++ lwn = 1.0 ++ wln = 1.0 ++ wwn = 1.0 ++ lint = '7.6507e-08 + sky130_fd_pr__nfet_20v0__lint_diff' ++ ll = 0.0 ++ lw = 0.0 ++ lwl = 0.0 ++ wint = '2.1346e-08 + sky130_fd_pr__nfet_20v0__wint_diff' ++ wl = 0.0 ++ ww = 0.0 ++ wwl = 0.0 ++ xl = 0.0 ++ xw = 0.0 ++ mobmod = 0.0 ++ binunit = 2.0 ++ dwg = -4.1292e-9 ++ dwb = -1.6944e-9 +* BSIM4 - Model Selectors ++ igcmod = 0.0 ++ igbmod = 0.0 ++ rgatemod = 0.0 ++ rbodymod = 1.0 ++ trnqsmod = 0.0 ++ acnqsmod = 0.0 ++ fnoimod = 1.0 ++ tnoimod = 1.0 ++ permod = 1.0 ++ geomod = 0.0 ++ rdsmod = 0.0 ++ tempmod = 0.0 ++ lintnoi = 0.0 ++ vfbsdoff = 0.0 ++ lambda = 0.0 ++ vtl = 0.0 ++ lc = 5.0e-9 ++ xn = 3.0 ++ rnoia = 0.794 ++ rnoib = 0.38 ++ tnoia = 7.5e+6 ++ tnoib = 7.2e+6 +* BSIM4 - Process Parameters ++ epsrox = 3.9 ++ toxe = '1.16e-08*sky130_fd_pr__nfet_20v0__toxe_mult' ++ dtox = 0.0 ++ ndep = 1.7e+17 ++ nsd = 1.0e+20 ++ rshg = 0.1 ++ rsh = '1.0*sky130_fd_pr__nfet_20v0__rshn_mult' +* Threshold Voltage Parameters ++ vth0 = '0.84689 + sky130_fd_pr__nfet_20v0_nvt__vth0_diff - 0.600' ++ k1 = 1.019 ++ k2 = '-0.055829 + sky130_fd_pr__nfet_20v0_nvt__k2_diff' ++ k3 = -0.884 ++ dvt0 = 0.0 ++ dvt1 = 0.53 ++ dvt2 = -0.19251 ++ dvt0w = 0.16 ++ dvt1w = 6.9091e+6 ++ dvt2w = -0.036016 ++ w0 = 0.0 ++ k3b = 0.43 +* NEW BSIM4 Parameters for Level 54 ++ phin = 0.0 ++ lpe0 = 0.0 ++ lpeb = -2.182e-7 ++ vbm = -3.0 ++ dvtp0 = 0.0 ++ dvtp1 = 0.0 +* Mobility Parameters ++ vsat = 2.2883e+5 ++ ua = -1.131400e-10 ++ ub = 4.1888e-18 ++ uc = 7.0353e-11 ++ rdsw = 4720.6 ++ prwb = 0.36549 ++ prwg = 0.002801 ++ wr = 1.0 ++ u0 = 0.10816 ++ a0 = 0.96953 ++ keta = -0.18204 ++ a1 = 0.37848 ++ a2 = 0.54362 ++ ags = 0.60228 ++ b0 = 3.2933e-8 ++ b1 = 0.0 +* BSIM4 - Mobility Parameters ++ eu = 1.67 ++ rdswmin = 0.0 ++ rdw = 0.0 ++ rdwmin = 0.0 ++ rsw = 0.0 ++ rswmin = 0.0 +* Subthreshold Current Parameters ++ voff = -0.20613 ++ nfactor = 0.2786 ++ up = 0.0 ++ ud = 0.0 ++ lp = 1.0 ++ tvfbsdoff = 0.0 ++ tvoff = 0.0 ++ cit = -0.0008 ++ cdsc = 0.0 ++ cdscb = 0.0 ++ cdscd = 0.0 ++ eta0 = 0.038662 ++ etab = -0.028284 ++ dsub = 0.42 +* BSIM4 - Sub-threshold parameters ++ voffl = -4.2579486e-7 ++ minv = 0.0 +* Rout Parameters ++ pclm = 0.2 ++ pdiblc1 = 0.21098 ++ pdiblc2 = 0.0002 ++ pdiblcb = -0.26831 ++ drout = 0.36075 ++ pscbe1 = 4.0572e+9 ++ pscbe2 = 1.68e-6 ++ pvag = 1.99 ++ delta = 0.14671 ++ alpha0 = 1.6301e-8 ++ alpha1 = 0.0 ++ beta0 = 36.96 +* BSIM4 - Rout Parameters ++ fprout = 10.125 ++ pdits = 0.0 ++ pditsl = 0.0 ++ pditsd = 0.0 +* BSIM4 - Gate Induced Drain Leakage Model Parameters ++ agidl = 5.06e-16 ++ bgidl = 1.058e+9 ++ cgidl = 4000.0 ++ egidl = 0.8 +* BSIM4 - Gate Leakage Current Parameters ++ aigbacc = 1.0 ++ bigbacc = 0.0 ++ cigbacc = 0.0 ++ nigbacc = 1.0 ++ aigbinv = 0.35 ++ bigbinv = 0.03 ++ cigbinv = 0.006 ++ eigbinv = 1.1 ++ nigbinv = 3.0 ++ aigc = 0.43 ++ bigc = 0.054 ++ cigc = 0.075 ++ nigc = 1.0 ++ aigsd = 0.43 ++ bigsd = 0.054 ++ cigsd = 0.075 ++ dlcig = 0.0 ++ poxedge = 1.0 ++ pigcd = 1.0 ++ ntox = 1.0 ++ toxref = 1.16e-8 +* Temperature Effects Parameters ++ kt1 = -0.34636 ++ kt2 = -0.042078 ++ at = 69440.0 ++ ute = -0.67527 ++ ua1 = 3.0525e-9 ++ ub1 = -1.5515e-18 ++ uc1 = -5.9821e-11 ++ kt1l = 0.0 ++ prt = 0.0 +* BSIM4 - High Speed RF Model Parameters ++ xrcrg1 = 12.0 ++ xrcrg2 = 1.0 ++ rbpb = 50.0 ++ rbpd = 50.0 ++ rbps = 50.0 ++ rbdb = 50.0 ++ rbsb = 50.0 ++ gbmin = 1.0e-12 +* BSIM4 - Flicker and Thermal Noise Parameters ++ noia = 2.6e+41 ++ noib = 0.0 ++ noic = 0.0 ++ em = 4.1000000e+7 ++ af = 1.0 ++ ef = 0.89 ++ kf = 0.0 ++ ntnoi = 1.0 +* BSIM4 - Layout Dependent Parasitic Model Parameters ++ dmcg = 0.0 ++ dmcgt = 0.0 ++ dmdg = 0.0 ++ xgw = 0.0 ++ xgl = 0.0 ++ ngcon = 1.0 +* Diode DC IV Parameters +* BSIM4 - Diode DC IV parameters ++ diomod = 1.0 ++ njs = 1.0773 ++ jss = 0.000375 ++ jsws = 5.84e-11 ++ xtis = 0.76 ++ bvs = 12.636 ++ xjbvs = 1.0 ++ ijthsrev = 0.1 ++ ijthsfwd = 0.1 +* Diode and FET Capacitance Parameters ++ tpb = 0.001344 ++ tpbsw = 0.00099005 ++ tpbswg = 0.0 ++ tcj = 0.00067434 ++ tcjsw = 0.0002493 ++ tcjswg = -0.005 ++ cgdo = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgso = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgbo = 0.0 ++ capmod = 2.0 ++ xpart = 0.0 ++ cgsl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgdl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cf = 0.0 ++ clc = 1.0e-7 ++ cle = 0.6 ++ dlc = '6.5995e-08+sky130_fd_pr__nfet_20v0__dlc_diff' ++ dwc = '0.0+sky130_fd_pr__nfet_20v0__dwc_diff' ++ vfbcv = -1.0 ++ acde = 0.4176 ++ moin = 15.0 ++ noff = 4.0 ++ voffcv = -0.4104 ++ ngate = 1.0e+23 ++ lwc = 0.0 ++ llc = 0.0 ++ lwlc = 0.0 ++ wlc = 0.0 ++ wwc = 0.0 ++ wwlc = 0.0 +* BSIM4 - FET and Diode capacitance parameters ++ ckappas = 0.6 ++ cjs = '0.0008512*sky130_fd_pr__nfet_20v0__ajunction_mult' ++ mjs = 0.295 ++ pbs = 0.72468 ++ cjsws = '1.5204e-011*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjsws = 0.037586 ++ pbsws = 0.29067 ++ cjswgs = '5.4e-011*sky130_fd_pr__nfet_20v0__pgatejunction_mult*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjswgs = '0.78692*sky130_fd_pr__nfet_20v0__mjswgatejunction_mult' ++ pbswgs = '0.54958*sky130_fd_pr__nfet_20v0__pbswgatejunction_mult' ++ cjd = 0.0 ++ cjswgd = 0.0 ++ cjswd = 0.0 +* Stress Parameters ++ saref = 1.81e-6 ++ sbref = 1.81e-6 ++ wlod = 0.0 ++ kvth0 = 1.1e-8 ++ lkvth0 = 0.0 ++ wkvth0 = 6.5e-7 ++ pkvth0 = 0.0 ++ llodvth = 0.0 ++ wlodvth = 1.0 ++ stk2 = 0.0 ++ lodk2 = 1.0 ++ lodeta0 = 1.0 ++ ku0 = -4.5e-8 ++ lku0 = 0.0 ++ wku0 = 2.0e-7 ++ pku0 = 0.0 ++ llodku0 = 0.0 ++ wlodku0 = 1.0 ++ kvsat = 0.3 ++ steta0 = 0.0 ++ tku0 = 0.0 +.ends sky130_fd_pr__nfet_20v0_nvt +*.END
diff --git a/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice new file mode 100644 index 0000000..7665aeb --- /dev/null +++ b/cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice
@@ -0,0 +1,25 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_nvt__rdrift_mult = 7.2610e-1 ++ sky130_fd_pr__nfet_20v0_nvt__hvvsat_mult = 5.4501e-1 ++ sky130_fd_pr__nfet_20v0_nvt__vth0_diff = 3.0654e-2 ++ sky130_fd_pr__nfet_20v0_nvt__k2_diff = -1.2365e-1 +.include "sky130_fd_pr__nfet_20v0_nvt__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso.bins.csv b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso.bins.csv new file mode 100644 index 0000000..fef526d --- /dev/null +++ b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso.bins.csv
@@ -0,0 +1,3 @@ +device,bin,W,L +model corner +,0,30.0,1.0
diff --git a/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__fs_discrete.corner.spice b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__fs_discrete.corner.spice new file mode 100644 index 0000000..aee1095 --- /dev/null +++ b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__fs_discrete.corner.spice
@@ -0,0 +1,25 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_nvt_iso__rdrift_mult = 1.8311e+0 ++ sky130_fd_pr__nfet_20v0_nvt_iso__hvvsat_mult = 1.2679e+0 ++ sky130_fd_pr__nfet_20v0_nvt_iso__vth0_diff = 1.4649e-1 ++ sky130_fd_pr__nfet_20v0_nvt_iso__k2_diff = -1.1937e-1 +.include "sky130_fd_pr__nfet_20v0_nvt_iso__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__sf_discrete.corner.spice b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__sf_discrete.corner.spice new file mode 100644 index 0000000..86b73ab --- /dev/null +++ b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__sf_discrete.corner.spice
@@ -0,0 +1,25 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_nvt_iso__rdrift_mult = 4.7509e-1 ++ sky130_fd_pr__nfet_20v0_nvt_iso__hvvsat_mult = 6.0771e-1 ++ sky130_fd_pr__nfet_20v0_nvt_iso__vth0_diff = -1.3114e-1 ++ sky130_fd_pr__nfet_20v0_nvt_iso__k2_diff = -1.1937e-1 +.include "sky130_fd_pr__nfet_20v0_nvt_iso__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__subcircuit.pm3.spice b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__subcircuit.pm3.spice new file mode 100644 index 0000000..c920202 --- /dev/null +++ b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__subcircuit.pm3.spice
@@ -0,0 +1,343 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.subckt sky130_fd_pr__nfet_20v0_nvt_iso d g s b sub w=60u l=2u m=1 t=30 ++ ad=0 as=0 pd=0 ps=0 nrd=2 nrs=2 mf=1 sa=0 sb=0 +.PARAM rdrift_tnom=1.648600e+004 vgdep_tnom=1.102900e-001 vth_tnom=7.000000e-001 vbdep_tnom=-5.260300e-001 ++ vth2=+1.048000e-001 hvvsat_tnom=1.878600 avsat_tnom=7.467500e-001 deltaw=9.000000e-001 hvnel_n20vhviso1=1.50 hvvbdep=-2.490600e-002 +.param ++ sky130_fd_pr__nfet_20v0__pgatejunction_mult = 1.7357 ++ sky130_fd_pr__nfet_20v0__mjswgatejunction_mult = 5.3981e-1 ++ sky130_fd_pr__nfet_20v0__pbswgatejunction_mult = 3.4999e+0 +.param ++ sky130_fd_pr__nfet_20v0__vgdep_mult=1 ++ n20vhv1res_vth0_diff=0.0 ++ sky130_fd_pr__nfet_20v0__vbdep_mult=1 ++ sky130_fd_pr__nfet_20v0__avsat_mult=1 +.param ++ w_n20vhv1 = 30.00 ++ nrd_n20vhv1 = 2.0 ++ nrs_n20vhv1 = 2.0 ++ ad_n20vhviso1 = 125.8 ++ as_n20vhv1 = 8.7 ++ pd_n20vhviso1 = 75.4 ++ ps_n20vhv1 = 60.58 ++ delvto_n20vhv1 = 0.0 +.param ++ ad_n20vhv1isopsub = 403.5 ++ pd_n20vhv1isopsub = 60.16 +.param tc1_vgdep=0 +.param tc1_vth=0 +.param tc1_vbdep=0 +.param tc1_hvvsat_n20nativevhviso1=0.0061411164700097 +.param tc2_rdrift_n20nativevhviso1=0.000021055807983754 +.param tc2_vgdep=0 +.param tc2_vth=0 +.param tc2_vbdep=0 +.param tc2_hvvsat_n20nativevhviso1=3.61396725197052E-05 +.param tc2_avsat_n20nativevhviso1=3.0122688512968E-06 +*.param tc1_rdrift_n20nativevhviso1=1.2314e-02 +*.param tc1_hvvsat_n20nativevhviso1=-2.5733e-02 +.param tc1_rdrift_n20nativevhviso1=7.6637e-03 +.param tc1_avsat_n20nativevhviso1=-7.4563e-04 +.param ++ rdrift='rdrift_tnom*((w_n20vhv1-deltaw)/w_n20vhv1)*(1+tc1_rdrift_n20nativevhviso1*(temper-30)+tc2_rdrift_n20nativevhviso1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_nvt_iso__rdrift_mult' ++ vgdep='vgdep_tnom*(1+tc1_vgdep*(temper-30)+tc2_vgdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vgdep_mult' ++ vth='vth_tnom*(1+tc1_vth*(temper-30)+tc2_vth*(temper-30)*(temper-30))+n20vhv1res_vth0_diff' ++ vbdep='vbdep_tnom*(1+tc1_vbdep*(temper-30)+tc2_vbdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vbdep_mult' ++ hvvsat='hvvsat_tnom*(1+tc1_hvvsat_n20nativevhviso1*(temper-30)+tc2_hvvsat_n20nativevhviso1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_nvt_iso__hvvsat_mult' ++ avsat='avsat_tnom*(1+tc1_avsat_n20nativevhviso1*(temper-30)+tc2_avsat_n20nativevhviso1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__avsat_mult' +m1 d1 g s b sky130_fd_pr__nfet_20v0__base w=w_n20vhv1 l=hvnel_n20vhviso1 ad=0 as=0 pd=0 ps=0 nrd=nrd_n20vhv1 nrs=nrs_n20vhv1 delvto=delvto_n20vhv1 m=m +rldd d d1 r='abs((1/w_n20vhv1)*(rdrift/(1+vgdep*(v(g,s)-vth-vbdep*v(b,s))))*(1+pwr((abs(v(d,s)+vth2-min(v(d1,s),60))/(hvvsat*(1+hvvbdep*v(b,s)))),avsat)))' tc1 = 0 tc2 = 0 m = {m} +dNDrain1 b d sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNDrain2 b d1 sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNSrc b s sky130_fd_pr__diode_pw2nd_05v5 area=as_n20vhv1 pj='ps_n20vhv1-w_n20vhv1' m=m +dDrnPsub sub d sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain area='0.5*ad_n20vhv1isopsub' pj='0.5*pd_n20vhv1isopsub' m=m +.model sky130_fd_pr__nfet_20v0__base.0 nmos +* DC IV MOS Parameters ++ lmin = 4.95e-07 lmax = 3.05e-06 wmin = 1.9995e-05 wmax = 6.0005e-5 ++ level = 54.0 ++ tnom = 30.0 ++ version = 4.5 ++ toxm = 1.16e-8 ++ xj = 1.5e-7 ++ lln = 1.0 ++ lwn = 1.0 ++ wln = 1.0 ++ wwn = 1.0 ++ lint = '7.6507e-08 + sky130_fd_pr__nfet_20v0__lint_diff' ++ ll = 0.0 ++ lw = 0.0 ++ lwl = 0.0 ++ wint = '2.1346e-08 + sky130_fd_pr__nfet_20v0__wint_diff' ++ wl = 0.0 ++ ww = 0.0 ++ wwl = 0.0 ++ xl = 0.0 ++ xw = 0.0 ++ mobmod = 0.0 ++ binunit = 2.0 ++ dwg = -4.1292e-9 ++ dwb = -1.6944e-9 +* BSIM4 - Model Selectors ++ igcmod = 0.0 ++ igbmod = 0.0 ++ rgatemod = 0.0 ++ rbodymod = 1.0 ++ trnqsmod = 0.0 ++ acnqsmod = 0.0 ++ fnoimod = 1.0 ++ tnoimod = 1.0 ++ permod = 1.0 ++ geomod = 0.0 ++ rdsmod = 0.0 ++ tempmod = 0.0 ++ lintnoi = 0.0 ++ vfbsdoff = 0.0 ++ lambda = 0.0 ++ vtl = 0.0 ++ lc = 5.0e-9 ++ xn = 3.0 ++ rnoia = 0.794 ++ rnoib = 0.38 ++ tnoia = 7.5e+6 ++ tnoib = 7.2e+6 +* BSIM4 - Process Parameters ++ epsrox = 3.9 ++ toxe = '1.16e-08*sky130_fd_pr__nfet_20v0__toxe_mult' ++ dtox = 0.0 ++ ndep = 1.7e+17 ++ nsd = 1.0e+20 ++ rshg = 0.1 ++ rsh = '1.0*sky130_fd_pr__nfet_20v0__rshn_mult' +* Threshold Voltage Parameters ++ vth0 = '0.84689 + sky130_fd_pr__nfet_20v0_nvt_iso__vth0_diff - 0.600' ++ k1 = 1.019 ++ k2 = '-0.055829 + sky130_fd_pr__nfet_20v0_nvt_iso__k2_diff' ++ k3 = -0.884 ++ dvt0 = 0.0 ++ dvt1 = 0.53 ++ dvt2 = -0.19251 ++ dvt0w = 0.16 ++ dvt1w = 6.9091e+6 ++ dvt2w = -0.036016 ++ w0 = 0.0 ++ k3b = 0.43 +* NEW BSIM4 Parameters for Level 54 ++ phin = 0.0 ++ lpe0 = 0.0 ++ lpeb = -2.182e-7 ++ vbm = -3.0 ++ dvtp0 = 0.0 ++ dvtp1 = 0.0 +* Mobility Parameters ++ vsat = 2.2883e+5 ++ ua = -1.131400e-10 ++ ub = 4.1888e-18 ++ uc = 7.0353e-11 ++ rdsw = 3856.7 ++ prwb = 0.36549 ++ prwg = 0.002801 ++ wr = 1.0 ++ u0 = 0.10816 ++ a0 = 0.96953 ++ keta = -0.18204 ++ a1 = 0.37848 ++ a2 = 0.54362 ++ ags = 0.60228 ++ b0 = 3.2933e-8 ++ b1 = 0.0 +* BSIM4 - Mobility Parameters ++ eu = 1.67 ++ rdswmin = 0.0 ++ rdw = 0.0 ++ rdwmin = 0.0 ++ rsw = 0.0 ++ rswmin = 0.0 +* Subthreshold Current Parameters ++ voff = -0.20613 ++ nfactor = 0.2786 ++ up = 0.0 ++ ud = 0.0 ++ lp = 1.0 ++ tvfbsdoff = 0.0 ++ tvoff = 0.0 ++ cit = -0.0008 ++ cdsc = 0.0 ++ cdscb = 0.0 ++ cdscd = 0.0 ++ eta0 = 0.038662 ++ etab = -0.028284 ++ dsub = 0.42 +* BSIM4 - Sub-threshold parameters ++ voffl = -4.2579486e-7 ++ minv = 0.0 +* Rout Parameters ++ pclm = 0.2 ++ pdiblc1 = 0.21098 ++ pdiblc2 = 0.0002 ++ pdiblcb = -0.26831 ++ drout = 0.36075 ++ pscbe1 = 4.0572e+9 ++ pscbe2 = 1.68e-6 ++ pvag = 1.99 ++ delta = 0.14671 ++ alpha0 = 1.6301e-8 ++ alpha1 = 0.0 ++ beta0 = 36.96 +* BSIM4 - Rout Parameters ++ fprout = 10.125 ++ pdits = 0.0 ++ pditsl = 0.0 ++ pditsd = 0.0 +* BSIM4 - Gate Induced Drain Leakage Model Parameters ++ agidl = 5.06e-16 ++ bgidl = 1.058e+9 ++ cgidl = 4000.0 ++ egidl = 0.8 +* BSIM4 - Gate Leakage Current Parameters ++ aigbacc = 1.0 ++ bigbacc = 0.0 ++ cigbacc = 0.0 ++ nigbacc = 1.0 ++ aigbinv = 0.35 ++ bigbinv = 0.03 ++ cigbinv = 0.006 ++ eigbinv = 1.1 ++ nigbinv = 3.0 ++ aigc = 0.43 ++ bigc = 0.054 ++ cigc = 0.075 ++ nigc = 1.0 ++ aigsd = 0.43 ++ bigsd = 0.054 ++ cigsd = 0.075 ++ dlcig = 0.0 ++ poxedge = 1.0 ++ pigcd = 1.0 ++ ntox = 1.0 ++ toxref = 1.16e-8 +* Temperature Effects Parameters ++ kt1 = -0.34636 ++ kt2 = -0.042078 ++ at = 69440.0 ++ ute = -0.67527 ++ ua1 = 3.0525e-9 ++ ub1 = -1.5515e-18 ++ uc1 = -5.9821e-11 ++ kt1l = 0.0 ++ prt = 0.0 +* BSIM4 - High Speed RF Model Parameters ++ xrcrg1 = 12.0 ++ xrcrg2 = 1.0 ++ rbpb = 50.0 ++ rbpd = 50.0 ++ rbps = 50.0 ++ rbdb = 50.0 ++ rbsb = 50.0 ++ gbmin = 1.0e-12 +* BSIM4 - Flicker and Thermal Noise Parameters ++ noia = 2.6e+41 ++ noib = 0.0 ++ noic = 0.0 ++ em = 4.1000000e+7 ++ af = 1.0 ++ ef = 0.89 ++ kf = 0.0 ++ ntnoi = 1.0 +* BSIM4 - Layout Dependent Parasitic Model Parameters ++ dmcg = 0.0 ++ dmcgt = 0.0 ++ dmdg = 0.0 ++ xgw = 0.0 ++ xgl = 0.0 ++ ngcon = 1.0 +* Diode DC IV Parameters +* BSIM4 - Diode DC IV parameters ++ diomod = 1.0 ++ njs = 1.0773 ++ jss = 0.000375 ++ jsws = 5.84e-11 ++ xtis = 0.76 ++ bvs = 12.636 ++ xjbvs = 1.0 ++ ijthsrev = 0.1 ++ ijthsfwd = 0.1 +* Diode and FET Capacitance Parameters ++ tpb = 0.001344 ++ tpbsw = 0.00099005 ++ tpbswg = 0.0 ++ tcj = 0.00067434 ++ tcjsw = 0.0002493 ++ tcjswg = -0.005 ++ cgdo = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgso = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgbo = 0.0 ++ capmod = 2.0 ++ xpart = 0.0 ++ cgsl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgdl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cf = 0.0 ++ clc = 1.0e-7 ++ cle = 0.6 ++ dlc = '6.5995e-08+sky130_fd_pr__nfet_20v0__dlc_diff' ++ dwc = '0.0+sky130_fd_pr__nfet_20v0__dwc_diff' ++ vfbcv = -1.0 ++ acde = 0.4176 ++ moin = 15.0 ++ noff = 4.0 ++ voffcv = -0.4104 ++ ngate = 1.0e+23 ++ lwc = 0.0 ++ llc = 0.0 ++ lwlc = 0.0 ++ wlc = 0.0 ++ wwc = 0.0 ++ wwlc = 0.0 +* BSIM4 - FET and Diode capacitance parameters ++ ckappas = 0.6 ++ cjs = '0.0008512*sky130_fd_pr__nfet_20v0__ajunction_mult' ++ mjs = 0.295 ++ pbs = 0.72468 ++ cjsws = '1.5204e-011*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjsws = 0.037586 ++ pbsws = 0.29067 ++ cjswgs = '5.4e-011*sky130_fd_pr__nfet_20v0__pgatejunction_mult*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjswgs = '0.78692*sky130_fd_pr__nfet_20v0__mjswgatejunction_mult' ++ pbswgs = '0.54958*sky130_fd_pr__nfet_20v0__pbswgatejunction_mult' +* Stress Parameters ++ saref = 1.81e-6 ++ sbref = 1.81e-6 ++ wlod = 0.0 ++ kvth0 = 1.1e-8 ++ lkvth0 = 0.0 ++ wkvth0 = 6.5e-7 ++ pkvth0 = 0.0 ++ llodvth = 0.0 ++ wlodvth = 1.0 ++ stk2 = 0.0 ++ lodk2 = 1.0 ++ lodeta0 = 1.0 ++ ku0 = -4.5e-8 ++ lku0 = 0.0 ++ wku0 = 2.0e-7 ++ pku0 = 0.0 ++ llodku0 = 0.0 ++ wlodku0 = 1.0 ++ kvsat = 0.3 ++ steta0 = 0.0 ++ tku0 = 0.0 +.ends sky130_fd_pr__nfet_20v0_nvt_iso +*.END
diff --git a/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__tt_discrete.corner.spice b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__tt_discrete.corner.spice new file mode 100644 index 0000000..7d77bba --- /dev/null +++ b/cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__tt_discrete.corner.spice
@@ -0,0 +1,25 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_nvt_iso__rdrift_mult = 8.2077e-1 ++ sky130_fd_pr__nfet_20v0_nvt_iso__hvvsat_mult = 8.1957e-1 ++ sky130_fd_pr__nfet_20v0_nvt_iso__vth0_diff = 4.4698e-3 ++ sky130_fd_pr__nfet_20v0_nvt_iso__k2_diff = -1.1937e-1 +.include "sky130_fd_pr__nfet_20v0_nvt_iso__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_reverse_iso/sky130_fd_pr__nfet_20v0_reverse_iso__subcircuit.pm3.spice b/cells/nfet_20v0_reverse_iso/sky130_fd_pr__nfet_20v0_reverse_iso__subcircuit.pm3.spice new file mode 100644 index 0000000..53b539e --- /dev/null +++ b/cells/nfet_20v0_reverse_iso/sky130_fd_pr__nfet_20v0_reverse_iso__subcircuit.pm3.spice
@@ -0,0 +1,342 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +*.include "sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain.mod" +.subckt sky130_fd_pr__nfet_20v0_reverse_iso d g s b sub w=60u l=2u m=1 t=30 ++ ad=0 as=0 pd=0 ps=0 nrd=2 nrs=2 mf=1 sa=0 sb=0 +.PARAM rdrift_tnom=6314.8 vgdep_tnom=0.029842 vth_tnom=7.000000e-001 vbdep_tnom=0.38232 + + vth2= 0.00 hvvsat_tnom=0.10534 avsat_tnom=0.35104 deltaw=9.000000e-001 hvnel_n20vhviso1=1.50 hvvbdep=-0.0045798 +.param ++ sky130_fd_pr__nfet_20v0__pgatejunction_mult = 1.7357 ++ sky130_fd_pr__nfet_20v0__mjswgatejunction_mult = 5.3981e-1 ++ sky130_fd_pr__nfet_20v0__pbswgatejunction_mult = 3.4999e+0 +.param ++ sky130_fd_pr__nfet_20v0__vgdep_mult=1 ++ n20vhv1res_vth0_diff=0.0 ++ sky130_fd_pr__nfet_20v0__vbdep_mult=1 ++ sky130_fd_pr__nfet_20v0__avsat_mult=1 +.param ++ w_n20vhv1 = 30.00 ++ nrd_n20vhv1 = 2.0 ++ nrs_n20vhv1 = 2.0 ++ ad_n20vhviso1 = 125.8 ++ as_n20vhv1 = 8.7 ++ pd_n20vhviso1 = 75.4 ++ ps_n20vhv1 = 60.58 ++ delvto_n20vhv1 = 0.0 +.param ++ ad_n20vhv1isopsub = 403.5 ++ pd_n20vhv1isopsub = 60.16 +.param tc1_rdrift=0.0043882 +.param tc1_vgdep=0 +.param tc1_vth=0 +.param tc1_vbdep=0 +.param tc1_hvvsat=0.0061411164700097 +.param tc1_avsat=-0.000120490754051872 +.param tc2_rdrift=0.000021055807983754 +.param tc2_vgdep=0 +.param tc2_vth=0 +.param tc2_vbdep=0 +.param tc2_hvvsat=3.61396725197052E-05 +.param tc2_avsat=3.0122688512968E-06 +.param ++ rdrift='rdrift_tnom*((w_n20vhv1-deltaw)/w_n20vhv1)*(1+tc1_rdrift*(temper-30)+tc2_rdrift*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_iso__rdrift_mult' ++ vgdep='vgdep_tnom*(1+tc1_vgdep*(temper-30)+tc2_vgdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vgdep_mult' ++ vth='vth_tnom*(1+tc1_vth*(temper-30)+tc2_vth*(temper-30)*(temper-30))+n20vhv1res_vth0_diff' ++ vbdep='vbdep_tnom*(1+tc1_vbdep*(temper-30)+tc2_vbdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__vbdep_mult' ++ hvvsat='hvvsat_tnom*(1+tc1_hvvsat*(temper-30)+tc2_hvvsat*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_iso__hvvsat_mult' ++ avsat='avsat_tnom*(1+tc1_avsat*(temper-30)+tc2_avsat*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0__avsat_mult' +m1 d1 g s b sky130_fd_pr__nfet_20v0__base w=w_n20vhv1 l=hvnel_n20vhviso1 ad=0 as=0 pd=0 ps=0 nrd=nrd_n20vhv1 nrs=nrs_n20vhv1 delvto=delvto_n20vhv1 m=m +rldd d d1 r='abs((1/w_n20vhv1*1)*(rdrift/(1+vgdep*(v(g,s)-vth-vbdep*v(b,s))))*(1+pwr((abs(v(d,s)+vth2-min(v(d1,s),60))/(hvvsat*(1+hvvbdep*v(b,s)))),avsat)))' tc1 = 0 tc2 = 0 m = {m} +dNDrain1 b d sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNDrain2 b d1 sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain area='0.5*ad_n20vhviso1' pj='0.5*pd_n20vhviso1' m=m +dNSrc b s sky130_fd_pr__diode_pw2nd_05v5 area=as_n20vhv1 pj='ps_n20vhv1-w_n20vhv1' m=m +dDrnPsub sub d sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain area='0.5*ad_n20vhv1isopsub' pj='0.5*pd_n20vhv1isopsub' m=m +.model sky130_fd_pr__nfet_20v0__base nmos +* DC IV MOS Parameters ++ lmin = 4.95e-07 lmax = 3.05e-06 wmin = 1.9995e-05 wmax = 6.0005e-5 ++ level = 54.0 ++ tnom = 30.0 ++ version = 4.5 ++ toxm = 1.16e-8 ++ xj = 1.5e-7 ++ lln = 1.0 ++ lwn = 1.0 ++ wln = 1.0 ++ wwn = 1.0 ++ lint = '7.6507e-08 + sky130_fd_pr__nfet_20v0__lint_diff' ++ ll = 0.0 ++ lw = 0.0 ++ lwl = 0.0 ++ wint = '2.1346e-08 + sky130_fd_pr__nfet_20v0__wint_diff' ++ wl = 0.0 ++ ww = 0.0 ++ wwl = 0.0 ++ xl = 0.0 ++ xw = 0.0 ++ mobmod = 0.0 ++ binunit = 2.0 ++ dwg = -4.1292e-9 ++ dwb = -1.6944e-9 +* BSIM4 - Model Selectors ++ igcmod = 0.0 ++ igbmod = 0.0 ++ rgatemod = 0.0 ++ rbodymod = 1.0 ++ trnqsmod = 0.0 ++ acnqsmod = 0.0 ++ fnoimod = 1.0 ++ tnoimod = 1.0 ++ permod = 1.0 ++ geomod = 0.0 ++ rdsmod = 0.0 ++ tempmod = 0.0 ++ lintnoi = 0.0 ++ vfbsdoff = 0.0 ++ lambda = 0.0 ++ vtl = 0.0 ++ lc = 5.0e-9 ++ xn = 3.0 ++ rnoia = 0.794 ++ rnoib = 0.38 ++ tnoia = 7.5e+6 ++ tnoib = 7.2e+6 +* BSIM4 - Process Parameters ++ epsrox = 3.9 ++ toxe = '1.16e-08*sky130_fd_pr__nfet_20v0__toxe_mult' ++ dtox = 0.0 ++ ndep = 1.7e+17 ++ nsd = 1.0e+20 ++ rshg = 0.1 ++ rsh = '1.0*sky130_fd_pr__nfet_20v0__rshn_mult' +* Threshold Voltage Parameters ++ vth0 = '0.84689 + sky130_fd_pr__nfet_20v0_iso__vth0_diff' ++ k1 = 1.019 ++ k2 = '-0.055829 + sky130_fd_pr__nfet_20v0_iso__k2_diff' ++ k3 = -0.884 ++ dvt0 = 0.0 ++ dvt1 = 0.53 ++ dvt2 = -0.19251 ++ dvt0w = 0.16 ++ dvt1w = 6.9091e+6 ++ dvt2w = -0.036016 ++ w0 = 0.0 ++ k3b = 0.43 +* NEW BSIM4 Parameters for Level 54 ++ phin = 0.0 ++ lpe0 = 0.0 ++ lpeb = -2.182e-7 ++ vbm = -3.0 ++ dvtp0 = 0.0 ++ dvtp1 = 0.0 +* Mobility Parameters ++ vsat = 9.7104e+4 ++ ua = -1.131400e-10 ++ ub = 4.1888e-18 ++ uc = 7.0353e-11 ++ rdsw = 5237.3 ++ prwb = 0.65788 ++ prwg = -0.26 ++ wr = 1.0 ++ u0 = 0.075279 ++ a0 = 0.96953 ++ keta = 0.086165 ++ a1 = 0.37848 ++ a2 = 0.54362 ++ ags = 0.60228 ++ b0 = 3.2933e-8 ++ b1 = 0.0 +* BSIM4 - Mobility Parameters ++ eu = 1.67 ++ rdswmin = 0.0 ++ rdw = 0.0 ++ rdwmin = 0.0 ++ rsw = 0.0 ++ rswmin = 0.0 +* Subthreshold Current Parameters ++ voff = -0.20613 ++ nfactor = 0.2786 ++ up = 0.0 ++ ud = 0.0 ++ lp = 1.0 ++ tvfbsdoff = 0.0 ++ tvoff = 0.0 ++ cit = -0.0008 ++ cdsc = 0.0 ++ cdscb = 0.0 ++ cdscd = 0.0 ++ eta0 = 0.038662 ++ etab = -0.028284 ++ dsub = 0.42 +* BSIM4 - Sub-threshold parameters ++ voffl = -4.2579486e-7 ++ minv = 0.0 +* Rout Parameters ++ pclm = 0.2 ++ pdiblc1 = 0.21098 ++ pdiblc2 = 0.0002 ++ pdiblcb = -0.26831 ++ drout = 0.36075 ++ pscbe1 = 4.0572e+9 ++ pscbe2 = 1.68e-6 ++ pvag = 1.99 ++ delta = 0.14671 ++ alpha0 = 5.0000e-5 ++ alpha1 = 0.0 ++ beta0 = 36.96 +* BSIM4 - Rout Parameters ++ fprout = 10.125 ++ pdits = 0.0 ++ pditsl = 0.0 ++ pditsd = 0.0 +* BSIM4 - Gate Induced Drain Leakage Model Parameters ++ agidl = 5.06e-16 ++ bgidl = 1.058e+9 ++ cgidl = 4000.0 ++ egidl = 0.8 +* BSIM4 - Gate Leakage Current Parameters ++ aigbacc = 1.0 ++ bigbacc = 0.0 ++ cigbacc = 0.0 ++ nigbacc = 1.0 ++ aigbinv = 0.35 ++ bigbinv = 0.03 ++ cigbinv = 0.006 ++ eigbinv = 1.1 ++ nigbinv = 3.0 ++ aigc = 0.43 ++ bigc = 0.054 ++ cigc = 0.075 ++ nigc = 1.0 ++ aigsd = 0.43 ++ bigsd = 0.054 ++ cigsd = 0.075 ++ dlcig = 0.0 ++ poxedge = 1.0 ++ pigcd = 1.0 ++ ntox = 1.0 ++ toxref = 1.16e-8 +* Temperature Effects Parameters ++ kt1 = -0.34636 ++ kt2 = -0.042078 ++ at = 69440.0 ++ ute = -0.67527 ++ ua1 = 3.0525e-9 ++ ub1 = -1.5515e-18 ++ uc1 = -5.9821e-11 ++ kt1l = 0.0 ++ prt = 9000.0 +* BSIM4 - High Speed RF Model Parameters ++ xrcrg1 = 12.0 ++ xrcrg2 = 1.0 ++ rbpb = 50.0 ++ rbpd = 50.0 ++ rbps = 50.0 ++ rbdb = 50.0 ++ rbsb = 50.0 ++ gbmin = 1.0e-12 +* BSIM4 - Flicker and Thermal Noise Parameters ++ noia = 2.6e+41 ++ noib = 0.0 ++ noic = 0.0 ++ em = 4.1000000e+7 ++ af = 1.0 ++ ef = 0.89 ++ kf = 0.0 ++ ntnoi = 1.0 +* BSIM4 - Layout Dependent Parasitic Model Parameters ++ dmcg = 0.0 ++ dmcgt = 0.0 ++ dmdg = 0.0 ++ xgw = 0.0 ++ xgl = 0.0 ++ ngcon = 1.0 +* Diode DC IV Parameters +* BSIM4 - Diode DC IV parameters ++ diomod = 1.0 ++ njs = 1.0773 ++ jss = 0.000375 ++ jsws = 5.84e-11 ++ xtis = 0.76 ++ bvs = 12.636 ++ xjbvs = 1.0 ++ ijthsrev = 0.1 ++ ijthsfwd = 0.1 +* Diode and FET Capacitance Parameters ++ tpb = 0.001344 ++ tpbsw = 0.00099005 ++ tpbswg = 0.0 ++ tcj = 0.00067434 ++ tcjsw = 0.0002493 ++ tcjswg = -0.005 ++ cgdo = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgso = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgbo = 0.0 ++ capmod = 2.0 ++ xpart = 0.0 ++ cgsl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgdl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cf = 0.0 ++ clc = 1.0e-7 ++ cle = 0.6 ++ dlc = '6.5995e-08+sky130_fd_pr__nfet_20v0__dlc_diff' ++ dwc = '0.0+sky130_fd_pr__nfet_20v0__dwc_diff' ++ vfbcv = -1.0 ++ acde = 0.4176 ++ moin = 15.0 ++ noff = 4.0 ++ voffcv = -0.4104 ++ ngate = 1.0e+23 ++ lwc = 0.0 ++ llc = 0.0 ++ lwlc = 0.0 ++ wlc = 0.0 ++ wwc = 0.0 ++ wwlc = 0.0 +* BSIM4 - FET and Diode capacitance parameters ++ ckappas = 0.6 ++ cjs = '0.0008512*sky130_fd_pr__nfet_20v0__ajunction_mult' ++ mjs = 0.295 ++ pbs = 0.72468 ++ cjsws = '1.5204e-011*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjsws = 0.037586 ++ pbsws = 0.29067 ++ cjswgs = '5.4e-011*sky130_fd_pr__nfet_20v0__pgatejunction_mult*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjswgs = '0.78692*sky130_fd_pr__nfet_20v0__mjswgatejunction_mult' ++ pbswgs = '0.54958*sky130_fd_pr__nfet_20v0__pbswgatejunction_mult' +* Stress Parameters ++ saref = 1.81e-6 ++ sbref = 1.81e-6 ++ wlod = 0.0 ++ kvth0 = 1.1e-8 ++ lkvth0 = 0.0 ++ wkvth0 = 6.5e-7 ++ pkvth0 = 0.0 ++ llodvth = 0.0 ++ wlodvth = 1.0 ++ stk2 = 0.0 ++ lodk2 = 1.0 ++ lodeta0 = 1.0 ++ ku0 = -4.5e-8 ++ lku0 = 0.0 ++ wku0 = 2.0e-7 ++ pku0 = 0.0 ++ llodku0 = 0.0 ++ wlodku0 = 1.0 ++ kvsat = 0.3 ++ steta0 = 0.0 ++ tku0 = 0.0 +.ends sky130_fd_pr__nfet_20v0_reverse_iso +*.END
diff --git a/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt.bins.csv b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt.bins.csv new file mode 100644 index 0000000..fef526d --- /dev/null +++ b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt.bins.csv
@@ -0,0 +1,3 @@ +device,bin,W,L +model corner +,0,30.0,1.0
diff --git a/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__fs_discrete.corner.spice b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__fs_discrete.corner.spice new file mode 100644 index 0000000..e78b512 --- /dev/null +++ b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__fs_discrete.corner.spice
@@ -0,0 +1,32 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_zvt__rdrift_mult = 2.72399819900946 ++ sky130_fd_pr__nfet_20v0_zvt__hvvsat_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_zvt__vth0_diff = 0.05532 ++ sky130_fd_pr__nfet_20v0_zvt__k2_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__lint_diff= 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__u0_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__agidl_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__vsat_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__keta_diff = 0.18724 ++ sky130_fd_pr__nfet_20v0_zvt__ags_diff = 1.4855e+0 ++ n20zvtvh1defet_js_mult_pmc = 1.0 +.include "sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__leak_discrete.corner.spice b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__leak_discrete.corner.spice new file mode 100644 index 0000000..b160723 --- /dev/null +++ b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__leak_discrete.corner.spice
@@ -0,0 +1,32 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_zvt__rdrift_mult = 0.694573191726037 ++ sky130_fd_pr__nfet_20v0_zvt__hvvsat_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_zvt__vth0_diff = -0.37085 ++ sky130_fd_pr__nfet_20v0_zvt__k2_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__lint_diff= 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__u0_diff = 1.5631e-1 ++ sky130_fd_pr__nfet_20v0_zvt__agidl_diff = 1.4e-14 ++ sky130_fd_pr__nfet_20v0_zvt__vsat_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__ags_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__keta_diff = 0.0 ++ n20zvtvh1defet_js_mult_pmc = 10.0 +.include "sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__parasitic__diode_ps2dn__extended_drain.model.spice b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__parasitic__diode_ps2dn__extended_drain.model.spice new file mode 100644 index 0000000..a146b5a --- /dev/null +++ b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__parasitic__diode_ps2dn__extended_drain.model.spice
@@ -0,0 +1,67 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0_zvt__cjdnwpsubjunction_mult = 7.0510e-1 ++ sky130_fd_pr__nfet_20v0_zvt__mjdnwpsubjunction_mult = 1.6541 ++ sky130_fd_pr__nfet_20v0_zvt__pbdnwpsubjunction_mult = 1.4206 ++ sky130_fd_pr__nfet_20v0_zvt__vb = 30.0 ++ n20zvtvh1defet_js_mult = 'max(0.1,n20zvtvh1defet_js_mult_pmc)' +.model sky130_fd_pr__nfet_20v0_zvt__parasitic__diode_ps2dn__extended_drain d ++ level = 3.0 ++ tlevc = 1.0 ++ scalm = 1.0e-6 ++ area = 1.0e+12 +* Junction Capacitance Parameters ++ cj = '1.6920e-004*sky130_fd_pr__nfet_20v0_zvt__cjdnwpsubjunction_mult*1e-12*sky130_fd_pr__model__parasitic__diode_ps2dn__ajunction_mult' $ Units: farad/meter^2 ++ mj = '0.56056*sky130_fd_pr__nfet_20v0_zvt__mjdnwpsubjunction_mult' ++ pb = '0.21294*sky130_fd_pr__nfet_20v0_zvt__pbdnwpsubjunction_mult' $ Units: volt ++ cjsw = '8.1380e-010*sky130_fd_pr__nfet_20v0_zvt__cjdnwpsubjunction_mult*1e-6*sky130_fd_pr__model__parasitic__diode_ps2dn__pjunction_mult' $ Units: farad/meter ++ mjsw = '0.18742*sky130_fd_pr__nfet_20v0_zvt__mjdnwpsubjunction_mult' ++ php = '0.21294*sky130_fd_pr__nfet_20v0_zvt__pbdnwpsubjunction_mult' $ Units: volt ++ cta = 0.0031223 $ Units: 1/coulomb ++ ctp = 0.0014703 $ Units: 1/coulomb ++ tpb = 0.0016859 $ Units: volt/coulomb ++ tphp = 0.0016859 $ Units: volt/coulomb +* Diode IV Parameters ++ js = '6.1049e-017*n20zvtvh1defet_js_mult' $ Units: amper/meter^2 ++ jsw = '8.1115e-016*n20zvtvh1defet_js_mult' $ Units: amper/meter ++ n = 0.9891 ++ rs = 900 $ Units: ohm (ohm/meter^2 if area defined) ++ ik = '2.08e-009/1e-12' $ Units: amper/meter^2 ++ ikr = '0/1e-12' $ Units: amper/meter^2 ++ vb = 'sky130_fd_pr__nfet_20v0_zvt__vb' $ Units: volt ++ ibv = 0.00106 $ Units: amper ++ trs = 0 $ Units: 1/coulomb ++ eg = 1.17 $ Units: electron-volt ++ xti = 1.0 ++ tref = 30 $ Units: coulomb +* Default Parameters ++ tcv = 0 $ Units: 1/coulomb ++ gap1 = 0.000473 $ Units: electron-volt/coulomb ++ gap2 = 1110.0 ++ ttt1 = 0 $ Units: 1/coulomb ++ ttt2 = 0 $ Units: 1/coulomb^2 ++ tm1 = 0 $ Units: 1/coulomb ++ tm2 = 0 $ Units: 1/coulomb^2 ++ lm = 0 $ Units: meter ++ lp = 0 $ Units: meter ++ wm = 0 $ Units: meter ++ wp = 0 $ Units: meter ++ xm = 0 $ Units: meter ++ xoi = 10000.0 ++ xom = 10000 $ Units: angstrom ++ xp = 0 $ Units: meter ++ xw = 0 $ Units: meter
diff --git a/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__sf_discrete.corner.spice b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__sf_discrete.corner.spice new file mode 100644 index 0000000..3bf0afc --- /dev/null +++ b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__sf_discrete.corner.spice
@@ -0,0 +1,32 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_zvt__rdrift_mult = 0.694573191726037 ++ sky130_fd_pr__nfet_20v0_zvt__hvvsat_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_zvt__vth0_diff = -0.02085 ++ sky130_fd_pr__nfet_20v0_zvt__k2_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__lint_diff= 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__u0_diff = 1.5631e-1 ++ sky130_fd_pr__nfet_20v0_zvt__agidl_diff = 4.5e-15 ++ sky130_fd_pr__nfet_20v0_zvt__vsat_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__ags_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__keta_diff = 0.0 ++ n20zvtvh1defet_js_mult_pmc = 10.0 +.include "sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice"
diff --git a/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice new file mode 100644 index 0000000..b1aa9d9 --- /dev/null +++ b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice
@@ -0,0 +1,341 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.include "sky130_fd_pr__nfet_20v0_zvt__parasitic__diode_ps2dn__extended_drain.model.spice" +.subckt sky130_fd_pr__nfet_20v0_zvt d g s b w=60u l=2u m=1 t=30 ++ ad=0 as=0 pd=0 ps=0 nrd=2 nrs=2 mf=1 sa=0 sb=0 +.param rdrift_tnom=4.73057453e+003 vgdep_tnom=0.020646 vth_tnom=7.000000e-001 vbdep_tnom=-5.260300e-001 ++ vth2=0.5 hvvsat_tnom=1.236813882 avsat_tnom=7.467500e-001 deltaw=9.000000e-001 hvnel_n20zvtvhv1=5.00 hvvbdep=-2.490600e-002 +.param ++ sky130_fd_pr__nfet_20v0_zvt__pgatejunction_mult = 1.7357 ++ sky130_fd_pr__nfet_20v0_zvt__mjswgatejunction_mult = 5.3981e-1 ++ sky130_fd_pr__nfet_20v0_zvt__pbswgatejunction_mult = 3.4999e+0 +.param ++ sky130_fd_pr__nfet_20v0_zvt__vgdep_mult=1 ++ n20zvtvhv1res_vth0_diff=0.0 ++ sky130_fd_pr__nfet_20v0_zvt__vbdep_mult=1 ++ sky130_fd_pr__nfet_20v0_zvt__avsat_mult=0.984 +.param ++ w_n20zvtvhv1 = 30.00 ++ nrd_n20zvtvhv1 = 2.0 ++ nrs_n20zvtvhv1 = 2.0 ++ ad_n20zvtvhv1 = 103.5 ++ as_n20zvtvhv1 = 8.7 ++ pd_n20zvtvhv1 = 41.75 ++ ps_n20zvtvhv1 = 60.58 ++ delvto_n20zvtvhv1 = 0.0 +.param tc1_vgdep=0 +.param tc1_vth=0 +.param tc1_vbdep=0 +.param tc1_hvvsat_n20zvtvhv1=0.0061411164700097 +.param tc2_rdrift_n20zvtvhv1=5.0768e-005 +.param tc2_vgdep=0 +.param tc2_vth=0 +.param tc2_vbdep=0 +.param tc2_hvvsat_n20zvtvhv1=3.61396725197052E-05 +.param tc2_avsat_n20zvtvhv1=3.0122688512968E-06 +.param tc1_rdrift_n20zvtvhv1=0.012359 +.param tc1_avsat_n20zvtvhv1=-7.4563e-04 +.param ++ rdrift='rdrift_tnom*((w_n20zvtvhv1-deltaw)/w_n20zvtvhv1)*(1+tc1_rdrift_n20zvtvhv1*(temper-30)+tc2_rdrift_n20zvtvhv1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_zvt__rdrift_mult' ++ vgdep='vgdep_tnom*(1+tc1_vgdep*(temper-30)+tc2_vgdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_zvt__vgdep_mult' ++ vth='vth_tnom*(1+tc1_vth*(temper-30)+tc2_vth*(temper-30)*(temper-30))+n20zvtvhv1res_vth0_diff' ++ vbdep='vbdep_tnom*(1+tc1_vbdep*(temper-30)+tc2_vbdep*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_zvt__vbdep_mult' ++ hvvsat='hvvsat_tnom*(1+tc1_hvvsat_n20zvtvhv1*(temper-30)+tc2_hvvsat_n20zvtvhv1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_zvt__hvvsat_mult' ++ avsat='avsat_tnom*(1+tc1_avsat_n20zvtvhv1*(temper-30)+tc2_avsat_n20zvtvhv1*(temper-30)*(temper-30))*sky130_fd_pr__nfet_20v0_zvt__avsat_mult' +m1 d1 g s b sky130_fd_pr__nfet_20v0_zvt__base w=w_n20zvtvhv1 l=hvnel_n20zvtvhv1 ad=0 as=0 pd=0 ps=0 nrd=nrd_n20zvtvhv1 nrs=nrs_n20zvtvhv1 delvto=delvto_n20zvtvhv1 m=m +rldd d d1 r='abs((1/w_n20zvtvhv1)*(rdrift/(1+vgdep*(v(g,s)-vth-vbdep*v(b,s))))*(1+pwr((abs(v(d,s)+vth2-min(v(d1,s),60))/(hvvsat*(1+hvvbdep*v(b,s)))),avsat)))' tc1 = 0 tc2 = 0 m = {m} +dNDrain1 b d sky130_fd_pr__nfet_20v0_zvt__parasitic__diode_ps2dn__extended_drain area='0.5*ad_n20zvtvhv1' pj='0.5*pd_n20zvtvhv1' m=m +dNDrain2 b d1 sky130_fd_pr__nfet_20v0_zvt__parasitic__diode_ps2dn__extended_drain area='0.5*ad_n20zvtvhv1' pj='0.5*pd_n20zvtvhv1' m=m +dNSrc b s sky130_fd_pr__diode_pw2nd_05v5 area=as_n20zvtvhv1 pj='ps_n20zvtvhv1-w_n20zvtvhv1' m=m +.model sky130_fd_pr__nfet_20v0_zvt__base.0 nmos +* DC IV MOS Parameters ++ lmin = 4.95e-07 lmax = 6.05e-06 wmin = 1.9995e-05 wmax = 6.0005e-5 ++ level = 54.0 ++ tnom = 30.0 ++ version = 4.5 ++ toxm = 1.16e-8 ++ xj = 1.5e-7 ++ lln = 1.0 ++ lwn = 1.0 ++ wln = 1.0 ++ wwn = 1.0 ++ lint = '3.36507e-07 + sky130_fd_pr__nfet_20v0__lint_diff + sky130_fd_pr__nfet_20v0_zvt__lint_diff' ++ ll = 0.0 ++ lw = 0.0 ++ lwl = 0.0 ++ wint = '2.1346e-08 + sky130_fd_pr__nfet_20v0__wint_diff' ++ wl = 0.0 ++ ww = 0.0 ++ wwl = 0.0 ++ xl = 0.0 ++ xw = 0.0 ++ mobmod = 0.0 ++ binunit = 2.0 ++ dwg = -4.1292e-9 ++ dwb = -1.6944e-9 +* BSIM4 - Model Selectors ++ igcmod = 0.0 ++ igbmod = 0.0 ++ rgatemod = 0.0 ++ rbodymod = 1.0 ++ trnqsmod = 0.0 ++ acnqsmod = 0.0 ++ fnoimod = 1.0 ++ tnoimod = 1.0 ++ permod = 1.0 ++ geomod = 0.0 ++ rdsmod = 0.0 ++ tempmod = 0.0 ++ lintnoi = 0.0 ++ vfbsdoff = 0.0 ++ lambda = 0.0 ++ vtl = 0.0 ++ lc = 5.0e-9 ++ xn = 3.0 ++ rnoia = 0.794 ++ rnoib = 0.38 ++ tnoia = 7.5e+6 ++ tnoib = 7.2e+6 +* BSIM4 - Process Parameters ++ epsrox = 3.9 ++ toxe = '1.16e-08*sky130_fd_pr__nfet_20v0__toxe_mult' ++ dtox = 0.0 ++ ndep = 1.7e+17 ++ nsd = 1.0e+20 ++ rshg = 0.1 ++ rsh = '1.0*sky130_fd_pr__nfet_20v0__rshn_mult' +* Threshold Voltage Parameters ++ vth0 = '-0.11887 + sky130_fd_pr__nfet_20v0_zvt__vth0_diff' ++ k1 = 1.019 ++ k2 = '-0.3395 + sky130_fd_pr__nfet_20v0_zvt__k2_diff' ++ k3 = -0.884 ++ dvt0 = 0.0 ++ dvt1 = 0.53 ++ dvt2 = -0.19251 ++ dvt0w = 0.16 ++ dvt1w = 6.9091e+6 ++ dvt2w = -0.036016 ++ w0 = 0.0 ++ k3b = 0.43 +* NEW BSIM4 Parameters for Level 54 ++ phin = 0.0 ++ lpe0 = 0.0 ++ lpeb = -2.182e-7 ++ vbm = -3.0 ++ dvtp0 = 0.0 ++ dvtp1 = 0.0 +* Mobility Parameters ++ vsat = '8.2379e+004 + sky130_fd_pr__nfet_20v0_zvt__vsat_diff' ++ ua = -8.598600e-11 ++ ub = 8.3776e-19 ++ uc = 6.9552e-10 ++ rdsw = 10554.0 ++ prwb = 0.36549 ++ prwg = 0.0208 ++ wr = 1.0 ++ u0 = '0.070088 + sky130_fd_pr__nfet_20v0_zvt__u0_diff' ++ a0 = -0.39335 ++ keta = '0.044964 + sky130_fd_pr__nfet_20v0_zvt__keta_diff' ++ a1 = 0.37848 ++ a2 = 0.54362 ++ ags = '0.17085 + sky130_fd_pr__nfet_20v0_zvt__ags_diff' ++ b0 = 3.2933e-8 ++ b1 = 0.0 +* BSIM4 - Mobility Parameters ++ eu = 1.67 ++ rdswmin = 0.0 ++ rdw = 0.0 ++ rdwmin = 0.0 ++ rsw = 0.0 ++ rswmin = 0.0 +* Subthreshold Current Parameters ++ voff = -0.20613 ++ nfactor = 0.0 ++ up = 0.0 ++ ud = 0.0 ++ lp = 1.0 ++ tvfbsdoff = 0.0 ++ tvoff = 0.0 ++ cit = -0.0008 ++ cdsc = 0.0 ++ cdscb = 0.0 ++ cdscd = 0.0 ++ eta0 = 0.11256 ++ etab = -0.028284 ++ dsub = 0.084 +* BSIM4 - Sub-threshold parameters ++ voffl = -4.2579486e-7 ++ minv = 0.0 +* Rout Parameters ++ pclm = 0.2 ++ pdiblc1 = 0.21098 ++ pdiblc2 = 0.0002 ++ pdiblcb = -0.26831 ++ drout = 0.36075 ++ pscbe1 = 4.0572e+9 ++ pscbe2 = 1.68e-6 ++ pvag = 1.99 ++ delta = 0.14671 ++ alpha0 = 3.2602e-9 ++ alpha1 = 0.0 ++ beta0 = 58.234 +* BSIM4 - Rout Parameters ++ fprout = 10.125 ++ pdits = 0.0 ++ pditsl = 0.0 ++ pditsd = 0.0 +* BSIM4 - Gate Induced Drain Leakage Model Parameters ++ agidl = '5.06e-016 + sky130_fd_pr__nfet_20v0_zvt__agidl_diff' ++ bgidl = 1.058e+9 ++ cgidl = 4000.0 ++ egidl = 0.8 +* BSIM4 - Gate Leakage Current Parameters ++ aigbacc = 1.0 ++ bigbacc = 0.0 ++ cigbacc = 0.0 ++ nigbacc = 1.0 ++ aigbinv = 0.35 ++ bigbinv = 0.03 ++ cigbinv = 0.006 ++ eigbinv = 1.1 ++ nigbinv = 3.0 ++ aigc = 0.43 ++ bigc = 0.054 ++ cigc = 0.075 ++ nigc = 1.0 ++ aigsd = 0.43 ++ bigsd = 0.054 ++ cigsd = 0.075 ++ dlcig = 0.0 ++ poxedge = 1.0 ++ pigcd = 1.0 ++ ntox = 1.0 ++ toxref = 1.16e-8 +* Temperature Effects Parameters ++ kt1 = -0.20782 ++ kt2 = -0.042078 ++ at = 169440.0 ++ ute = -1.42 ++ ua1 = 6.3160e-9 ++ ub1 = -6.6715e-18 ++ uc1 = -5.9821e-11 ++ kt1l = 0.0 ++ prt = 0.0 +* BSIM4 - High Speed RF Model Parameters ++ xrcrg1 = 12.0 ++ xrcrg2 = 1.0 ++ rbpb = 50.0 ++ rbpd = 50.0 ++ rbps = 50.0 ++ rbdb = 50.0 ++ rbsb = 50.0 ++ gbmin = 1.0e-12 +* BSIM4 - Flicker and Thermal Noise Parameters ++ noia = 2.6e+41 ++ noib = 0.0 ++ noic = 0.0 ++ em = 4.1000000e+7 ++ af = 1.0 ++ ef = 0.89 ++ kf = 0.0 ++ ntnoi = 1.0 +* BSIM4 - Layout Dependent Parasitic Model Parameters ++ dmcg = 0.0 ++ dmcgt = 0.0 ++ dmdg = 0.0 ++ xgw = 0.0 ++ xgl = 0.0 ++ ngcon = 1.0 +* Diode DC IV Parameters +* BSIM4 - Diode DC IV parameters ++ diomod = 1.0 ++ njs = 1.0773 ++ jss = 0.000375 ++ jsws = 5.84e-11 ++ xtis = 0.76 ++ bvs = 12.636 ++ xjbvs = 1.0 ++ ijthsrev = 0.1 ++ ijthsfwd = 0.1 +* Diode and FET Capacitance Parameters ++ tpb = 0.001344 ++ tpbsw = 0.00099005 ++ tpbswg = 0.0 ++ tcj = 0.00067434 ++ tcjsw = 0.0002493 ++ tcjswg = -0.005 ++ cgdo = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgso = '4.3400e-010*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgbo = 0.0 ++ capmod = 2.0 ++ xpart = 0.0 ++ cgsl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cgdl = '5e-011*sky130_fd_pr__nfet_20v0__overlap_mult' ++ cf = 0.0 ++ clc = 1.0e-7 ++ cle = 0.6 ++ dlc = '6.5995e-08+sky130_fd_pr__nfet_20v0__dlc_diff-0.5e-6' ++ dwc = '0.0+sky130_fd_pr__nfet_20v0__dwc_diff' ++ vfbcv = -1.0 ++ acde = 0.4176 ++ moin = 15.0 ++ noff = 4.0 ++ voffcv = -0.4104 ++ ngate = 1.0e+23 ++ lwc = 0.0 ++ llc = 0.0 ++ lwlc = 0.0 ++ wlc = 0.0 ++ wwc = 0.0 ++ wwlc = 0.0 +* BSIM4 - FET and Diode capacitance parameters ++ ckappas = 0.6 ++ cjs = '0.0008512*sky130_fd_pr__nfet_20v0__ajunction_mult' ++ mjs = 0.295 ++ pbs = 0.72468 ++ cjsws = '1.5204e-011*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjsws = 0.037586 ++ pbsws = 0.29067 ++ cjswgs = '5.4e-011*sky130_fd_pr__nfet_20v0_zvt__pgatejunction_mult*sky130_fd_pr__nfet_20v0__pjunction_mult' ++ mjswgs = '0.78692*sky130_fd_pr__nfet_20v0_zvt__mjswgatejunction_mult' ++ pbswgs = '0.54958*sky130_fd_pr__nfet_20v0_zvt__pbswgatejunction_mult' ++ cjd = 0.0 ++ cjswgd = 0.0 ++ cjswd = 0.0 +* Stress Parameters ++ saref = 1.81e-6 ++ sbref = 1.81e-6 ++ wlod = 0.0 ++ kvth0 = 1.1e-8 ++ lkvth0 = 0.0 ++ wkvth0 = 6.5e-7 ++ pkvth0 = 0.0 ++ llodvth = 0.0 ++ wlodvth = 1.0 ++ stk2 = 0.0 ++ lodk2 = 1.0 ++ lodeta0 = 1.0 ++ ku0 = -4.5e-8 ++ lku0 = 0.0 ++ wku0 = 2.0e-7 ++ pku0 = 0.0 ++ llodku0 = 0.0 ++ wlodku0 = 1.0 ++ kvsat = 0.3 ++ steta0 = 0.0 ++ tku0 = 0.0 +.ends sky130_fd_pr__nfet_20v0_zvt +*.END
diff --git a/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__tt_discrete.corner.spice b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__tt_discrete.corner.spice new file mode 100644 index 0000000..bd4eeaa --- /dev/null +++ b/cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__tt_discrete.corner.spice
@@ -0,0 +1,32 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* +* model corner +* , Bin 000, W = 30.0, L = 1.0 +* ---------------------------- +.param ++ sky130_fd_pr__nfet_20v0_zvt__rdrift_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_zvt__hvvsat_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_zvt__vth0_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__k2_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__lint_diff= 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__u0_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__agidl_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__vsat_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__ags_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__keta_diff = 0.0 ++ n20zvtvh1defet_js_mult_pmc = 1.0 +.include "sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice"
diff --git a/cells/pfet_20v0/sky130_fd_pr__pfet_20v0.bins.csv b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0.bins.csv new file mode 100644 index 0000000..bab224d --- /dev/null +++ b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0.bins.csv
@@ -0,0 +1,2 @@ +device,bin,W,L +sky130_fd_pr__pfet_20v0,0,30.0,1.0
diff --git a/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice new file mode 100644 index 0000000..4b1e980 --- /dev/null +++ b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice
@@ -0,0 +1,35 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__pfet_20v0__toxe_mult = 0.948 ++ sky130_fd_pr__pfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__overlap_mult = 0.10 ++ sky130_fd_pr__pfet_20v0__ajunction_mult = 9.3222e-1 ++ sky130_fd_pr__pfet_20v0__pjunction_mult = 9.4436e-1 ++ sky130_fd_pr__pfet_20v0__lint_diff = 1.7325e-8 ++ sky130_fd_pr__pfet_20v0__wint_diff = -3.2175e-8 ++ sky130_fd_pr__pfet_20v0__dlc_diff = 8.7000e-8 ++ sky130_fd_pr__pfet_20v0__dwc_diff = -3.2175e-8 +* +* sky130_fd_pr__pfet_20v0, Bin 000, W = 30.0, L = 1.0 +* ----------------------------------- +.param ++ sky130_fd_pr__pfet_20v0__rdrift_mult = 7.4899e-1 ++ sky130_fd_pr__pfet_20v0__vth0_diff = 2.2906e-1 ++ sky130_fd_pr__pfet_20v0__u0_diff = 1.1548e-2 ++ sky130_fd_pr__pfet_20v0__k2_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__agidl_diff = 0.0 +.include "sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice"
diff --git a/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__leak_discrete.corner.spice b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__leak_discrete.corner.spice new file mode 100644 index 0000000..3b680fa --- /dev/null +++ b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__leak_discrete.corner.spice
@@ -0,0 +1,35 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__pfet_20v0__toxe_mult = 0.948 ++ sky130_fd_pr__pfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__overlap_mult = 0.10 ++ sky130_fd_pr__pfet_20v0__ajunction_mult = 9.3222e-1 ++ sky130_fd_pr__pfet_20v0__pjunction_mult = 9.4436e-1 ++ sky130_fd_pr__pfet_20v0__lint_diff = 1.7325e-8 ++ sky130_fd_pr__pfet_20v0__wint_diff = -3.2175e-8 ++ sky130_fd_pr__pfet_20v0__dlc_diff = 8.7000e-8 ++ sky130_fd_pr__pfet_20v0__dwc_diff = -3.2175e-8 +* +* sky130_fd_pr__pfet_20v0, Bin 000, W = 30.0, L = 1.0 +* ----------------------------------- +.param ++ sky130_fd_pr__pfet_20v0__rdrift_mult = 7.4899e-1 ++ sky130_fd_pr__pfet_20v0__vth0_diff = 2.2906e-1 ++ sky130_fd_pr__pfet_20v0__u0_diff = 1.1548e-2 ++ sky130_fd_pr__pfet_20v0__k2_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__agidl_diff = 2.1787e-6 +.include "sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice"
diff --git a/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__parasitic__diode_pw2dn.model.spice b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__parasitic__diode_pw2dn.model.spice new file mode 100644 index 0000000..afa92fe --- /dev/null +++ b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__parasitic__diode_pw2dn.model.spice
@@ -0,0 +1,73 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__pfet_20v0__pwdrainjunction_mult=7.5058e-01 ++ sky130_fd_pr__pfet_20v0__pwdrainmjswjunction_mult = 8.3390e-1 ++ sky130_fd_pr__pfet_20v0__pwdrainpbswjunction_mult = 1.0204e+0 ++ sky130_fd_pr__pfet_20v0__pwdrainctjunction_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__vb = 31.0 ++ sky130_fd_pr__model__parasitic__diode_pw2dn__cj_mult = 1.199716e+0 ++ sky130_fd_pr__model__parasitic__diode_pw2dn__mj_mult = 3.8681e-1 ++ sky130_fd_pr__model__parasitic__diode_pw2dn__php_mult = 1.0 ++ sky130_fd_pr__model__parasitic__diode_pw2dn__tphp_mult = 1.25 ++ sky130_fd_pr__model__parasitic__diode_pw2dn__n_mult = 1.0 ++ sky130_fd_pr__model__parasitic__diode_pw2dn__js_mult = 1.0 +.model sky130_fd_pr__pfet_20v0__parasitic__diode_pw2dn d ++ level = 3.0 ++ tlevc = 1.0 ++ scalm = 1.0e-6 ++ area = 1.0e+12 +* Junction Capacitance Parameters ++ cj = '0.00038945*sky130_fd_pr__pfet_20v0__pwdrainjunction_mult*1e-12*sky130_fd_pr__model__parasitic__diode_pw2dn__ajunction_mult*sky130_fd_pr__model__parasitic__diode_pw2dn__cj_mult' $ Units: farad/meter^2 ++ mj = '0.63982*sky130_fd_pr__pfet_20v0__pwdrainmjswjunction_mult*sky130_fd_pr__model__parasitic__diode_pw2dn__mj_mult' ++ pb = '0.58758*sky130_fd_pr__pfet_20v0__pwdrainpbswjunction_mult' $ Units: volt ++ cjsw = '3.743e-010*sky130_fd_pr__pfet_20v0__pwdrainjunction_mult*1e-6*sky130_fd_pr__model__parasitic__diode_pw2dn__pjunction_mult*sky130_fd_pr__model__parasitic__diode_pw2dn__cj_mult' $ Units: farad/meter ++ mjsw = '0.80357*sky130_fd_pr__pfet_20v0__pwdrainmjswjunction_mult' ++ php = '0.2500*sky130_fd_pr__pfet_20v0__pwdrainpbswjunction_mult*sky130_fd_pr__model__parasitic__diode_pw2dn__php_mult' $ Units: volt ++ cta = '0.0016157*sky130_fd_pr__pfet_20v0__pwdrainctjunction_mult' $ Units: 1/coulomb ++ ctp = '0.0008*sky130_fd_pr__pfet_20v0__pwdrainctjunction_mult' $ Units: 1/coulomb ++ tpb = 0.0010003 $ Units: volt/coulomb ++ tphp = '0.000675*sky130_fd_pr__model__parasitic__diode_pw2dn__tphp_mult' $ Units: volt/coulomb +* Diode IV Parameters ++ js = '1.4693e-017*150' $ Units: amper/meter^2 ++ jsw = '7.41e-018*150' $ Units: amper/meter ++ n = '1.0791*sky130_fd_pr__model__parasitic__diode_pw2dn__n_mult' ++ rs = 900 $ Units: ohm (ohm/meter^2 if area defined) ++ ik = '2.08e-009/1e-12' $ Units: amper/meter^2 ++ ikr = '0/1e-12' $ Units: amper/meter^2 ++ vb = 'sky130_fd_pr__pfet_20v0__vb' $ Units: volt ++ ibv = 0.00106 $ Units: amper ++ trs = 0 $ Units: 1/coulomb ++ xti = 3.0 ++ eg = 0.65 $ Units: electron-volt ++ tref = 30 $ Units: coulomb +* Default Parameters ++ tcv = 0 $ Units: 1/coulomb ++ gap1 = 0.000473 $ Units: electron-volt/coulomb ++ gap2 = 1110.0 ++ ttt1 = 0 $ Units: 1/coulomb ++ ttt2 = 0 $ Units: 1/coulomb^2 ++ tm1 = 0 $ Units: 1/coulomb ++ tm2 = 0 $ Units: 1/coulomb^2 ++ lm = 0 $ Units: meter ++ lp = 0 $ Units: meter ++ wm = 0 $ Units: meter ++ wp = 0 $ Units: meter ++ xm = 0 $ Units: meter ++ xoi = 10000.0 ++ xom = 10000 $ Units: angstrom ++ xp = 0 $ Units: meter ++ xw = 0 $ Units: meter
diff --git a/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice new file mode 100644 index 0000000..25fe7c2 --- /dev/null +++ b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice
@@ -0,0 +1,35 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__pfet_20v0__toxe_mult = 1.06 ++ sky130_fd_pr__pfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__overlap_mult = 2.492 ++ sky130_fd_pr__pfet_20v0__ajunction_mult = 1.0777 ++ sky130_fd_pr__pfet_20v0__pjunction_mult = 1.0736 ++ sky130_fd_pr__pfet_20v0__lint_diff = -1.7325e-8 ++ sky130_fd_pr__pfet_20v0__wint_diff = 3.2175e-8 ++ sky130_fd_pr__pfet_20v0__dlc_diff = -1.7325e-8 ++ sky130_fd_pr__pfet_20v0__dwc_diff = 3.2175e-8 +* +* sky130_fd_pr__pfet_20v0, Bin 000, W = 30.0, L = 1.0 +* ----------------------------------- +.param ++ sky130_fd_pr__pfet_20v0__rdrift_mult = 1.2962e+0 ++ sky130_fd_pr__pfet_20v0__vth0_diff = -6.3384e-2 ++ sky130_fd_pr__pfet_20v0__u0_diff = -1.0182e-2 ++ sky130_fd_pr__pfet_20v0__k2_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__agidl_diff = 0.0 +.include "sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice"
diff --git a/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice new file mode 100644 index 0000000..b6c2ee5 --- /dev/null +++ b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice
@@ -0,0 +1,317 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.include "sky130_fd_pr__pfet_20v0__parasitic__diode_pw2dn.model.spice" +.subckt sky130_fd_pr__pfet_20v0 d g s b w=50u l=2u m=1 t=30 ad=0 as=0 pd=0 ps=0 nrd=0 nrs=0 +.param rdrift_tnom_p20vhv1=1.595800e+004 vgdep=1.102900e-001 vth=7.000000e-001 vbdep=-5.260300e-001 ++ vth2=+1.048000e-001 hvvsat=1.878600e+000 avsat=7.467500e-001 dw_p20vhv1=9.000000e-007 l_p20vhv1=0.50 hvvbdep=-2.490600e-002 +.param ++ w_p20vhv1 = 30.0 ++ fetw_p20vhv1 = 30.0 ++ nrd_p20vhv1 = 2.0 ++ nrs_p20vhv1 = 2.0 ++ ad_p20vhv1 = '294.5*0.5' ++ as_p20vhv1 = 8.7 ++ pd_p20vhv1 = '91.5*0.5' ++ ps_p20vhv1 = 60.58 ++ delvto_p20vhv1 = 0.0 +.param tc1_rdrift_p20vhv1=0.00621917042930238 +.param tc2_rdrift_p20vhv1=0.000021055807983754 +.param ++ rdrift_p20vhv1='rdrift_tnom_p20vhv1*((w_p20vhv1-dw_p20vhv1)/w_p20vhv1)*(1+tc1_rdrift_p20vhv1*(temper-30)+tc2_rdrift_p20vhv1*(temper-30)*(temper-30))*sky130_fd_pr__pfet_20v0__rdrift_mult' +m1 d1 g s b sky130_fd_pr__pfet_20v0__base w=w_p20vhv1 l=l_p20vhv1 ad=0 as=as_p20vhv1 pd=0 ps=ps_p20vhv1 nrd=nrd_p20vhv1 nrs=nrs_p20vhv1 m=m +rldd d d1 r='abs( (1/fetw_p20vhv1)*(rdrift_p20vhv1 /(1+0*(0-0-0 )) )* (1+0*pwr((abs(v(s,d)+vth2-min(v(s,d1),60))/(hvvsat*(1+hvvbdep*v(s,b)))),avsat)) )' tc1 = 0 tc2 = 0 m = {m} +dnw1 d b sky130_fd_pr__pfet_20v0__parasitic__diode_pw2dn area='ad_p20vhv1/2' pj='pd_p20vhv1/2' m=m +dnw2 d1 b sky130_fd_pr__pfet_20v0__parasitic__diode_pw2dn area='ad_p20vhv1/2' pj='pd_p20vhv1/2' m=m +.model sky130_fd_pr__pfet_20v0__base.0 pmos +* DC IV MOS Parameters ++ lmin = 4.95e-07 lmax = 5.05e-07 wmin = 1.9995e-05 wmax = 3.0005e-5 ++ level = 54.0 ++ tnom = 30.0 ++ version = 4.62 ++ toxm = 1.175e-8 ++ xj = 1.5e-7 ++ lln = 1.0 ++ lwn = 1.0 ++ wln = 1.0 ++ wwn = 1.0 ++ lint = '4.5375e-08+sky130_fd_pr__pfet_20v0__lint_diff' ++ ll = 0.0 ++ lw = 0.0 ++ lwl = 0.0 ++ wint = '1.2277e-08+sky130_fd_pr__pfet_20v0__wint_diff' ++ wl = 0.0 ++ ww = 0.0 ++ wwl = 0.0 ++ xl = 0.0 ++ xw = 0.0 ++ mobmod = 0.0 ++ binunit = 2.0 ++ dwg = -4.7338e-9 ++ dwb = 0.0 +* BSIM4 - Model Selectors ++ igcmod = 0.0 ++ igbmod = 0.0 ++ rgatemod = 0.0 ++ rbodymod = 1.0 ++ trnqsmod = 0.0 ++ acnqsmod = 0.0 ++ fnoimod = 1.0 ++ tnoimod = 1.0 ++ permod = 1.0 ++ geomod = 0.0 ++ rdsmod = 0.0 ++ tempmod = 0.0 ++ lintnoi = 0.0 ++ vfbsdoff = 0.0 ++ lambda = 0.0 ++ vtl = 0.0 ++ lc = 5.0e-9 ++ xn = 3.0 ++ rnoia = 0.577 ++ rnoib = 0.37 ++ tnoia = 1.5 ++ tnoib = 3.5 +* BSIM4 - Process Parameters ++ epsrox = 3.9 ++ toxe = '1.175e-08*sky130_fd_pr__pfet_20v0__toxe_mult' ++ dtox = 0.0 ++ ndep = 1.7e+17 ++ nsd = 1.0e+20 ++ rshg = 0.1 ++ rsh = '1.0*sky130_fd_pr__pfet_20v0__rshn_mult' +* Threshold Voltage Parameters ++ vth0 = '-1.2314+sky130_fd_pr__pfet_20v0__vth0_diff' ++ k1 = 0.66502 ++ k2 = '0.038291+sky130_fd_pr__pfet_20v0__k2_diff' ++ k3 = -2.2405 ++ dvt0 = 4.657 ++ dvt1 = 0.34864 ++ dvt2 = -0.030206 ++ dvt0w = -2.2 ++ dvt1w = 1016300.0 ++ dvt2w = 0.0 ++ w0 = 0.0 ++ k3b = -0.172 +* NEW BSIM4 Parameters for Level 54 ++ phin = 0.0 ++ lpe0 = 0.0 ++ lpeb = 0.0 ++ vbm = -3.0 ++ dvtp0 = 0.0 ++ dvtp1 = 0.0 +* Mobility Parameters ++ vsat = 49870.0 ++ ua = 2.1601000e-9 ++ ub = 7.8839e-18 ++ uc = -5.2815e-12 ++ rdsw = 788.47 ++ prwb = 0.053538 ++ prwg = 0.375 ++ wr = 1.0 ++ u0 = '0.020636+sky130_fd_pr__pfet_20v0__u0_diff' ++ a0 = 0.4683 ++ keta = -0.15457 ++ a1 = 0.0 ++ a2 = 0.5 ++ ags = 1.51 ++ b0 = 0.0 ++ b1 = 0.0 +* BSIM4 - Mobility Parameters ++ eu = 1.67 ++ rdswmin = 0.0 ++ rdw = 0.0 ++ rdwmin = 0.0 ++ rsw = 0.0 ++ rswmin = 0.0 +* Subthreshold Current Parameters ++ voff = -0.10154 ++ nfactor = 0.97411 ++ up = 0.0 ++ ud = 0.0 ++ lp = 1.0 ++ tvfbsdoff = 0.0 ++ tvoff = 0.0 ++ cit = 5.0e-6 ++ cdsc = 0.0 ++ cdscb = 0.0 ++ cdscd = 0.0 ++ eta0 = 0.080055 ++ etab = -0.0038503 ++ dsub = 0.73391 +* BSIM4 - Sub-threshold parameters ++ voffl = 0.0 ++ minv = 0.0 +* Rout Parameters ++ pclm = 0.28871 ++ pdiblc1 = 0.068215 ++ pdiblc2 = 0.0 ++ pdiblcb = -0.025 ++ drout = 0.8996 ++ pscbe1 = 6.0111000e+9 ++ pscbe2 = 2.897300e-9 ++ pvag = 0.0 ++ delta = 0.01 ++ alpha0 = 1.943700e-9 ++ alpha1 = 0.0 ++ beta0 = 87.25 +* BSIM4 - Rout Parameters ++ fprout = 0.0 ++ pdits = 0.0 ++ pditsl = 0.0 ++ pditsd = 0.0 +* BSIM4 - Gate Induced Drain Leakage Model Parameters ++ agidl = '1.3888e-08+sky130_fd_pr__pfet_20v0__agidl_diff' ++ bgidl = 1.16e+10 ++ cgidl = 876.0 ++ egidl = 0.66527 ++ agisl = 1.3888e-8 ++ bgisl = 1.6145e+9 ++ cgisl = 876.0 ++ egisl = 0.66527 +* BSIM4 - Gate Leakage Current Parameters ++ aigbacc = 0.43 ++ bigbacc = 0.054 ++ cigbacc = 0.075 ++ nigbacc = 1.0 ++ aigbinv = 0.35 ++ bigbinv = 0.03 ++ cigbinv = 0.006 ++ eigbinv = 1.1 ++ nigbinv = 3.0 ++ aigc = 0.43 ++ bigc = 0.054 ++ cigc = 0.075 ++ nigc = 1.0 ++ aigsd = 0.43 ++ bigsd = 0.054 ++ cigsd = 0.075 ++ dlcig = 0.0 ++ poxedge = 1.0 ++ pigcd = 1.0 ++ ntox = 1.0 ++ toxref = 1.175e-8 +* Temperature Effects Parameters ++ kt1 = -0.61348 ++ kt2 = -0.019032 ++ at = 18000.0 ++ ute = -1.3724 ++ ua1 = 5.52e-10 ++ ub1 = -2.16e-18 ++ uc1 = -4.1496e-11 ++ kt1l = 0.0 ++ prt = 0.0 +* BSIM4 - High Speed RF Model Parameters ++ xrcrg1 = 12.0 ++ xrcrg2 = 1.0 ++ rbpb = 50.0 ++ rbpd = 50.0 ++ rbps = 50.0 ++ rbdb = 50.0 ++ rbsb = 50.0 ++ gbmin = 1.0e-12 +* BSIM4 - Flicker and Thermal Noise Parameters ++ noia = 3.0000000e+40 ++ noib = 8.5300000e+24 ++ noic = 8.4000000e+7 ++ em = 4.1000000e+7 ++ af = 1.0 ++ ef = 0.88 ++ kf = 0.0 ++ ntnoi = 1.0 +* BSIM4 - Layout Dependent Parasitic Model Parameters ++ dmcg = 0.0 ++ dmcgt = 0.0 ++ dmdg = 0.0 ++ xgw = 0.0 ++ xgl = 0.0 ++ ngcon = 1.0 +* Diode DC IV Parameters +* BSIM4 - Diode DC IV parameters ++ diomod = 1.0 ++ njs = 1.3632 ++ jss = 2.1483e-5 ++ jsws = 4.02e-12 ++ xtis = 10.0 ++ bvs = 24.0 ++ xjbvs = 1.0 ++ ijthsrev = 0.1 ++ ijthsfwd = 0.1 +* Diode and FET Capacitance Parameters ++ tpb = 0.001671 ++ tpbsw = 0.0 ++ tpbswg = 0.0 ++ tcj = 0.00096 ++ tcjsw = 3.0e-5 ++ tcjswg = 0.0 ++ cgdo = '3.50e-10*sky130_fd_pr__pfet_20v0__overlap_mult' ++ cgso = '3.50e-10*sky130_fd_pr__pfet_20v0__overlap_mult' ++ cgbo = 0.0 ++ capmod = 2.0 ++ xpart = 0.0 ++ cgsl = '1.77e-11*sky130_fd_pr__pfet_20v0__overlap_mult' ++ cgdl = '1.77e-11*sky130_fd_pr__pfet_20v0__overlap_mult' ++ cf = 1.2e-11 ++ clc = 1.0e-7 ++ cle = 0.6 ++ dlc = '-4.35e-07+sky130_fd_pr__pfet_20v0__dlc_diff' ++ dwc = '0.0+sky130_fd_pr__pfet_20v0__dwc_diff' ++ vfbcv = -0.1446893 ++ acde = 0.401 ++ moin = 15.773 ++ noff = 4.0 ++ voffcv = 0.0 ++ ngate = 1.0e+23 ++ lwc = 0.0 ++ llc = 0.0 ++ lwlc = 0.0 ++ wlc = 0.0 ++ wwc = 0.0 ++ wwlc = 0.0 +* BSIM4 - FET and Diode capacitance parameters ++ ckappas = 0.6 ++ cjs = '0.00077934735*sky130_fd_pr__pfet_20v0__ajunction_mult' ++ mjs = 0.33956 ++ pbs = 0.6587 ++ cjsws = '9.9605453e-11*sky130_fd_pr__pfet_20v0__pjunction_mult' ++ mjsws = 0.24676 ++ pbsws = 1.0 ++ cjswgs = '1.47314e-10*sky130_fd_pr__pfet_20v0__pjunction_mult' ++ mjswgs = 0.81 ++ pbswgs = 3.0 +* Stress Parameters ++ saref = 1.81e-6 ++ sbref = 1.81e-6 ++ wlod = 0.0 ++ kvth0 = 3.5e-8 ++ lkvth0 = 0.0 ++ wkvth0 = 6.5e-7 ++ pkvth0 = 0.0 ++ llodvth = 0.0 ++ wlodvth = 1.0 ++ stk2 = 0.0 ++ lodk2 = 1.0 ++ lodeta0 = 1.0 ++ ku0 = 7.0e-8 ++ lku0 = 0.0 ++ wku0 = 0.0 ++ pku0 = 0.0 ++ llodku0 = 0.0 ++ wlodku0 = 1.0 ++ kvsat = 0.4 ++ steta0 = 0.0 ++ tku0 = 0.0 +.ends sky130_fd_pr__pfet_20v0 +*.END
diff --git a/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice new file mode 100644 index 0000000..44f54bc --- /dev/null +++ b/cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice
@@ -0,0 +1,35 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__pfet_20v0__toxe_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__overlap_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__ajunction_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__pjunction_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__lint_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__wint_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__dlc_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__dwc_diff = 0.0 +* +* sky130_fd_pr__pfet_20v0, Bin 000, W = 30.0, L = 1.0 +* ----------------------------------- +.param ++ sky130_fd_pr__pfet_20v0__rdrift_mult = 9.1777e-1 ++ sky130_fd_pr__pfet_20v0__vth0_diff = 8.3176e-2 ++ sky130_fd_pr__pfet_20v0__u0_diff = -1.2404e-3 ++ sky130_fd_pr__pfet_20v0__k2_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__agidl_diff = 0.0 +.include "sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice"
diff --git a/models/corners/ff.spice b/models/corners/ff.spice index 7e0da42..51b0c97 100644 --- a/models/corners/ff.spice +++ b/models/corners/ff.spice
@@ -23,5 +23,8 @@ .include "../../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__ff_discrete.corner.spice" .include "../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__ff.corner.spice" .include "ff/nonfet.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../all.spice" .include "ff/rf.spice"
diff --git a/models/corners/ff/discrete.spice b/models/corners/ff/discrete.spice index 2ab94e3..c487925 100644 --- a/models/corners/ff/discrete.spice +++ b/models/corners/ff/discrete.spice
@@ -23,5 +23,8 @@ .include "../../../cells/nfet_g5v0d10v5/sky130_fd_pr__nfet_g5v0d10v5__mismatch.corner.spice" .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__ff.corner.spice" .include "nonfet.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/ff/subvtmm.spice b/models/corners/ff/subvtmm.spice index a433fe9..1031959 100644 --- a/models/corners/ff/subvtmm.spice +++ b/models/corners/ff/subvtmm.spice
@@ -23,5 +23,8 @@ .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__ff.corner.spice" .include "nonfet.spice" .include "../../../cells/nfet_01v8_lvt/sky130_fd_pr__nfet_01v8_lvt__subvt_mismatch.corner.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/fs.spice b/models/corners/fs.spice index 01d5625..55900ae 100644 --- a/models/corners/fs.spice +++ b/models/corners/fs.spice
@@ -23,5 +23,8 @@ .include "../../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__fs_discrete.corner.spice" .include "../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__fs.corner.spice" .include "fs/nonfet.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice" .include "../all.spice" .include "fs/rf.spice"
diff --git a/models/corners/fs/discrete.spice b/models/corners/fs/discrete.spice index dcb5f63..ee4b294 100644 --- a/models/corners/fs/discrete.spice +++ b/models/corners/fs/discrete.spice
@@ -23,5 +23,8 @@ .include "../../../cells/nfet_g5v0d10v5/sky130_fd_pr__nfet_g5v0d10v5__mismatch.corner.spice" .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__fs.corner.spice" .include "nonfet.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/fs/subvtmm.spice b/models/corners/fs/subvtmm.spice index 0d8d32b..a522e56 100644 --- a/models/corners/fs/subvtmm.spice +++ b/models/corners/fs/subvtmm.spice
@@ -23,5 +23,8 @@ .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__fs.corner.spice" .include "nonfet.spice" .include "../../../cells/nfet_01v8_lvt/sky130_fd_pr__nfet_01v8_lvt__subvt_mismatch.corner.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/leak.spice b/models/corners/leak.spice index 32e88f9..7771f57 100644 --- a/models/corners/leak.spice +++ b/models/corners/leak.spice
@@ -23,5 +23,8 @@ .include "../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__leak.corner.spice" .include "../../cells/pfet_g5v0d16v0/sky130_fd_pr__pfet_g5v0d16v0__leak.corner.spice" .include "leak/nonfet.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__leak_discrete.corner.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__leak_discrete.corner.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../all.spice" .include "leak/rf.spice"
diff --git a/models/corners/leak/discrete.spice b/models/corners/leak/discrete.spice index e747a5c..b6e197e 100644 --- a/models/corners/leak/discrete.spice +++ b/models/corners/leak/discrete.spice
@@ -23,5 +23,8 @@ .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__leak.corner.spice" .include "../../../cells/pfet_g5v0d16v0/sky130_fd_pr__pfet_g5v0d16v0__leak.corner.spice" .include "nonfet.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__leak_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__leak_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/sf.spice b/models/corners/sf.spice index 52dab07..1bb1974 100644 --- a/models/corners/sf.spice +++ b/models/corners/sf.spice
@@ -23,5 +23,8 @@ .include "../../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__sf_discrete.corner.spice" .include "../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__sf.corner.spice" .include "sf/nonfet.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../all.spice" .include "sf/rf.spice"
diff --git a/models/corners/sf/discrete.spice b/models/corners/sf/discrete.spice index a010779..848cf7b 100644 --- a/models/corners/sf/discrete.spice +++ b/models/corners/sf/discrete.spice
@@ -23,5 +23,8 @@ .include "../../../cells/nfet_g5v0d10v5/sky130_fd_pr__nfet_g5v0d10v5__mismatch.corner.spice" .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__sf.corner.spice" .include "nonfet.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/sf/subvtmm.spice b/models/corners/sf/subvtmm.spice index 3efafa2..f247de1 100644 --- a/models/corners/sf/subvtmm.spice +++ b/models/corners/sf/subvtmm.spice
@@ -23,5 +23,8 @@ .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__sf.corner.spice" .include "nonfet.spice" .include "../../../cells/nfet_01v8_lvt/sky130_fd_pr__nfet_01v8_lvt__subvt_mismatch.corner.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__sf_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/ss.spice b/models/corners/ss.spice index 2ba0332..c86efb7 100644 --- a/models/corners/ss.spice +++ b/models/corners/ss.spice
@@ -23,5 +23,8 @@ .include "../../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__ss_discrete.corner.spice" .include "../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__ss.corner.spice" .include "ss/nonfet.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice" .include "../all.spice" .include "ss/rf.spice"
diff --git a/models/corners/ss/discrete.spice b/models/corners/ss/discrete.spice index 2f66beb..08ae461 100644 --- a/models/corners/ss/discrete.spice +++ b/models/corners/ss/discrete.spice
@@ -23,5 +23,8 @@ .include "../../../cells/nfet_g5v0d10v5/sky130_fd_pr__nfet_g5v0d10v5__mismatch.corner.spice" .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__ss.corner.spice" .include "nonfet.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/ss/subvtmm.spice b/models/corners/ss/subvtmm.spice index adedc3f..b6be5ab 100644 --- a/models/corners/ss/subvtmm.spice +++ b/models/corners/ss/subvtmm.spice
@@ -23,5 +23,8 @@ .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__ss.corner.spice" .include "nonfet.spice" .include "../../../cells/nfet_01v8_lvt/sky130_fd_pr__nfet_01v8_lvt__subvt_mismatch.corner.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/tt.spice b/models/corners/tt.spice index 1b005dc..9c40ddb 100644 --- a/models/corners/tt.spice +++ b/models/corners/tt.spice
@@ -23,5 +23,8 @@ .include "../../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__tt_discrete.corner.spice" .include "../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt.corner.spice" .include "tt/nonfet.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "../all.spice" .include "tt/rf.spice"
diff --git a/models/corners/tt/discrete.spice b/models/corners/tt/discrete.spice index ff14b33..3cd30e9 100644 --- a/models/corners/tt/discrete.spice +++ b/models/corners/tt/discrete.spice
@@ -23,5 +23,8 @@ .include "../../../cells/nfet_g5v0d10v5/sky130_fd_pr__nfet_g5v0d10v5__mismatch.corner.spice" .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt.corner.spice" .include "nonfet.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/tt/leak.spice b/models/corners/tt/leak.spice index f196e22..6bfad07 100644 --- a/models/corners/tt/leak.spice +++ b/models/corners/tt/leak.spice
@@ -23,5 +23,8 @@ .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt_leak.corner.spice" .include "../../../cells/pfet_g5v0d16v0/sky130_fd_pr__pfet_g5v0d16v0__tt_leak.corner.spice" .include "nonfet.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "../../all.spice" .include "leakrf.spice"
diff --git a/models/corners/tt/subvtmm.spice b/models/corners/tt/subvtmm.spice index da63d6c..f28b249 100644 --- a/models/corners/tt/subvtmm.spice +++ b/models/corners/tt/subvtmm.spice
@@ -23,5 +23,8 @@ .include "../../../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt.corner.spice" .include "nonfet.spice" .include "../../../cells/nfet_01v8_lvt/sky130_fd_pr__nfet_01v8_lvt__subvt_mismatch.corner.spice" +.include "../../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "../../all.spice" .include "rf.spice"
diff --git a/models/corners/wafer.spice b/models/corners/wafer.spice index 4b9fbe5..926db70 100644 --- a/models/corners/wafer.spice +++ b/models/corners/wafer.spice
@@ -23,5 +23,8 @@ .include "../../cells/nfet_05v0_nvt/sky130_fd_pr__nfet_05v0_nvt__wafer.corner.spice" .include "../../cells/nfet_05v0_nvt/sky130_fd_pr__nfet_05v0_nvt__mismatch.corner.spice" .include "wafer/nonfet.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__sf_discrete.corner.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__fs_discrete.corner.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__fs_discrete.corner.spice" .include "../all.spice" .include "wafer/rf.spice"
diff --git a/models/correl1.spice b/models/correl1.spice index 49b52cf..ee8dadb 100644 --- a/models/correl1.spice +++ b/models/correl1.spice
@@ -23,6 +23,9 @@ .include "../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__tt_discrete.corner.spice" .include "../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt.corner.spice" .include "corners/tt/nonfet.spice" +.include "../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "all.spice" * RF MOS Parameters: Correlation follows the same factors as Analog models .include "../cells/rf_nfet_01v8/sky130_fd_pr__rf_nfet_01v8_b__tt_correln.corner.spice"
diff --git a/models/correl2.spice b/models/correl2.spice index 9e637a6..29f41b7 100644 --- a/models/correl2.spice +++ b/models/correl2.spice
@@ -23,6 +23,9 @@ .include "../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__tt_discrete.corner.spice" .include "../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt.corner.spice" .include "corners/tt/nonfet.spice" +.include "../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "all.spice" * RF MOS Parameters: Correlation follows the same factors as Analog models .include "../cells/rf_nfet_01v8/sky130_fd_pr__rf_nfet_01v8_b__tt_correlp.corner.spice"
diff --git a/models/correl3.spice b/models/correl3.spice index ba0edb8..9b95861 100644 --- a/models/correl3.spice +++ b/models/correl3.spice
@@ -23,6 +23,9 @@ .include "../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__tt_discrete.corner.spice" .include "../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt.corner.spice" .include "corners/tt/nonfet.spice" +.include "../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "all.spice" * RF MOS Parameters: Correlation follows the same factors as Analog models .include "../cells/rf_nfet_01v8/sky130_fd_pr__rf_nfet_01v8_b__tt_correln.corner.spice"
diff --git a/models/correl4.spice b/models/correl4.spice index 7333b0f..7184709 100644 --- a/models/correl4.spice +++ b/models/correl4.spice
@@ -23,6 +23,9 @@ .include "../cells/nfet_g5v0d16v0/sky130_fd_pr__nfet_g5v0d16v0__tt_discrete.corner.spice" .include "../cells/esd_nfet_g5v0d10v5/sky130_fd_pr__esd_nfet_g5v0d10v5__tt.corner.spice" .include "corners/tt/nonfet.spice" +.include "../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice" .include "all.spice" * RF MOS Parameters: Correlation follows the same factors as Analog models .include "../cells/rf_nfet_01v8/sky130_fd_pr__rf_nfet_01v8_b__tt_correlp.corner.spice"
diff --git a/models/custom.spice b/models/custom.spice index 5de52f0..23f83d9 100644 --- a/models/custom.spice +++ b/models/custom.spice
@@ -25,3 +25,6 @@ .include "../cells/nfet_03v3_nvt/sky130_fd_pr__nfet_03v3_nvt__mismatch.corner.spice" .include "all.spice" .include "corners/tt/rf.spice" +.include "../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__tt_discrete.corner.spice" +.include "../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__tt_discrete.corner.spice" +.include "../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__tt_discrete.corner.spice"
diff --git a/models/parameters/critical.spice b/models/parameters/critical.spice index a187aa1..20c0655 100644 --- a/models/parameters/critical.spice +++ b/models/parameters/critical.spice
@@ -47,6 +47,16 @@ .param lvp_threshold = 0.0 .param lvtox = 0.0 .param mim = 0.0 +.param hvntvn_threshold = 0.0 +.param sky130_fd_pr__nfet_20v0_nvt = 0.0 +.param sky130_fd_pr__nfet_20v0_nvt_iso = 0.0 +.param sky130_fd_pr__nfet_20v0 = 0.0 +.param sky130_fd_pr__nfet_20v0_iso = 0.0 +.param n20zvtvh1defet = 0.0 +.param sky130_fd_pr__nfet_20v0_zvt = 0.0 +.param ndiff_cd = 0.0 +.param sky130_fd_pr__pfet_20v0 = 0.0 +.param pdiff_cd = 0.0 .param sky130_fd_pr__nfet_01v8_lvt = 0.0 .param sky130_fd_pr__special_nfet_pass_lvt = 0.0 .param sky130_fd_pr__npn_05v5_all = 0.0 @@ -106,6 +116,16 @@ * vary lvp_threshold dist=gauss std=1.0 * vary lvtox dist=gauss std=1.1 * vary mim dist=gauss std=1.0 +* vary hvntvn_threshold dist=gauss std=1.0 +* vary sky130_fd_pr__nfet_20v0_nvt dist=gauss std=1.0 +* vary sky130_fd_pr__nfet_20v0_nvt_iso dist=gauss std=1.0 +* vary sky130_fd_pr__nfet_20v0 dist=gauss std=1.0 +* vary sky130_fd_pr__nfet_20v0_iso dist=gauss std=1.0 +* vary n20zvtvh1defet dist=gauss std=1.0 +* vary sky130_fd_pr__nfet_20v0_zvt dist=gauss std=1.0 +* vary ndiff_cd dist=gauss std=1.5 +* vary sky130_fd_pr__pfet_20v0 dist=gauss std=1.0 +* vary pdiff_cd dist=gauss std=1.5 * vary sky130_fd_pr__nfet_01v8_lvt dist=gauss std=1.0 * vary sky130_fd_pr__special_nfet_pass_lvt dist=gauss std=1.0 * vary sky130_fd_pr__npn_05v5_all dist=gauss std=1.0
diff --git a/models/parameters/invariant.spice b/models/parameters/invariant.spice index 67b3c80..49f89a5 100644 --- a/models/parameters/invariant.spice +++ b/models/parameters/invariant.spice
@@ -6988,3 +6988,353 @@ + sky130_fd_bs_flash__special_sonosfet_original__vth0_slope = 0.026 + sky130_fd_bs_flash__special_sonosfet_original__wint_diff = 0.0 + sonos_peol_dlc_rotweak = hv_dlc_rotweak ++ sky130_fd_pr__nfet_20v0_nvt__reverse_tmax = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt__reverse_vds = '-0.01' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vbd_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vbd_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vbs_1 = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vds_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vds_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vgb_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vgb_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vgd_1 = 'sky130_fd_pr__nfet_20v0_nvt__tmax_vds_1' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vgd_2 = 'sky130_fd_pr__nfet_20v0_nvt__tmax_vds_2' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vgs_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt__tmax_vgs_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_max = 'sky130_fd_pr__nfet_20v0_nvt__vbs_max' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_max_1 = 'sky130_fd_pr__nfet_20v0_nvt__vbs_max' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_max_2 = 'sky130_fd_pr__nfet_20v0_nvt__vbs_max' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_min = 'sky130_fd_pr__nfet_20v0_nvt__vbs_min - sky130_fd_pr__nfet_20v0_nvt__vds_max' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_min_1 = 'sky130_fd_pr__nfet_20v0_nvt__vbs_min - sky130_fd_pr__nfet_20v0_nvt__vds_max_1' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_min_2 = 'sky130_fd_pr__nfet_20v0_nvt__vbs_min - sky130_fd_pr__nfet_20v0_nvt__vds_max_2' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_reversemax = '0.501' ++ sky130_fd_pr__nfet_20v0_nvt__vbd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_nvt__vbs_max = '0.001' ++ sky130_fd_pr__nfet_20v0_nvt__vbs_max_1 = '0.001' ++ sky130_fd_pr__nfet_20v0_nvt__vbs_min = '-2.501' ++ sky130_fd_pr__nfet_20v0_nvt__vbs_min_1 = '-2.501' ++ sky130_fd_pr__nfet_20v0_nvt__vds_max = '36' ++ sky130_fd_pr__nfet_20v0_nvt__vds_max_1 = '24.501' ++ sky130_fd_pr__nfet_20v0_nvt__vds_max_2 = '30.001' ++ sky130_fd_pr__nfet_20v0_nvt__vds_min = '-0.001' ++ sky130_fd_pr__nfet_20v0_nvt__vds_min_1 = '-0.001' ++ sky130_fd_pr__nfet_20v0_nvt__vds_min_2 = '-0.001' ++ sky130_fd_pr__nfet_20v0_nvt__vgb_max = 'sky130_fd_pr__nfet_20v0_nvt__vgs_max - sky130_fd_pr__nfet_20v0_nvt__vbs_min' ++ sky130_fd_pr__nfet_20v0_nvt__vgb_max_1 = 'sky130_fd_pr__nfet_20v0_nvt__vgs_max_1 - sky130_fd_pr__nfet_20v0_nvt__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_nvt__vgb_max_2 = 'sky130_fd_pr__nfet_20v0_nvt__vgs_max_2 - sky130_fd_pr__nfet_20v0_nvt__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_nvt__vgb_min = '-1*sky130_fd_pr__nfet_20v0_nvt__vgs_max' ++ sky130_fd_pr__nfet_20v0_nvt__vgb_min_1 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_nvt__vgb_min_2 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_max = 'sky130_fd_pr__nfet_20v0_nvt__vgs_max' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_max_1 = 'sky130_fd_pr__nfet_20v0_nvt__vgs_max_1' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_max_2 = 'sky130_fd_pr__nfet_20v0_nvt__vgs_max_2' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_min = '-1*sky130_fd_pr__nfet_20v0_nvt__vds_max' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_min_1 = '-1*sky130_fd_pr__nfet_20v0_nvt__vds_max_1' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_min_2 = '-1*sky130_fd_pr__nfet_20v0_nvt__vds_max_2' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_reversemax_1 = '0.101' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_nvt__vgd_reversemin_1 = '-0.101' ++ sky130_fd_pr__nfet_20v0_nvt__vgs_max = '6.501' ++ sky130_fd_pr__nfet_20v0_nvt__vgs_max_1 = '5.751' ++ sky130_fd_pr__nfet_20v0_nvt__vgs_max_2 = '6.001' ++ sky130_fd_pr__nfet_20v0_nvt__vgs_min = '-1*6.501' ++ sky130_fd_pr__nfet_20v0_nvt__vgs_min_1 = '-1*5.751' ++ sky130_fd_pr__nfet_20v0_nvt__vgs_min_2 = '-1*6.001' ++ sky130_fd_pr__nfet_20v0_nvt__vsd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_nvt__vsd_reversemin = '-0.501' ++ sky130_fd_pr__nfet_20v0_nvt__vtx = '0.020' ++ sky130_fd_pr__nfet_20v0_nvt_iso__k2_diff = -0.11937 ++ sky130_fd_pr__nfet_20v0_nvt_iso__reverse_tmax = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__reverse_vds = '-0.01' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vbd_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vbd_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vbs_1 = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vds_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vds_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vgb_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vgb_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vgd_1 = 'sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vds_1' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vgd_2 = 'sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vds_2' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vgs_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__tmax_vgs_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_max = 'sky130_fd_pr__nfet_20v0_nvt_iso__vbs_max' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_max_1 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vbs_max' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_max_2 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vbs_max' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_min = 'sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min - sky130_fd_pr__nfet_20v0_nvt_iso__vds_max' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_min_1 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min - sky130_fd_pr__nfet_20v0_nvt_iso__vds_max_1' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_min_2 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min - sky130_fd_pr__nfet_20v0_nvt_iso__vds_max_2' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_reversemax = '0.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbs_max = '0.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbs_max_1 = '0.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min = '-2.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min_1 = '-2.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vds_max = '22.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vds_max_1 = '22.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vds_max_2 = '22.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vds_min = '-0.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vds_min_1 = '-0.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vds_min_2 = '-0.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgb_max = 'sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max - sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgb_max_1 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max_1 - sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgb_max_2 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max_2 - sky130_fd_pr__nfet_20v0_nvt_iso__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgb_min = '-1*sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgb_min_1 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgb_min_2 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_max = 'sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_max_1 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max_1' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_max_2 = 'sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max_2' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_min = '-1*sky130_fd_pr__nfet_20v0_nvt_iso__vds_max' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_min_1 = '-1*sky130_fd_pr__nfet_20v0_nvt_iso__vds_max_1' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_min_2 = '-1*sky130_fd_pr__nfet_20v0_nvt_iso__vds_max_2' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_reversemax_1 = '0.101' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgd_reversemin_1 = '-0.101' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max = '6.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max_1 = '5.751' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgs_max_2 = '6.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgs_min = '-1*6.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgs_min_1 = '-1*5.751' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vgs_min_2 = '-1*6.001' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vsd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vsd_reversemin = '-0.501' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vtx = '0.02' ++ sky130_fd_pr__nfet_20v0__reverse_tmax = '20.001n' ++ sky130_fd_pr__nfet_20v0__reverse_vds = '-0.01' ++ sky130_fd_pr__nfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__nfet_20v0__tmax_vbd_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vbd_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vbs_1 = '20.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vds_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vds_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vgb_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vgb_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vgd_1 = 'sky130_fd_pr__nfet_20v0__tmax_vds_1' ++ sky130_fd_pr__nfet_20v0__tmax_vgd_2 = 'sky130_fd_pr__nfet_20v0__tmax_vds_2' ++ sky130_fd_pr__nfet_20v0__tmax_vgs_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0__tmax_vgs_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0__vbd_max = 'sky130_fd_pr__nfet_20v0__vbs_max' ++ sky130_fd_pr__nfet_20v0__vbd_max_1 = 'sky130_fd_pr__nfet_20v0__vbs_max' ++ sky130_fd_pr__nfet_20v0__vbd_max_2 = 'sky130_fd_pr__nfet_20v0__vbs_max' ++ sky130_fd_pr__nfet_20v0__vbd_min = 'sky130_fd_pr__nfet_20v0__vbs_min - sky130_fd_pr__nfet_20v0__vds_max' ++ sky130_fd_pr__nfet_20v0__vbd_min_1 = 'sky130_fd_pr__nfet_20v0__vbs_min - sky130_fd_pr__nfet_20v0__vds_max_1' ++ sky130_fd_pr__nfet_20v0__vbd_min_2 = 'sky130_fd_pr__nfet_20v0__vbs_min - sky130_fd_pr__nfet_20v0__vds_max_2' ++ sky130_fd_pr__nfet_20v0__vbd_reversemax = '0.501' ++ sky130_fd_pr__nfet_20v0__vbd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0__vbs_max = '0.001' ++ sky130_fd_pr__nfet_20v0__vbs_max_1 = '0.001' ++ sky130_fd_pr__nfet_20v0__vbs_min = '-2.501' ++ sky130_fd_pr__nfet_20v0__vbs_min_1 = '-2.501' ++ sky130_fd_pr__nfet_20v0__vds_max = '36' ++ sky130_fd_pr__nfet_20v0__vds_max_1 = '24.501' ++ sky130_fd_pr__nfet_20v0__vds_max_2 = '30.001' ++ sky130_fd_pr__nfet_20v0__vds_min = '-0.001' ++ sky130_fd_pr__nfet_20v0__vds_min_1 = '-0.001' ++ sky130_fd_pr__nfet_20v0__vds_min_2 = '-0.001' ++ sky130_fd_pr__nfet_20v0__vgb_max = 'sky130_fd_pr__nfet_20v0__vgs_max - sky130_fd_pr__nfet_20v0__vbs_min' ++ sky130_fd_pr__nfet_20v0__vgb_max_1 = 'sky130_fd_pr__nfet_20v0__vgs_max_1 - sky130_fd_pr__nfet_20v0__vbs_min_1' ++ sky130_fd_pr__nfet_20v0__vgb_max_2 = 'sky130_fd_pr__nfet_20v0__vgs_max_2 - sky130_fd_pr__nfet_20v0__vbs_min_1' ++ sky130_fd_pr__nfet_20v0__vgb_min = '-1*sky130_fd_pr__nfet_20v0__vgs_max' ++ sky130_fd_pr__nfet_20v0__vgb_min_1 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0__vgb_min_2 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0__vgd_max = 'sky130_fd_pr__nfet_20v0__vgs_max' ++ sky130_fd_pr__nfet_20v0__vgd_max_1 = 'sky130_fd_pr__nfet_20v0__vgs_max_1' ++ sky130_fd_pr__nfet_20v0__vgd_max_2 = 'sky130_fd_pr__nfet_20v0__vgs_max_2' ++ sky130_fd_pr__nfet_20v0__vgd_min = '-1*sky130_fd_pr__nfet_20v0__vds_max' ++ sky130_fd_pr__nfet_20v0__vgd_min_1 = '-1*sky130_fd_pr__nfet_20v0__vds_max_1' ++ sky130_fd_pr__nfet_20v0__vgd_min_2 = '-1*sky130_fd_pr__nfet_20v0__vds_max_2' ++ sky130_fd_pr__nfet_20v0__vgd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0__vgd_reversemax_1 = '0.101' ++ sky130_fd_pr__nfet_20v0__vgd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0__vgd_reversemin_1 = '-0.101' ++ sky130_fd_pr__nfet_20v0__vgs_max = '6.501' ++ sky130_fd_pr__nfet_20v0__vgs_max_1 = '5.751' ++ sky130_fd_pr__nfet_20v0__vgs_max_2 = '6.001' ++ sky130_fd_pr__nfet_20v0__vgs_min = '-1*6.501' ++ sky130_fd_pr__nfet_20v0__vgs_min_1 = '-1*5.751' ++ sky130_fd_pr__nfet_20v0__vgs_min_2 = '-1*6.001' ++ sky130_fd_pr__nfet_20v0__vsd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0__vsd_reversemin = '-0.501' ++ sky130_fd_pr__nfet_20v0__vtx = '0.623' ++ sky130_fd_pr__nfet_20v0_iso__reverse_tmax = '20.001n' ++ sky130_fd_pr__nfet_20v0_iso__reverse_vds = '-0.01' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vbd_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vbd_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vbs_1 = '20.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vds_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vds_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vgb_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vgb_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vgd_1 = 'sky130_fd_pr__nfet_20v0_iso__tmax_vds_1' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vgd_2 = 'sky130_fd_pr__nfet_20v0_iso__tmax_vds_2' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vgs_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_iso__tmax_vgs_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_iso__vbd_max = 'sky130_fd_pr__nfet_20v0_iso__vbs_max' ++ sky130_fd_pr__nfet_20v0_iso__vbd_max_1 = 'sky130_fd_pr__nfet_20v0_iso__vbs_max' ++ sky130_fd_pr__nfet_20v0_iso__vbd_max_2 = 'sky130_fd_pr__nfet_20v0_iso__vbs_max' ++ sky130_fd_pr__nfet_20v0_iso__vbd_min = 'sky130_fd_pr__nfet_20v0_iso__vbs_min - sky130_fd_pr__nfet_20v0_iso__vds_max' ++ sky130_fd_pr__nfet_20v0_iso__vbd_min_1 = 'sky130_fd_pr__nfet_20v0_iso__vbs_min - sky130_fd_pr__nfet_20v0_iso__vds_max_1' ++ sky130_fd_pr__nfet_20v0_iso__vbd_min_2 = 'sky130_fd_pr__nfet_20v0_iso__vbs_min - sky130_fd_pr__nfet_20v0_iso__vds_max_2' ++ sky130_fd_pr__nfet_20v0_iso__vbd_reversemax = '0.501' ++ sky130_fd_pr__nfet_20v0_iso__vbd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_iso__vbs_max = '0.001' ++ sky130_fd_pr__nfet_20v0_iso__vbs_max_1 = '0.001' ++ sky130_fd_pr__nfet_20v0_iso__vbs_min = '-2.501' ++ sky130_fd_pr__nfet_20v0_iso__vbs_min_1 = '-2.501' ++ sky130_fd_pr__nfet_20v0_iso__vds_max = '22.501' ++ sky130_fd_pr__nfet_20v0_iso__vds_max_1 = '22.001' ++ sky130_fd_pr__nfet_20v0_iso__vds_max_2 = '22.001' ++ sky130_fd_pr__nfet_20v0_iso__vds_min = '-0.001' ++ sky130_fd_pr__nfet_20v0_iso__vds_min_1 = '-0.001' ++ sky130_fd_pr__nfet_20v0_iso__vds_min_2 = '-0.001' ++ sky130_fd_pr__nfet_20v0_iso__vgb_max = 'sky130_fd_pr__nfet_20v0_iso__vgs_max - sky130_fd_pr__nfet_20v0_iso__vbs_min' ++ sky130_fd_pr__nfet_20v0_iso__vgb_max_1 = 'sky130_fd_pr__nfet_20v0_iso__vgs_max_1 - sky130_fd_pr__nfet_20v0_iso__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_iso__vgb_max_2 = 'sky130_fd_pr__nfet_20v0_iso__vgs_max_2 - sky130_fd_pr__nfet_20v0_iso__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_iso__vgb_min = '-1*sky130_fd_pr__nfet_20v0_iso__vgs_max' ++ sky130_fd_pr__nfet_20v0_iso__vgb_min_1 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_iso__vgb_min_2 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_iso__vgd_max = 'sky130_fd_pr__nfet_20v0_iso__vgs_max' ++ sky130_fd_pr__nfet_20v0_iso__vgd_max_1 = 'sky130_fd_pr__nfet_20v0_iso__vgs_max_1' ++ sky130_fd_pr__nfet_20v0_iso__vgd_max_2 = 'sky130_fd_pr__nfet_20v0_iso__vgs_max_2' ++ sky130_fd_pr__nfet_20v0_iso__vgd_min = '-1*sky130_fd_pr__nfet_20v0_iso__vds_max' ++ sky130_fd_pr__nfet_20v0_iso__vgd_min_1 = '-1*sky130_fd_pr__nfet_20v0_iso__vds_max_1' ++ sky130_fd_pr__nfet_20v0_iso__vgd_min_2 = '-1*sky130_fd_pr__nfet_20v0_iso__vds_max_2' ++ sky130_fd_pr__nfet_20v0_iso__vgd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_iso__vgd_reversemax_1 = '0.101' ++ sky130_fd_pr__nfet_20v0_iso__vgd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_iso__vgd_reversemin_1 = '-0.101' ++ sky130_fd_pr__nfet_20v0_iso__vgs_max = '6.501' ++ sky130_fd_pr__nfet_20v0_iso__vgs_max_1 = '5.751' ++ sky130_fd_pr__nfet_20v0_iso__vgs_max_2 = '6.001' ++ sky130_fd_pr__nfet_20v0_iso__vgs_min = '-1*6.501' ++ sky130_fd_pr__nfet_20v0_iso__vgs_min_1 = '-1*5.751' ++ sky130_fd_pr__nfet_20v0_iso__vgs_min_2 = '-1*6.001' ++ sky130_fd_pr__nfet_20v0_iso__vsd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_iso__vsd_reversemin = '-0.501' ++ sky130_fd_pr__nfet_20v0_iso__vtx = '0.617' ++ sky130_fd_pr__nfet_20v0_zvt__hvvsat_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_zvt__k2_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__lint_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__reverse_tmax = '20.001n' ++ sky130_fd_pr__nfet_20v0_zvt__reverse_vds = '-0.01' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vbd_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vbd_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vbs_1 = '20.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vds_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vds_2 = '25.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vgb_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vgb_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vgd_1 = 'sky130_fd_pr__nfet_20v0_zvt__tmax_vds_1' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vgd_2 = 'sky130_fd_pr__nfet_20v0_zvt__tmax_vds_2' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vgs_1 = '100.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vgs_2 = '20.001n' ++ sky130_fd_pr__nfet_20v0_zvt__tmax_vgs_model01 = '0.001n' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_max = 'sky130_fd_pr__nfet_20v0_zvt__vbs_max' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_max_1 = 'sky130_fd_pr__nfet_20v0_zvt__vbs_max' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_max_2 = 'sky130_fd_pr__nfet_20v0_zvt__vbs_max' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_min = 'sky130_fd_pr__nfet_20v0_zvt__vbs_min - sky130_fd_pr__nfet_20v0_zvt__vds_max' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_min_1 = 'sky130_fd_pr__nfet_20v0_zvt__vbs_min - sky130_fd_pr__nfet_20v0_zvt__vds_max_1' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_min_2 = 'sky130_fd_pr__nfet_20v0_zvt__vbs_min - sky130_fd_pr__nfet_20v0_zvt__vds_max_2' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_reversemax = '0.501' ++ sky130_fd_pr__nfet_20v0_zvt__vbd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_zvt__vbs_max = '0.001' ++ sky130_fd_pr__nfet_20v0_zvt__vbs_max_1 = '0.001' ++ sky130_fd_pr__nfet_20v0_zvt__vbs_min = '-2.501' ++ sky130_fd_pr__nfet_20v0_zvt__vbs_min_1 = '-2.501' ++ sky130_fd_pr__nfet_20v0_zvt__vds_max = '30.001' ++ sky130_fd_pr__nfet_20v0_zvt__vds_max_1 = '24.501' ++ sky130_fd_pr__nfet_20v0_zvt__vds_max_2 = '28.001' ++ sky130_fd_pr__nfet_20v0_zvt__vds_max_model01 = '1*3.0' ++ sky130_fd_pr__nfet_20v0_zvt__vds_min = '-0.001' ++ sky130_fd_pr__nfet_20v0_zvt__vds_min_1 = '-0.001' ++ sky130_fd_pr__nfet_20v0_zvt__vds_min_2 = '-0.001' ++ sky130_fd_pr__nfet_20v0_zvt__vds_min_model01 = '-1*3.0' ++ sky130_fd_pr__nfet_20v0_zvt__vgb_max = 'sky130_fd_pr__nfet_20v0_zvt__vgs_max - sky130_fd_pr__nfet_20v0_zvt__vbs_min' ++ sky130_fd_pr__nfet_20v0_zvt__vgb_max_1 = 'sky130_fd_pr__nfet_20v0_zvt__vgs_max_1 - sky130_fd_pr__nfet_20v0_zvt__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_zvt__vgb_max_2 = 'sky130_fd_pr__nfet_20v0_zvt__vgs_max_2 - sky130_fd_pr__nfet_20v0_zvt__vbs_min_1' ++ sky130_fd_pr__nfet_20v0_zvt__vgb_min = '-1*sky130_fd_pr__nfet_20v0_zvt__vgs_max' ++ sky130_fd_pr__nfet_20v0_zvt__vgb_min_1 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_zvt__vgb_min_2 = '0 - 2.5' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_max = 'sky130_fd_pr__nfet_20v0_zvt__vgs_max' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_max_1 = 'sky130_fd_pr__nfet_20v0_zvt__vgs_max_1' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_max_2 = 'sky130_fd_pr__nfet_20v0_zvt__vgs_max_2' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_min = '-1*sky130_fd_pr__nfet_20v0_zvt__vds_max' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_min_1 = '-1*sky130_fd_pr__nfet_20v0_zvt__vds_max_1' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_min_2 = '-1*sky130_fd_pr__nfet_20v0_zvt__vds_max_2' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_reversemax_1 = '0.101' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_reversemin = '-5.501' ++ sky130_fd_pr__nfet_20v0_zvt__vgd_reversemin_1 = '-0.101' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_max = '6.501' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_max_1 = '5.751' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_max_2 = '6.001' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_max_model01 = '1*3.0' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_min = '-1*6.501' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_min_1 = '-1*5.751' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_min_2 = '-1*6.001' ++ sky130_fd_pr__nfet_20v0_zvt__vgs_min_model01 = '-1*3.0' ++ sky130_fd_pr__nfet_20v0_zvt__vsat_diff = 0.0 ++ sky130_fd_pr__nfet_20v0_zvt__vsd_reversemax = '5.501' ++ sky130_fd_pr__nfet_20v0_zvt__vsd_reversemin = '-0.501' ++ sky130_fd_pr__nfet_20v0_zvt__vtx = '-0.223' ++ sky130_fd_pr__pfet_20v0__agidl_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__k2_diff = 0.0 ++ sky130_fd_pr__pfet_20v0__reverse_tmax = '20.001n' ++ sky130_fd_pr__pfet_20v0__reverse_vds = '0.01' ++ sky130_fd_pr__pfet_20v0__rshn_mult = 1.0 ++ sky130_fd_pr__pfet_20v0__tmax_vbd_1 = '100.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vbd_2 = '25.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vbs_1 = '20.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vds_1 = '100.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vds_2 = '25.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vgb_1 = '100.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vgb_2 = '20.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vgd_1 = 'sky130_fd_pr__pfet_20v0__tmax_vds_1' ++ sky130_fd_pr__pfet_20v0__tmax_vgd_2 = 'sky130_fd_pr__pfet_20v0__tmax_vds_2' ++ sky130_fd_pr__pfet_20v0__tmax_vgs_1 = '100.001n' ++ sky130_fd_pr__pfet_20v0__tmax_vgs_2 = '20.001n' ++ sky130_fd_pr__pfet_20v0__vbd_max = 'sky130_fd_pr__pfet_20v0__vbs_max - sky130_fd_pr__pfet_20v0__vds_min' ++ sky130_fd_pr__pfet_20v0__vbd_max_1 = 'sky130_fd_pr__pfet_20v0__vbs_max - sky130_fd_pr__pfet_20v0__vds_min_1' ++ sky130_fd_pr__pfet_20v0__vbd_max_2 = 'sky130_fd_pr__pfet_20v0__vbs_max - sky130_fd_pr__pfet_20v0__vds_min_2' ++ sky130_fd_pr__pfet_20v0__vbd_min = 'sky130_fd_pr__pfet_20v0__vbs_min' ++ sky130_fd_pr__pfet_20v0__vbd_min_1 = 'sky130_fd_pr__pfet_20v0__vbs_min' ++ sky130_fd_pr__pfet_20v0__vbd_min_2 = 'sky130_fd_pr__pfet_20v0__vbs_min' ++ sky130_fd_pr__pfet_20v0__vbd_reversemax = '5.501' ++ sky130_fd_pr__pfet_20v0__vbd_reversemin = '-0.501' ++ sky130_fd_pr__pfet_20v0__vbs_max = '2.501' ++ sky130_fd_pr__pfet_20v0__vbs_max_1 = '2.501' ++ sky130_fd_pr__pfet_20v0__vbs_min = '-0.001' ++ sky130_fd_pr__pfet_20v0__vbs_min_1 = '-0.001' ++ sky130_fd_pr__pfet_20v0__vds_max = '0.01' ++ sky130_fd_pr__pfet_20v0__vds_max_1 = '0.01' ++ sky130_fd_pr__pfet_20v0__vds_max_2 = '0.01' ++ sky130_fd_pr__pfet_20v0__vds_min = '-28.001' ++ sky130_fd_pr__pfet_20v0__vds_min_1 = '-24.501' ++ sky130_fd_pr__pfet_20v0__vds_min_2 = '-24.501' ++ sky130_fd_pr__pfet_20v0__vgb_max = '-1*sky130_fd_pr__pfet_20v0__vgs_min' ++ sky130_fd_pr__pfet_20v0__vgb_max_1 = '0 + 1.0' ++ sky130_fd_pr__pfet_20v0__vgb_max_2 = '0 + 1.0' ++ sky130_fd_pr__pfet_20v0__vgb_min = 'sky130_fd_pr__pfet_20v0__vgs_min - sky130_fd_pr__pfet_20v0__vbs_max' ++ sky130_fd_pr__pfet_20v0__vgb_min_1 = 'sky130_fd_pr__pfet_20v0__vgs_min_1 - sky130_fd_pr__pfet_20v0__vbs_max_1' ++ sky130_fd_pr__pfet_20v0__vgb_min_2 = 'sky130_fd_pr__pfet_20v0__vgs_min_2 - sky130_fd_pr__pfet_20v0__vbs_max_1' ++ sky130_fd_pr__pfet_20v0__vgd_max = '-1*sky130_fd_pr__pfet_20v0__vds_min' ++ sky130_fd_pr__pfet_20v0__vgd_max_1 = '-1*sky130_fd_pr__pfet_20v0__vds_min_1' ++ sky130_fd_pr__pfet_20v0__vgd_max_2 = '-1*sky130_fd_pr__pfet_20v0__vds_min_2' ++ sky130_fd_pr__pfet_20v0__vgd_min = 'sky130_fd_pr__pfet_20v0__vgs_min' ++ sky130_fd_pr__pfet_20v0__vgd_min_1 = 'sky130_fd_pr__pfet_20v0__vgs_min_1' ++ sky130_fd_pr__pfet_20v0__vgd_min_2 = 'sky130_fd_pr__pfet_20v0__vgs_min_2' ++ sky130_fd_pr__pfet_20v0__vgd_reversemax = '5.501' ++ sky130_fd_pr__pfet_20v0__vgd_reversemax_1 = '0.101' ++ sky130_fd_pr__pfet_20v0__vgd_reversemin = '-5.501' ++ sky130_fd_pr__pfet_20v0__vgd_reversemin_1 = '-0.101' ++ sky130_fd_pr__pfet_20v0__vgs_max = '-1*-6.501' ++ sky130_fd_pr__pfet_20v0__vgs_max_1 = '-1*-5.751' ++ sky130_fd_pr__pfet_20v0__vgs_max_2 = '-1*-6.001' ++ sky130_fd_pr__pfet_20v0__vgs_min = '-6.501' ++ sky130_fd_pr__pfet_20v0__vgs_min_1 = '-5.751' ++ sky130_fd_pr__pfet_20v0__vgs_min_2 = '-6.001' ++ sky130_fd_pr__pfet_20v0__vsd_reversemax = '0.501' ++ sky130_fd_pr__pfet_20v0__vsd_reversemin = '-5.501' ++ sky130_fd_pr__pfet_20v0__vtx = '-0.873'
diff --git a/models/parameters/montecarlo.spice b/models/parameters/montecarlo.spice index 5a5e029..5d5e676 100644 --- a/models/parameters/montecarlo.spice +++ b/models/parameters/montecarlo.spice
@@ -8975,6 +8975,36 @@ + mcrdlp1f_cf_w_1_200_s_1_260 = '-3.00000e-13*ic_cap*ic_cap+-1.75000e-13*ic_cap+3.80000e-11' + mcrdlp1f_cf_w_1_200_s_2_310 = '-3.15625e-13*ic_cap*ic_cap+-1.87500e-13*ic_cap+4.71000e-11' + mcrdlp1f_cf_w_1_200_s_5_250 = '-2.93750e-13*ic_cap*ic_cap+-1.75000e-13*ic_cap+5.35000e-11' ++ sky130_fd_pr__nfet_20v0_nvt__hvvsat_mult = '2.48546e-02*hvn_saturation*hvn_saturation+-5.96510e-02*hvn_saturation+1.00000e-18' ++ sky130_fd_pr__nfet_20v0_nvt__k2_diff = '2.67500e-04*hvn_bodyeffect*hvn_bodyeffect+-1.23650e-01' ++ sky130_fd_pr__nfet_20v0_nvt__rdrift_mult = '9.42313e-03*sky130_fd_pr__nfet_20v0_nvt*sky130_fd_pr__nfet_20v0_nvt+1.17758e-01*sky130_fd_pr__nfet_20v0_nvt+7.26100e-01' ++ sky130_fd_pr__nfet_20v0_nvt__vth0_diff = '1.63812e-04*hvntvn_threshold*hvntvn_threshold+3.39563e-02*hvntvn_threshold+3.06540e-02' ++ sky130_fd_pr__nfet_20v0_nvt_iso__hvvsat_mult = '2.48544e-02*hvn_saturation*hvn_saturation+-5.96505e-02*hvn_saturation+1.00000e-18' ++ sky130_fd_pr__nfet_20v0_nvt_iso__rdrift_mult = '2.07703e-02*sky130_fd_pr__nfet_20v0_nvt_iso*sky130_fd_pr__nfet_20v0_nvt_iso+1.69501e-01*sky130_fd_pr__nfet_20v0_nvt_iso+8.20770e-01' ++ sky130_fd_pr__nfet_20v0_nvt_iso__vth0_diff = '2.00325e-04*hvntvn_threshold*hvntvn_threshold+3.47038e-02*hvntvn_threshold+4.46980e-03' ++ sky130_fd_pr__nfet_20v0__ajunction_mult = '8.57188e-04*hvn_diode*hvn_diode+1.47809e-01*hvn_diode+9.95050e-01' ++ sky130_fd_pr__nfet_20v0__dlc_diff = '-4.33125e-09*poly_cd' ++ sky130_fd_pr__nfet_20v0__dwc_diff = '8.04375e-09*ndiff_cd' ++ sky130_fd_pr__nfet_20v0__hvvsat_mult = '1.77529e-02*hvn_saturation*hvn_saturation+-4.26070e-02*hvn_saturation+1.00000e-18' ++ sky130_fd_pr__nfet_20v0__k2_diff = '5.62500e-07*hvn_bodyeffect*hvn_bodyeffect+4.02000e-04*hvn_bodyeffect+-2.74000e-02' ++ sky130_fd_pr__nfet_20v0__lint_diff = '-4.33125e-09*poly_cd' ++ sky130_fd_pr__nfet_20v0__overlap_mult = '6.37187e-03*hvtox*hvtox+-2.25000e-01*hvtox+8.98050e-01' ++ sky130_fd_pr__nfet_20v0__pjunction_mult = '1.53313e-03*hvn_diode*hvn_diode+1.40267e-01*hvn_diode+1.01440e+00' ++ sky130_fd_pr__nfet_20v0__rdrift_mult = '1.18628e-02*sky130_fd_pr__nfet_20v0*sky130_fd_pr__nfet_20v0+1.65219e-01*sky130_fd_pr__nfet_20v0+9.69820e-01' ++ sky130_fd_pr__nfet_20v0__toxe_mult = '1.50000e-02*hvtox+1.00000e+00' ++ sky130_fd_pr__nfet_20v0__vth0_diff = '5.06875e-05*hvn_threshold*hvn_threshold+3.60338e-02*hvn_threshold+3.48240e-02' ++ sky130_fd_pr__nfet_20v0__wint_diff = '8.04375e-09*ndiff_cd' ++ sky130_fd_pr__nfet_20v0_iso__hvvsat_mult = '2.48546e-02*hvn_saturation*hvn_saturation+-5.96511e-02*hvn_saturation+1.00000e-18' ++ sky130_fd_pr__nfet_20v0_iso__k2_diff = '6.75000e-06*hvn_bodyeffect*hvn_bodyeffect+7.95000e-05*hvn_bodyeffect+-1.98730e-02' ++ sky130_fd_pr__nfet_20v0_iso__rdrift_mult = '2.61019e-02*sky130_fd_pr__nfet_20v0_iso*sky130_fd_pr__nfet_20v0_iso+2.62590e-01*sky130_fd_pr__nfet_20v0_iso+9.16610e-01' ++ sky130_fd_pr__nfet_20v0_iso__vth0_diff = '9.62000e-05*hvn_threshold*hvn_threshold+3.58925e-02*hvn_threshold+-1.23920e-03' ++ n20zvtvh1defet_js_mult_pmc = '2.81250e-01*n20zvtvh1defet*n20zvtvh1defet+-1.12500e+00*n20zvtvh1defet+1.00000e+00' ++ sky130_fd_pr__nfet_20v0_zvt__agidl_diff = '1.40625e-16*hvn_subvt*hvn_subvt+-5.62500e-16*hvn_subvt' ++ sky130_fd_pr__nfet_20v0_zvt__ags_diff = '4.64219e-02*hvn_saturation*hvn_saturation+1.85688e-01*hvn_saturation' ++ sky130_fd_pr__nfet_20v0_zvt__keta_diff = '5.85125e-03*hvn_bodyeffect*hvn_bodyeffect+2.34050e-02*hvn_bodyeffect' ++ sky130_fd_pr__nfet_20v0_zvt__rdrift_mult = '4.43304e-02*sky130_fd_pr__nfet_20v0_zvt*sky130_fd_pr__nfet_20v0_zvt+2.53678e-01*sky130_fd_pr__nfet_20v0_zvt+1.00000e+00' ++ sky130_fd_pr__nfet_20v0_zvt__u0_diff = '4.88469e-03*hvn_mobility*hvn_mobility+-1.95388e-02*hvn_mobility' ++ sky130_fd_pr__nfet_20v0_zvt__vth0_diff = '1.07719e-03*hvn_threshold*hvn_threshold+9.52125e-03*hvn_threshold' + sky130_fd_pr__nfet_g5v0d10v5__a0_diff_1 = '6.72069e-04*hvn_saturation*hvn_saturation+-2.19321e-02*hvn_saturation+-2.15260e-03' + sky130_fd_pr__nfet_g5v0d10v5__a0_diff_10 = '1.21613e-05*hvn_saturation*hvn_saturation+-8.96250e-04*hvn_saturation+-4.36880e-04' + sky130_fd_pr__nfet_g5v0d10v5__a0_diff_14 = '6.05656e-04*hvn_saturation*hvn_saturation+-1.46919e-02*hvn_saturation+-2.46390e-02' @@ -10736,6 +10766,17 @@ + sky130_fd_pr__nfet_g5v0d16v0__wint_diff = '8.04375e-09*diff_cd' + sky130_fd_pr__model__parasitic__diode_ps2nw__ajunction_mult = '6.93889e-18*well_diode*well_diode+4.81850e-02*well_diode+9.82860e-01' + sky130_fd_pr__model__parasitic__diode_ps2nw__pjunction_mult = '6.93889e-18*well_diode*well_diode+1.80650e-02*well_diode+9.89540e-01' ++ sky130_fd_pr__pfet_20v0__ajunction_mult = '3.10000e-04*hvp_diode*hvp_diode+1.81850e-02*hvp_diode+1.00000e+00' ++ sky130_fd_pr__pfet_20v0__dlc_diff = '2.17734e-09*poly_cd*poly_cd+-1.30406e-08*poly_cd' ++ sky130_fd_pr__pfet_20v0__dwc_diff = '8.04375e-09*pdiff_cd' ++ sky130_fd_pr__pfet_20v0__lint_diff = '-4.33125e-09*poly_cd' ++ sky130_fd_pr__pfet_20v0__overlap_mult = '1.85000e-02*hvtox*hvtox+2.99000e-01*hvtox+1.00000e+00' ++ sky130_fd_pr__pfet_20v0__pjunction_mult = '5.61250e-04*hvp_diode*hvp_diode+1.61550e-02*hvp_diode+1.00000e+00' ++ sky130_fd_pr__pfet_20v0__rdrift_mult = '6.55156e-03*sky130_fd_pr__pfet_20v0*sky130_fd_pr__pfet_20v0+6.84013e-02*sky130_fd_pr__pfet_20v0+9.17770e-01' ++ sky130_fd_pr__pfet_20v0__toxe_mult = '2.50000e-04*hvtox*hvtox+1.40000e-02*hvtox+1.00000e+00' ++ sky130_fd_pr__pfet_20v0__u0_diff = '1.20212e-04*hvp_mobility*hvp_mobility+-2.71625e-03*hvp_mobility+-1.24040e-03' ++ sky130_fd_pr__pfet_20v0__vth0_diff = '-2.11250e-05*hvp_threshold*hvp_threshold+-3.65555e-02*hvp_threshold+8.31760e-02' ++ sky130_fd_pr__pfet_20v0__wint_diff = '8.04375e-09*pdiff_cd' + sky130_fd_pr__pfet_01v8_hvt__a0_diff_10 = '2.52306e-04*lvhp_saturation*lvhp_saturation+-9.42350e-04*lvhp_saturation+1.92370e-03' + sky130_fd_pr__pfet_01v8_hvt__a0_diff_11 = '-2.81234e-04*lvhp_saturation*lvhp_saturation+2.32376e-03*lvhp_saturation+3.66080e-03' + sky130_fd_pr__pfet_01v8_hvt__a0_diff_12 = '-1.78934e-03*lvhp_saturation*lvhp_saturation+4.56022e-03*lvhp_saturation+4.63140e-03' @@ -12734,6 +12775,7 @@ .include "../capacitors/sky130_fd_pr__model__cap_vpp_only_pq.model.spice" .include "../../cells/cap_var_lvt/sky130_fd_pr__cap_var_lvt.model.spice" .include "../../cells/res_iso_pw/sky130_fd_pr__res_iso_pw.model.spice" +.include "../capacitors/sky130_fd_pr__model__cap_mim.model.spice" .include "../../cells/rf_nfet_g5v0d10v5/sky130_fd_pr__rf_nfet_g5v0d10v5.pm3.spice" .include "../../cells/rf_nfet_g5v0d10v5/sky130_fd_pr__rf_nfet_g5v0d10v5_b.pm3.spice" .include "../../cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt.pm3.spice" @@ -12745,3 +12787,9 @@ .include "../../cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8.pm3.spice" .include "../../cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_b.pm3.spice" .include "../sky130_fd_pr__model__r+c.model.spice" +.include "../../cells/nfet_20v0_nvt/sky130_fd_pr__nfet_20v0_nvt__subcircuit.pm3.spice" +.include "../../cells/nfet_20v0_nvt_iso/sky130_fd_pr__nfet_20v0_nvt_iso__subcircuit.pm3.spice" +.include "../../cells/nfet_20v0/sky130_fd_pr__nfet_20v0__subcircuit.pm3.spice" +.include "../../cells/nfet_20v0_iso/sky130_fd_pr__nfet_20v0_iso__subcircuit.pm3.spice" +.include "../../cells/nfet_20v0_zvt/sky130_fd_pr__nfet_20v0_zvt__subcircuit.pm3.spice" +.include "../../cells/pfet_20v0/sky130_fd_pr__pfet_20v0__subcircuit.pm3.spice"
diff --git a/models/parasitics/sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain.model.spice b/models/parasitics/sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain.model.spice new file mode 100644 index 0000000..6c577ce --- /dev/null +++ b/models/parasitics/sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain.model.spice
@@ -0,0 +1,66 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0__cjdnwpsubjunction_mult = 7.0510e-1 ++ sky130_fd_pr__nfet_20v0__mjdnwpsubjunction_mult = 1.6541 ++ sky130_fd_pr__nfet_20v0__pbdnwpsubjunction_mult = 1.4206 ++ sky130_fd_pr__nfet_20v0__vb = 40.0 +.model sky130_fd_pr__model__parasitic__diode_ps2dn__extended_drain d ++ level = 3.0 ++ tlevc = 1.0 ++ scalm = 1.0e-6 ++ area = 1.0e+12 +* Junction Capacitance Parameters ++ cj = '7.8544e-005*sky130_fd_pr__nfet_20v0__cjdnwpsubjunction_mult*1e-12*sky130_fd_pr__model__parasitic__diode_ps2dn__ajunction_mult' $ Units: farad/meter^2 ++ mj = '0.49*sky130_fd_pr__nfet_20v0__mjdnwpsubjunction_mult' ++ pb = '0.5348*sky130_fd_pr__nfet_20v0__pbdnwpsubjunction_mult' $ Units: volt ++ cjsw = '8.1664e-010*sky130_fd_pr__nfet_20v0__cjdnwpsubjunction_mult*1e-6*sky130_fd_pr__model__parasitic__diode_ps2dn__pjunction_mult' $ Units: farad/meter ++ mjsw = '0.20024*sky130_fd_pr__nfet_20v0__mjdnwpsubjunction_mult' ++ php = '0.5348*sky130_fd_pr__nfet_20v0__pbdnwpsubjunction_mult' $ Units: volt ++ cta = 0.0016157 $ Units: 1/coulomb ++ ctp = 0.0008 $ Units: 1/coulomb ++ tpb = 0.0025003 $ Units: volt/coulomb ++ tphp = 0.001675 $ Units: volt/coulomb +* Diode IV Parameters ++ js = 6.1049e-017 $ Units: amper/meter^2 ++ jsw = 8.1115e-016 $ Units: amper/meter ++ n = 1.0791 ++ rs = 900 $ Units: ohm (ohm/meter^2 if area defined) ++ ik = '2.08e-009/1e-12' $ Units: amper/meter^2 ++ ikr = '0/1e-12' $ Units: amper/meter^2 ++ vb = 'sky130_fd_pr__nfet_20v0__vb' $ Units: volt ++ ibv = 0.00106 $ Units: amper ++ trs = 0 $ Units: 1/coulomb ++ eg = 1.17 $ Units: electron-volt ++ xti = 1.0 ++ tref = 30 $ Units: coulomb +* Default Parameters ++ tcv = 0 $ Units: 1/coulomb ++ gap1 = 0.000473 $ Units: electron-volt/coulomb ++ gap2 = 1110.0 ++ ttt1 = 0 $ Units: 1/coulomb ++ ttt2 = 0 $ Units: 1/coulomb^2 ++ tm1 = 0 $ Units: 1/coulomb ++ tm2 = 0 $ Units: 1/coulomb^2 ++ lm = 0 $ Units: meter ++ lp = 0 $ Units: meter ++ wm = 0 $ Units: meter ++ wp = 0 $ Units: meter ++ xm = 0 $ Units: meter ++ xoi = 10000.0 ++ xom = 10000 $ Units: angstrom ++ xp = 0 $ Units: meter ++ xw = 0 $ Units: meter
diff --git a/models/parasitics/sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain.model.spice b/models/parasitics/sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain.model.spice new file mode 100644 index 0000000..a720142 --- /dev/null +++ b/models/parasitics/sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain.model.spice
@@ -0,0 +1,67 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +.param ++ sky130_fd_pr__nfet_20v0__nwgatejunction_mult=7.5058e-01 ++ sky130_fd_pr__nfet_20v0__nwgatemjswjunction_mult = 8.3390e-1 ++ sky130_fd_pr__nfet_20v0__nwgatepbswjunction_mult = 1.0204e+0 ++ sky130_fd_pr__nfet_20v0__nwgatectjunction_mult = 1.0 ++ sky130_fd_pr__nfet_20v0_iso__vb = 26.0 +.model sky130_fd_pr__model__parasitic__diode_pw2dn__extended_drain d ++ level = 3.0 ++ tlevc = 1.0 ++ scalm = 1.0e-6 ++ area = 1.0e+12 +* Junction Capacitance Parameters ++ cj = '0.00038945*sky130_fd_pr__nfet_20v0__nwgatejunction_mult*1e-12*sky130_fd_pr__model__parasitic__diode_pw2dn__ajunction_mult' $ Units: farad/meter^2 ++ mj = '0.63982*sky130_fd_pr__nfet_20v0__nwgatemjswjunction_mult' ++ pb = '0.58758*sky130_fd_pr__nfet_20v0__nwgatepbswjunction_mult' $ Units: volt ++ cjsw = '3.743e-010*sky130_fd_pr__nfet_20v0__nwgatejunction_mult*1e-6*sky130_fd_pr__model__parasitic__diode_pw2dn__pjunction_mult' $ Units: farad/meter ++ mjsw = '0.80357*sky130_fd_pr__nfet_20v0__nwgatemjswjunction_mult' ++ php = '0.2500*sky130_fd_pr__nfet_20v0__nwgatepbswjunction_mult' $ Units: volt ++ cta = '0.0016157*sky130_fd_pr__nfet_20v0__nwgatectjunction_mult' $ Units: 1/coulomb ++ ctp = '0.0008*sky130_fd_pr__nfet_20v0__nwgatectjunction_mult' $ Units: 1/coulomb ++ tpb = 0.0010003 $ Units: volt/coulomb ++ tphp = 0.000675 $ Units: volt/coulomb +* Diode IV Parameters ++ js = 1.4693e-017 $ Units: amper/meter^2 ++ jsw = 7.41e-018 $ Units: amper/meter ++ n = 1.0791 ++ rs = 900 $ Units: ohm (ohm/meter^2 if area defined) ++ ik = '2.08e-009/1e-12' $ Units: amper/meter^2 ++ ikr = '0/1e-12' $ Units: amper/meter^2 ++ vb = 'sky130_fd_pr__nfet_20v0_iso__vb' $ Units: volt ++ ibv = 0.00106 $ Units: amper ++ trs = 0 $ Units: 1/coulomb ++ xti = 3.0 ++ eg = 1.50 $ Units: electron-volt ++ tref = 30 $ Units: coulomb +* Default Parameters ++ tcv = 0 $ Units: 1/coulomb ++ gap1 = 0.000473 $ Units: electron-volt/coulomb ++ gap2 = 1110.0 ++ ttt1 = 0 $ Units: 1/coulomb ++ ttt2 = 0 $ Units: 1/coulomb^2 ++ tm1 = 0 $ Units: 1/coulomb ++ tm2 = 0 $ Units: 1/coulomb^2 ++ lm = 0 $ Units: meter ++ lp = 0 $ Units: meter ++ wm = 0 $ Units: meter ++ wp = 0 $ Units: meter ++ xm = 0 $ Units: meter ++ xoi = 10000.0 ++ xom = 10000 $ Units: angstrom ++ xp = 0 $ Units: meter ++ xw = 0 $ Units: meter
diff --git a/tech/sky130_fd_pr.tlef b/tech/sky130_fd_pr.tlef new file mode 100644 index 0000000..4aaaf46 --- /dev/null +++ b/tech/sky130_fd_pr.tlef
@@ -0,0 +1,867 @@ +# LEF technology file - generated from cadflow +# Creation date: Jul 5 2017 +# 12-21-18 KKEL added OVERLAP layer; added EDGECAPACITANCE, +# CAPACITANCE CPERSQDIST, RESISTANCE RPERSQ, +# DCCURRENTDENSITY AVERAGE, ACCURRENTDENSITY RMS +# for all relevant routing/cutlayers + +# Initilize top level parameters +VERSION 5.6 ; +BUSBITCHARS "[]" ; +DIVIDERCHAR "/" ; +UNITS + TIME NANOSECONDS 1 ; + CAPACITANCE PICOFARADS 1 ; + RESISTANCE OHMS 1 ; + DATABASE MICRONS 1000 ; +END UNITS +MANUFACTURINGGRID 0.005 ; + +#### end of header section ####### + +SITE unithd + SYMMETRY y ; + CLASS CORE ; + SIZE 0.460 BY 2.720 ; +END unithd + +SITE unit + SYMMETRY y ; + CLASS CORE ; + SIZE 0.480 BY 3.330 ; +END unit + +SITE unithv + SYMMETRY y ; + CLASS CORE ; + SIZE 0.480 BY 4.070 ; +END unithv + +###### Starting overlap layers ##### +# ******** Layer OverlapCheck, type blockage, number 90 ************** +LAYER OverlapCheck + TYPE OVERLAP ; +END OverlapCheck + +###### Starting routing layers - metal and via ##### +# ******** Layer li1, type routing, number 56 ************** +LAYER li1 + TYPE ROUTING ; + DIRECTION VERTICAL ; + PITCH 0.340000 ; + OFFSET 0.170000 ; + MINWIDTH 0.170000 ; + WIDTH 0.170000 ; + AREA 0.028900 ; + SPACING 0.170000 ; + THICKNESS 0.100000 ; + EDGECAPACITANCE 3.26 ; + CAPACITANCE CPERSQDIST 36900000 ; + RESISTANCE RPERSQ 12.2 ; +# DCCURRENTDENSITY AVERAGE (no limit on this layer) ; + ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 75.000000 ) ( 0.012500 75.000000 ) ( 0.022500 85.125000 ) ( 22.500000 10200.000000 ) ) ; +END li1 + +# ******** Layer mcon, type routing, number 35 ************** +LAYER mcon + TYPE CUT ; + SPACING 0.190000 ; + WIDTH 0.170000 ; + ANTENNADIFFAREARATIO PWL ( ( 0.000000 3.000000 ) ( 0.012500 3.000000 ) ( 0.022500 3.405000 ) ( 22.500000 408.000000 ) ) ; + DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC + ENCLOSURE BELOW 0.000000 0.000000 ; + ENCLOSURE ABOVE 0.000000 0.000000 ; +END mcon + +# ******** Layer met1, type routing, number 36 ************** +LAYER met1 + TYPE ROUTING ; + DIRECTION HORIZONTAL ; + PITCH 0.340000 ; + OFFSET 0.170000 ; + MINENCLOSEDAREA 0.140000 ; + MINWIDTH 0.140000 ; + WIDTH 0.140000 ; + AREA 0.083000 ; + SPACINGTABLE + PARALLELRUNLENGTH 0.000 + WIDTH 0.000 0.140000 + WIDTH 3.000000 0.280000 + ; + THICKNESS 0.350000 ; + EDGECAPACITANCE 1.79 ; + CAPACITANCE CPERSQDIST 25800000 ; + RESISTANCE RPERSQ 0.125 ; + DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC + ACCURRENTDENSITY RMS 6.1 FREQUENCY 1 ; # mA/um Irms_max at Tj = 90oC + ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ; +END met1 + +# ******** Layer via, type routing, number 40 ************** +LAYER via + TYPE CUT ; + SPACING 0.170000 ; + WIDTH 0.150000 ; + ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ; + DCCURRENTDENSITY AVERAGE 0.29 ; # mA per via Iavg_max at Tj = 90oC + ENCLOSURE BELOW 0.000000 0.000000 ; + ENCLOSURE ABOVE 0.000000 0.000000 ; +END via + +# ******** Layer met2, type routing, number 41 ************** +LAYER met2 + TYPE ROUTING ; + DIRECTION VERTICAL ; + PITCH 0.395000 ; + OFFSET 0.197500 ; + MINENCLOSEDAREA 0.140000 ; + MINWIDTH 0.140000 ; + WIDTH 0.140000 ; + AREA 0.067600 ; + SPACINGTABLE + PARALLELRUNLENGTH 0.000 + WIDTH 0.000 0.140000 + WIDTH 3.000000 0.280000 + ; + THICKNESS 0.350000 ; + EDGECAPACITANCE 1.22 ; + CAPACITANCE CPERSQDIST 17500000 ; + RESISTANCE RPERSQ 0.125 ; + DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC + ACCURRENTDENSITY RMS 6.1 FREQUENCY 1 ; # mA/um Irms_max at Tj = 90oC + ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ; +END met2 + +# ******** Layer via2, type routing, number 44 ************** +LAYER via2 + TYPE CUT ; + SPACING 0.200000 ; + WIDTH 0.200000 ; + ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ; + DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC + ENCLOSURE BELOW 0.000000 0.000000 ; + ENCLOSURE ABOVE 0.000000 0.000000 ; +END via2 + +# ******** Layer met3, type routing, number 34 ************** +LAYER met3 + TYPE ROUTING ; + DIRECTION HORIZONTAL ; + PITCH 0.640000 ; + OFFSET 0.320000 ; + MINWIDTH 0.300000 ; + WIDTH 0.300000 ; + AREA 0.240000 ; + SPACINGTABLE + PARALLELRUNLENGTH 0.000 + WIDTH 0.000 0.300000 + WIDTH 3.000000 0.400000 + ; + THICKNESS 0.800000 ; + EDGECAPACITANCE 1.86 ; + CAPACITANCE CPERSQDIST 12600000 ; + RESISTANCE RPERSQ 0.047 ; + DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC + ACCURRENTDENSITY RMS 14.9 FREQUENCY 1 ; # mA/um Irms_max at Tj = 90oC + ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ; +END met3 + +# ******** Layer via3, type routing, number 70 ************** +LAYER via3 + TYPE CUT ; + SPACING 0.200000 ; + WIDTH 0.200000 ; + ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ; + DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC + ENCLOSURE BELOW 0.000000 0.000000 ; + ENCLOSURE ABOVE 0.000000 0.000000 ; +END via3 + +# ******** Layer met4, type routing, number 71 ************** +LAYER met4 + TYPE ROUTING ; + DIRECTION VERTICAL ; + PITCH 1.040000 ; + OFFSET 0.520000 ; + MINWIDTH 0.300000 ; + WIDTH 0.300000 ; + AREA 0.240000 ; + SPACINGTABLE + PARALLELRUNLENGTH 0.000 + WIDTH 0.000 0.300000 + WIDTH 3.000000 0.400000 + ; + THICKNESS 0.800000 ; + EDGECAPACITANCE 1.29 ; + CAPACITANCE CPERSQDIST 8670000 ; + RESISTANCE RPERSQ 0.047 ; + DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC + ACCURRENTDENSITY RMS 14.9 FREQUENCY 1 ; # mA/um Irms_max at Tj = 90oC + ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ; +END met4 + +# ******** Layer via4, type routing, number 58 ************** +LAYER via4 + TYPE CUT ; + SPACING 0.800000 ; + WIDTH 0.800000 ; + ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ; + DCCURRENTDENSITY AVERAGE 2.49 ; # mA per via Iavg_max at Tj = 90oC + ENCLOSURE BELOW 0.000000 0.000000 ; + ENCLOSURE ABOVE 0.000000 0.000000 ; +END via4 + +# ******** Layer met5, type routing, number 72 ************** +LAYER met5 + TYPE ROUTING ; + DIRECTION HORIZONTAL ; + PITCH 3.200000 ; + OFFSET 1.600000 ; + MINWIDTH 1.600000 ; + WIDTH 1.600000 ; + AREA 2.560000 ; + SPACING 1.600000 ; + THICKNESS 1.200000 ; + EDGECAPACITANCE 4.96 ; + CAPACITANCE CPERSQDIST 6480000 ; + RESISTANCE RPERSQ 0.047 ; + DCCURRENTDENSITY AVERAGE 10.17 ; # mA/um Iavg_max at Tj = 90oC + ACCURRENTDENSITY RMS 22.34 FREQUENCY 1 ; # mA/um Irms_max at Tj = 90oC + ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ; +END met5 + +# ******** Layer rdlcon, type routing, number 37 ************** +LAYER rdlcon + TYPE CUT ; + SPACING 1.270000 ; + WIDTH 5.000000 ; + # EM rules not defined + ENCLOSURE BELOW 0.000000 0.000000 ; + ENCLOSURE ABOVE 0.000000 0.000000 ; +END rdlcon + +# ******** Layer rdl, type routing, number 74 ************** +LAYER rdl + TYPE ROUTING ; + DIRECTION VERTICAL ; + PITCH 20.000000 ; + OFFSET 10.000000 ; + MINWIDTH 10.000000 ; + WIDTH 10.000000 ; + AREA 100.000000 ; + SPACING 10.000000 ; + THICKNESS 2.000000 ; + EDGECAPACITANCE 6.20 ; + CAPACITANCE CPERSQDIST 2660000 ; + RESISTANCE RPERSQ 0.005 ; + # EM rules not defined +END rdl + +###### completed routing layers - metal and via ##### + +### Routing via cells section ### +# Plus via rule, metals are along the prefered direction +VIA L1M1_PR DEFAULT + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER li1 ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER met1 ; + RECT -0.145000 -0.115000 0.145000 0.115000 ; +END L1M1_PR + +VIARULE L1M1_PR GENERATE + LAYER li1 ; + ENCLOSURE 0.000000 0.000000 ; + LAYER met1 ; + ENCLOSURE 0.060000 0.030000 ; + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + SPACING 0.360000 BY 0.360000 ; +END L1M1_PR + +# Plus via rule, metals are along the non prefered direction +VIA L1M1_PR_R DEFAULT + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER li1 ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER met1 ; + RECT -0.115000 -0.145000 0.115000 0.145000 ; +END L1M1_PR_R + +VIARULE L1M1_PR_R GENERATE + LAYER li1 ; + ENCLOSURE 0.000000 0.000000 ; + LAYER met1 ; + ENCLOSURE 0.030000 0.060000 ; + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + SPACING 0.360000 BY 0.360000 ; +END L1M1_PR_R + +# Minus via rule, lower layer metal is along prefered direction +VIA L1M1_PR_M DEFAULT + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER li1 ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER met1 ; + RECT -0.115000 -0.145000 0.115000 0.145000 ; +END L1M1_PR_M + +VIARULE L1M1_PR_M GENERATE + LAYER li1 ; + ENCLOSURE 0.000000 0.000000 ; + LAYER met1 ; + ENCLOSURE 0.030000 0.060000 ; + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + SPACING 0.360000 BY 0.360000 ; +END L1M1_PR_M + +# Minus via rule, upper layer metal is along prefered direction +VIA L1M1_PR_MR DEFAULT + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER li1 ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER met1 ; + RECT -0.145000 -0.115000 0.145000 0.115000 ; +END L1M1_PR_MR + +VIARULE L1M1_PR_MR GENERATE + LAYER li1 ; + ENCLOSURE 0.000000 0.000000 ; + LAYER met1 ; + ENCLOSURE 0.060000 0.030000 ; + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + SPACING 0.360000 BY 0.360000 ; +END L1M1_PR_MR + +# Centered via rule, we really do not want to use it +VIA L1M1_PR_C DEFAULT + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER li1 ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + LAYER met1 ; + RECT -0.145000 -0.145000 0.145000 0.145000 ; +END L1M1_PR_C + +VIARULE L1M1_PR_C GENERATE + LAYER li1 ; + ENCLOSURE 0.000000 0.000000 ; + LAYER met1 ; + ENCLOSURE 0.060000 0.060000 ; + LAYER mcon ; + RECT -0.085000 -0.085000 0.085000 0.085000 ; + SPACING 0.360000 BY 0.360000 ; +END L1M1_PR_C + +# Plus via rule, metals are along the prefered direction +VIA M1M2_PR DEFAULT + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + LAYER met1 ; + RECT -0.160000 -0.130000 0.160000 0.130000 ; + LAYER met2 ; + RECT -0.130000 -0.160000 0.130000 0.160000 ; +END M1M2_PR + +VIARULE M1M2_PR GENERATE + LAYER met1 ; + ENCLOSURE 0.085000 0.055000 ; + LAYER met2 ; + ENCLOSURE 0.055000 0.085000 ; + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + SPACING 0.320000 BY 0.320000 ; +END M1M2_PR + +# Plus via rule, metals are along the non prefered direction +VIA M1M2_PR_R DEFAULT + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + LAYER met1 ; + RECT -0.130000 -0.160000 0.130000 0.160000 ; + LAYER met2 ; + RECT -0.160000 -0.130000 0.160000 0.130000 ; +END M1M2_PR_R + +VIARULE M1M2_PR_R GENERATE + LAYER met1 ; + ENCLOSURE 0.055000 0.085000 ; + LAYER met2 ; + ENCLOSURE 0.085000 0.055000 ; + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + SPACING 0.320000 BY 0.320000 ; +END M1M2_PR_R + +# Minus via rule, lower layer metal is along prefered direction +VIA M1M2_PR_M DEFAULT + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + LAYER met1 ; + RECT -0.160000 -0.130000 0.160000 0.130000 ; + LAYER met2 ; + RECT -0.160000 -0.130000 0.160000 0.130000 ; +END M1M2_PR_M + +VIARULE M1M2_PR_M GENERATE + LAYER met1 ; + ENCLOSURE 0.085000 0.055000 ; + LAYER met2 ; + ENCLOSURE 0.085000 0.055000 ; + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + SPACING 0.320000 BY 0.320000 ; +END M1M2_PR_M + +# Minus via rule, upper layer metal is along prefered direction +VIA M1M2_PR_MR DEFAULT + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + LAYER met1 ; + RECT -0.130000 -0.160000 0.130000 0.160000 ; + LAYER met2 ; + RECT -0.130000 -0.160000 0.130000 0.160000 ; +END M1M2_PR_MR + +VIARULE M1M2_PR_MR GENERATE + LAYER met1 ; + ENCLOSURE 0.055000 0.085000 ; + LAYER met2 ; + ENCLOSURE 0.055000 0.085000 ; + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + SPACING 0.320000 BY 0.320000 ; +END M1M2_PR_MR + +# Centered via rule, we really do not want to use it +VIA M1M2_PR_C DEFAULT + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + LAYER met1 ; + RECT -0.160000 -0.160000 0.160000 0.160000 ; + LAYER met2 ; + RECT -0.160000 -0.160000 0.160000 0.160000 ; +END M1M2_PR_C + +VIARULE M1M2_PR_C GENERATE + LAYER met1 ; + ENCLOSURE 0.085000 0.085000 ; + LAYER met2 ; + ENCLOSURE 0.085000 0.085000 ; + LAYER via ; + RECT -0.075000 -0.075000 0.075000 0.075000 ; + SPACING 0.320000 BY 0.320000 ; +END M1M2_PR_C + +# Plus via rule, metals are along the prefered direction +VIA M2M3_PR DEFAULT + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met2 ; + RECT -0.140000 -0.185000 0.140000 0.185000 ; + LAYER met3 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M2M3_PR + +VIARULE M2M3_PR GENERATE + LAYER met2 ; + ENCLOSURE 0.040000 0.085000 ; + LAYER met3 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M2M3_PR + +# Plus via rule, metals are along the non prefered direction +VIA M2M3_PR_R DEFAULT + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met2 ; + RECT -0.185000 -0.140000 0.185000 0.140000 ; + LAYER met3 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M2M3_PR_R + +VIARULE M2M3_PR_R GENERATE + LAYER met2 ; + ENCLOSURE 0.085000 0.040000 ; + LAYER met3 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M2M3_PR_R + +# Minus via rule, lower layer metal is along prefered direction +VIA M2M3_PR_M DEFAULT + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met2 ; + RECT -0.140000 -0.185000 0.140000 0.185000 ; + LAYER met3 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M2M3_PR_M + +VIARULE M2M3_PR_M GENERATE + LAYER met2 ; + ENCLOSURE 0.040000 0.085000 ; + LAYER met3 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M2M3_PR_M + +# Minus via rule, upper layer metal is along prefered direction +VIA M2M3_PR_MR DEFAULT + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met2 ; + RECT -0.185000 -0.140000 0.185000 0.140000 ; + LAYER met3 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M2M3_PR_MR + +VIARULE M2M3_PR_MR GENERATE + LAYER met2 ; + ENCLOSURE 0.085000 0.040000 ; + LAYER met3 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M2M3_PR_MR + +# Centered via rule, we really do not want to use it +VIA M2M3_PR_C DEFAULT + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met2 ; + RECT -0.185000 -0.185000 0.185000 0.185000 ; + LAYER met3 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M2M3_PR_C + +VIARULE M2M3_PR_C GENERATE + LAYER met2 ; + ENCLOSURE 0.085000 0.085000 ; + LAYER met3 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via2 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M2M3_PR_C + +# Plus via rule, metals are along the prefered direction +VIA M3M4_PR DEFAULT + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met3 ; + RECT -0.190000 -0.160000 0.190000 0.160000 ; + LAYER met4 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M3M4_PR + +VIARULE M3M4_PR GENERATE + LAYER met3 ; + ENCLOSURE 0.090000 0.060000 ; + LAYER met4 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M3M4_PR + +# Plus via rule, metals are along the non prefered direction +VIA M3M4_PR_R DEFAULT + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met3 ; + RECT -0.160000 -0.190000 0.160000 0.190000 ; + LAYER met4 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M3M4_PR_R + +VIARULE M3M4_PR_R GENERATE + LAYER met3 ; + ENCLOSURE 0.060000 0.090000 ; + LAYER met4 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M3M4_PR_R + +# Minus via rule, lower layer metal is along prefered direction +VIA M3M4_PR_M DEFAULT + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met3 ; + RECT -0.190000 -0.160000 0.190000 0.160000 ; + LAYER met4 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M3M4_PR_M + +VIARULE M3M4_PR_M GENERATE + LAYER met3 ; + ENCLOSURE 0.090000 0.060000 ; + LAYER met4 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M3M4_PR_M + +# Minus via rule, upper layer metal is along prefered direction +VIA M3M4_PR_MR DEFAULT + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met3 ; + RECT -0.160000 -0.190000 0.160000 0.190000 ; + LAYER met4 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M3M4_PR_MR + +VIARULE M3M4_PR_MR GENERATE + LAYER met3 ; + ENCLOSURE 0.060000 0.090000 ; + LAYER met4 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M3M4_PR_MR + +# Centered via rule, we really do not want to use it +VIA M3M4_PR_C DEFAULT + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + LAYER met3 ; + RECT -0.190000 -0.190000 0.190000 0.190000 ; + LAYER met4 ; + RECT -0.165000 -0.165000 0.165000 0.165000 ; +END M3M4_PR_C + +VIARULE M3M4_PR_C GENERATE + LAYER met3 ; + ENCLOSURE 0.090000 0.090000 ; + LAYER met4 ; + ENCLOSURE 0.065000 0.065000 ; + LAYER via3 ; + RECT -0.100000 -0.100000 0.100000 0.100000 ; + SPACING 0.400000 BY 0.400000 ; +END M3M4_PR_C + +# Plus via rule, metals are along the prefered direction +VIA M4M5_PR DEFAULT + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + LAYER met4 ; + RECT -0.590000 -0.590000 0.590000 0.590000 ; + LAYER met5 ; + RECT -0.710000 -0.710000 0.710000 0.710000 ; +END M4M5_PR + +VIARULE M4M5_PR GENERATE + LAYER met4 ; + ENCLOSURE 0.190000 0.190000 ; + LAYER met5 ; + ENCLOSURE 0.310000 0.310000 ; + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + SPACING 1.600000 BY 1.600000 ; +END M4M5_PR + +# Plus via rule, metals are along the non prefered direction +VIA M4M5_PR_R DEFAULT + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + LAYER met4 ; + RECT -0.590000 -0.590000 0.590000 0.590000 ; + LAYER met5 ; + RECT -0.710000 -0.710000 0.710000 0.710000 ; +END M4M5_PR_R + +VIARULE M4M5_PR_R GENERATE + LAYER met4 ; + ENCLOSURE 0.190000 0.190000 ; + LAYER met5 ; + ENCLOSURE 0.310000 0.310000 ; + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + SPACING 1.600000 BY 1.600000 ; +END M4M5_PR_R + +# Minus via rule, lower layer metal is along prefered direction +VIA M4M5_PR_M DEFAULT + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + LAYER met4 ; + RECT -0.590000 -0.590000 0.590000 0.590000 ; + LAYER met5 ; + RECT -0.710000 -0.710000 0.710000 0.710000 ; +END M4M5_PR_M + +VIARULE M4M5_PR_M GENERATE + LAYER met4 ; + ENCLOSURE 0.190000 0.190000 ; + LAYER met5 ; + ENCLOSURE 0.310000 0.310000 ; + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + SPACING 1.600000 BY 1.600000 ; +END M4M5_PR_M + +# Minus via rule, upper layer metal is along prefered direction +VIA M4M5_PR_MR DEFAULT + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + LAYER met4 ; + RECT -0.590000 -0.590000 0.590000 0.590000 ; + LAYER met5 ; + RECT -0.710000 -0.710000 0.710000 0.710000 ; +END M4M5_PR_MR + +VIARULE M4M5_PR_MR GENERATE + LAYER met4 ; + ENCLOSURE 0.190000 0.190000 ; + LAYER met5 ; + ENCLOSURE 0.310000 0.310000 ; + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + SPACING 1.600000 BY 1.600000 ; +END M4M5_PR_MR + +# Centered via rule, we really do not want to use it +VIA M4M5_PR_C DEFAULT + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + LAYER met4 ; + RECT -0.590000 -0.590000 0.590000 0.590000 ; + LAYER met5 ; + RECT -0.710000 -0.710000 0.710000 0.710000 ; +END M4M5_PR_C + +VIARULE M4M5_PR_C GENERATE + LAYER met4 ; + ENCLOSURE 0.190000 0.190000 ; + LAYER met5 ; + ENCLOSURE 0.310000 0.310000 ; + LAYER via4 ; + RECT -0.400000 -0.400000 0.400000 0.400000 ; + SPACING 1.600000 BY 1.600000 ; +END M4M5_PR_C + +# Plus via rule, metals are along the prefered direction +VIA M5M6_PR DEFAULT + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + LAYER met5 ; + RECT -5.200000 -5.200000 5.200000 5.200000 ; + LAYER rdl ; + RECT -13.250000 -13.250000 13.250000 13.250000 ; +END M5M6_PR + +VIARULE M5M6_PR GENERATE + LAYER met5 ; + ENCLOSURE 2.700000 2.700000 ; + LAYER rdl ; + ENCLOSURE 10.750000 10.750000 ; + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + SPACING 6.270000 BY 6.270000 ; +END M5M6_PR + +# Plus via rule, metals are along the non prefered direction +VIA M5M6_PR_R DEFAULT + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + LAYER met5 ; + RECT -5.200000 -5.200000 5.200000 5.200000 ; + LAYER rdl ; + RECT -13.250000 -13.250000 13.250000 13.250000 ; +END M5M6_PR_R + +VIARULE M5M6_PR_R GENERATE + LAYER met5 ; + ENCLOSURE 2.700000 2.700000 ; + LAYER rdl ; + ENCLOSURE 10.750000 10.750000 ; + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + SPACING 6.270000 BY 6.270000 ; +END M5M6_PR_R + +# Minus via rule, lower layer metal is along prefered direction +VIA M5M6_PR_M DEFAULT + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + LAYER met5 ; + RECT -5.200000 -5.200000 5.200000 5.200000 ; + LAYER rdl ; + RECT -13.250000 -13.250000 13.250000 13.250000 ; +END M5M6_PR_M + +VIARULE M5M6_PR_M GENERATE + LAYER met5 ; + ENCLOSURE 2.700000 2.700000 ; + LAYER rdl ; + ENCLOSURE 10.750000 10.750000 ; + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + SPACING 6.270000 BY 6.270000 ; +END M5M6_PR_M + +# Minus via rule, upper layer metal is along prefered direction +VIA M5M6_PR_MR DEFAULT + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + LAYER met5 ; + RECT -5.200000 -5.200000 5.200000 5.200000 ; + LAYER rdl ; + RECT -13.250000 -13.250000 13.250000 13.250000 ; +END M5M6_PR_MR + +VIARULE M5M6_PR_MR GENERATE + LAYER met5 ; + ENCLOSURE 2.700000 2.700000 ; + LAYER rdl ; + ENCLOSURE 10.750000 10.750000 ; + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + SPACING 6.270000 BY 6.270000 ; +END M5M6_PR_MR + +# Centered via rule, we really do not want to use it +VIA M5M6_PR_C DEFAULT + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + LAYER met5 ; + RECT -5.200000 -5.200000 5.200000 5.200000 ; + LAYER rdl ; + RECT -13.250000 -13.250000 13.250000 13.250000 ; +END M5M6_PR_C + +VIARULE M5M6_PR_C GENERATE + LAYER met5 ; + ENCLOSURE 2.700000 2.700000 ; + LAYER rdl ; + ENCLOSURE 10.750000 10.750000 ; + LAYER rdlcon ; + RECT -2.500000 -2.500000 2.500000 2.500000 ; + SPACING 6.270000 BY 6.270000 ; +END M5M6_PR_C + +### end of single via cells ### + +END LIBRARY + +# Autogenerated