Significant improvements to primitives sky130_fd_pr version 0.10.1.

This commit contains major improvements to all files by regenerating
from original data, improving consistency and automated cross checking
of data.

These improvements should drastically reduce customer confusion when
using the library and further reduce future possibility for human errors to
creep into designs.

Notable improvements include;

 * A large number of files have been regenerated from original source
   data (compared to previous hand created versions).

 * Catalog and other library aggregations are now automatically
   generated from library contents (compared to previous hand created
   versions).

 * Significant improvements to documentation for all cells and models,
   including producing graphical representations, verified metadata and
   descriptions.

 * Names have been cross referenced between file types (such as
   simulation, layout, schematic and timing) and now verified to match.

 * Names have been improved to fix a standard format across all supported
   libraries and PDK contents.

 * Significant improvements to the contents of text files through improving
   consistent style that has been automatically checked.

 * Simplified spice files for usage with open tools.

 * Too many numerous other changes to list here.

Signed-off-by: Kevin Kelley <kevin.kelley@skywatertechnology.com>
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
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