Fix usage of "temp" instead of "temper" in spice models.

Fixes https://github.com/google/skywater-pdk/issues/171.

In ngspice (and also spectre), temperature that appears in a parameter
equation should use the name "temper", not "temp".

Signed-off-by: diadatp <admin@diadatp.com>
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