diff --git a/VERSION b/VERSION
index 79728fe..8955a01 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.24
+1.0.26
diff --git a/common/gate_list.txt b/common/gate_list.txt
index 84fd5b7..b1097ec 100644
--- a/common/gate_list.txt
+++ b/common/gate_list.txt
@@ -98,7 +98,7 @@
 LATCHRQ	    function	Q=IQ	QB=IQB	enable  E	data_in  D	clear !R
 LATCHIRQ    function	Q=IQ	QB=IQB	enable  !E	data_in  D	clear !R
 LATCHSRQ    function	Q=IQ	QB=IQB	enable  E	data_in  D	preset !S   clear !R
-LATCHISRQ   function	Q=IQ	QB=IQB	enable  E	data_in  D	preset !S   clear !R
+LATCHISRQ   function	Q=IQ	QB=IQB	enable  !E	data_in  D	preset !S   clear !R
 
 DFF	    function	Q=IQ	clocked_on  C	    next_state  D
 DFFQ	    function	Q=IQ	function    QB=IQB   clocked_on	C   next_state	D
diff --git a/common/spectre_to_spice.py b/common/spectre_to_spice.py
index c522367..820c870 100755
--- a/common/spectre_to_spice.py
+++ b/common/spectre_to_spice.py
@@ -1,6 +1,6 @@
 #!/bin/env python3
 # Script to read all files in a directory of SPECTRE-compatible device model
-# files, and convert them to a form that is compatible with ngspice. 
+# files, and convert them to a form that is compatible with ngspice.
 
 import os
 import sys
@@ -38,7 +38,7 @@
     rtok = re.compile('([^ \t\n]+)[ \t]*(.*)')
 
     fmtline = []
-    
+
     if iscall:
         rest = line
     elif inparam:
@@ -122,7 +122,7 @@
         else:
             # Match to a CDL subckt parameter that does not have an '=' and so
             # assumes that the parameter is always passed, and therefore must
-	    # be part of the .subckt line.  A parameter without a value is not
+            # be part of the .subckt line.  A parameter without a value is not
             # legal SPICE, so supply a default value of 1.
             pmatch = parm5rex.match(rest)
             if pmatch:
@@ -148,7 +148,7 @@
     binrex = re.compile('[ \t]*([0-9]+):[ \t]+type[ \t]*=[ \t]*(.*)')
     shincrex = re.compile('\.inc[ \t]+')
 
-    stdsubrex = re.compile('\.subckt[ \t]+([^ \t]+)[ \t]+([^ \t]*)')
+    stdsubrex = re.compile('\.subckt[ \t]+([^ \t]+)[ \t]+(.*)')
     stdmodelrex = re.compile('\.model[ \t]+([^ \t]+)[ \t]+([^ \t]+)[ \t]+(.*)')
     stdendsubrex = re.compile('\.ends[ \t]+(.+)')
     stdendonlysubrex = re.compile('\.ends[ \t]*')
@@ -195,7 +195,9 @@
 
         # Item 1b.  In-line C++-style // comments get replaced with $ comment character
         elif ' //' in line:
-            line = line.replace(' //', ' $ ', 1) 
+            line = line.replace(' //', ' $ ', 1)
+        elif '//' in line:
+            line = line.replace('//', ' $ ', 1)
         elif '\t//' in line:
             line = line.replace('\t//', '\t$ ', 1) 
 
@@ -216,9 +218,9 @@
             contline = False
             if line.strip() != '':
                 if inparam:
-                    inparam = False 
+                    inparam = False
                 if inpinlist:
-                    inpinlist = False 
+                    inpinlist = False
 
         # Item 3.  Handle blank lines like comment lines
         if line.strip() == '':
@@ -278,7 +280,7 @@
             inparam = True
             spicelines.append(fmtline)
             continue
-        
+
         # statistics---not sure if it is always outside an inline subcircuit
         smatch = statrex.match(line)
         if smatch:
@@ -293,7 +295,8 @@
             mmatch = modelrex.match(line)
             if not mmatch:
                 mmatch = cdlmodelrex.match(line)
-                iscdl = True
+                if mmatch:
+                    iscdl = True
         else:
             mmatch = stdmodelrex.match(line)
 
@@ -362,7 +365,7 @@
                 else:
                     spicelines.append(line)
                 continue
-                
+
             else:
                 if isspectre:
                     ematch = endsubrex.match(line)
@@ -403,7 +406,7 @@
                             line = 'D' + line
                         spicelines.append(line)
 
-                        # Will need more handling here for other component types. . . 
+                        # Will need more handling here for other component types. . .
 
                     for line in calllines[1:]:
                         spicelines.append(line)
@@ -414,7 +417,7 @@
                     for line in modellines:
                         spicelines.append(line)
                     modellines = []
-                    
+
                     # Complete the subcircuit definition
                     spicelines.append('.ends ' + subname)
 
@@ -482,7 +485,7 @@
                     continue
 
             # Check for a line that begins with the subcircuit name
-          
+
             dmatch = devrex.match(line)
             if dmatch:
                 fmtline, ispassed = parse_param_line(dmatch.group(3), True, insub, True, ispassed)
@@ -513,6 +516,10 @@
                 else:
                     convtype = type
 
+                # If there is a binned model then it replaces any original
+                # model line that was saved.
+                if modellines[-1].startswith('.model'):
+                    modellines = modellines[0:-1]
                 modellines.append('')
                 modellines.append('.model ' + modname + '.' + bin + ' ' + convtype)
                 continue
diff --git a/common/split_spice.py b/common/split_spice.py
index d8c5539..f7cc695 100755
--- a/common/split_spice.py
+++ b/common/split_spice.py
@@ -48,9 +48,6 @@
 
     for line in inplines:
 
-        if subname == 'xrdn':
-            print('handling line in xrdn, file ' + in_file + ': "' + line + '"')
-
         # Item 1.  Handle comment lines
         if line.startswith('*'):
             if subcktlines != []:
@@ -65,14 +62,12 @@
         else:
             contline = False
             if inparam:
-                inparam = False 
+                inparam = False
             if inpinlist:
-                inpinlist = False 
+                inpinlist = False
 
         # Item 3.  Handle blank lines like comment lines
         if line.strip() == '':
-            if subname == 'xrdn':
-                print('blank line in xrdn subcircuit')
             if subcktlines != []:
                 subcktlines.append(line)
             else:
@@ -101,7 +96,7 @@
             else:
                 spicelines.append(line)
             continue
-        
+
         # model
         mmatch = modelrex.match(line)
         if mmatch:
@@ -151,6 +146,9 @@
                             print(line, file=ofile)
                         subcktlines = []
 
+                    # Add an include statement to this file in the source
+                    spicelines.append('.include ' + subckt_file)
+
                     insubckt = False
                     inmodel = False
                     subname = ''
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index ee75912..7e31c4c 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -5,7 +5,7 @@
 ###	magic;  this keeps compatibility between layouts
 ###	for all process variants.
 ###
-#----------------------------------------------------------
+#------------------------------------------------------------------------
 # Copyright (c) 2020 R. Timothy Edwards
 # Revisions:  See below
 #
@@ -14,10 +14,10 @@
 # process.  The file may be distributed under the terms
 # of the Apache 2.0 license agreement.
 #
-#----------------------------------------------------------
+#------------------------------------------------------------------------
 # This file is designed to be used with magic versions
 # 8.3.24 or newer.
-#----------------------------------------------------------
+#------------------------------------------------------------------------
 tech
   format 35
   TECHNAME
@@ -28,56 +28,56 @@
  description "SkyWater SKY130: PRE ALPHA Vendor Open Source rules and DRC"
 end
 
-#----------------------------------------------------------
+#------------------------------------------------------------------------
 # Status 7/10/20: Rev 1 (alpha):
 # First public release
-#--------------------------------------------------------------
+# Status 8/14/20: Rev 2 (alpha):
+# Started updating with new device/model naming convention
+#------------------------------------------------------------------------
 
-#--------------------------------------------------------------
+#------------------------------------------------------------------------
 # Supported device types
-#--------------------------------------------------------------
-# device name   magic ID layer  description
-#-------------------------------------------------------------
-# nshort	nfet		standard nFET
-# nshort	scnfet		standard nFET in standard cell**
-# npd		npd		special nFET in SRAM cell
-# npass		npass		special nFET in SRAM cell
-# nlowvt	nfetlvt		low Vt nFET
-# sonos_p/e	nsonos		SONOS nFET
-# pshort	pfet		standard pFET
-# pshort	scpfet		standard pFET in standard cell**
-# ppu		ppu		special pFET in SRAM cell
-# plowvt	pfetlvt		low Vt pFET
-# phighvt	pfethvt		high Vt pFET
-# ntvnative	---		native nFET
-# phv		mvpfet		thickox pFET
-# nhv		mvnfet		thickox nFET
-# nhvnative	mvnnfet		thickox native nFET
-# ndiode	ndiode		n+ diff diode
-# ndiode_h	mvndiode	thickox n+ diff diode
-# pdiode	pdiode		p+ diff diode
-# pdiode_h	mvpdiode	thickox p+ diff diode
-# ndiode_native	nndiode		diode with nndiff
-# ndiode_lvt	ndiodelvt	low Vt n+ diff diode
-# pdiode_lvt	pdiodelvt	low Vt p+ diff diode
-# pdiode_hvt	pdiodehvt	high Vt p+ diff diode
-# nwdiode	---		nwell diode
-# dnwdiode_psub	---		deep nwell diode to substrate
-# dnwdiode_pw	---		deep nwell diode to pwell
-# xcmimc1	mimcap		MiM cap 1st plate
-# xcmimc2	mimcap2		MiM cap 2nd plate
-# mrdn		rdn		n+ diff resistor
-# mrdn_hv	mvrdn		thickox n+ diff resistor
-# mrdp		rdp		p+ diff resistor
-# mrdp_hv	mvrdp		thickox p+ diff resistor
-# mrl1		rli		local interconnect resistor
-# mrp1		npres		n+ poly resistor
-# xhrpoly_*	ppres (*)	p+ poly resistor (300 Ohms/sq)
-# uhrpoly_*	xres (*)	p+ poly resistor (2k Ohms/sq)
-# xcnwvc	varactor	varactor (low Vt?)
-# xcnwvc2	varactorhvt	high Vt varactor
-# xchvnwc	mvvaractor	thickox varactor
-# xpwres	rpw		pwell resistor (in deep nwell)
+#------------------------------------------------------------------------
+# device name			magic ID layer	description
+#------------------------------------------------------------------------
+# sky130_fd_pr__nfet_01v8	nfet		standard nFET
+# sky130_fd_pr__nfet_01v8	scnfet		standard nFET in standard cell**
+# npd				npd		special nFET in SRAM cell
+# npass				npass		special nFET in SRAM cell
+# sky130_fd_pr__nfet_01v8_lvt	nfetlvt		low Vt nFET
+# sonos_p/e			nsonos		SONOS nFET
+# sky130_fd_pr__pfet_01v8	pfet		standard pFET
+# sky130_fd_pr__pfet_01v8	scpfet		standard pFET in standard cell**
+# ppu				ppu		special pFET in SRAM cell
+# sky130_fd_pr__pfet_01v8_lvt	pfetlvt		low Vt pFET
+# sky130_fd_pr__pfet_01v8_mvt	pfetmvt		med Vt pFET
+# sky130_fd_pr__pfet_01v8_hvt	pfethvt		high Vt pFET
+# sky130_fd_pr__nfet_03v3_nvt	---		native nFET
+# sky130_fd_pr__pfet_g5v0d10v5	mvpfet		thickox pFET
+# sky130_fd_pr__nfet_g5v0d10v5	mvnfet		thickox nFET
+# sky130_fd_pr__nfet_01v8_nvt	mvnnfet		thickox native nFET
+# sky130_fd_pr__diode_pw2nd	ndiode		n+ diff diode
+# ndiode_h			mvndiode	thickox n+ diff diode
+# sky130_fd_pr__diode_pd2nw	pdiode		p+ diff diode
+# pdiode_h			mvpdiode	thickox p+ diff diode
+# sky130_fd_pr__diode_pw2nd_nvt	nndiode		diode with nndiff
+# sky130_fd_pr__diode_pw2nd_lvt	ndiodelvt	low Vt n+ diff diode
+# sky130_fd_pr__diode_pd2nw_lvt	pdiodelvt	low Vt p+ diff diode
+# sky130_fd_pr__diode_pd2nw_hvt	pdiodehvt	high Vt p+ diff diode
+# xcmimc1			mimcap		MiM cap 1st plate
+# xcmimc2			mimcap2		MiM cap 2nd plate
+# mrdn				rdn		n+ diff resistor
+# mrdn_hv			mvrdn		thickox n+ diff resistor
+# mrdp				rdp		p+ diff resistor
+# mrdp_hv			mvrdp		thickox p+ diff resistor
+# mrl1				rli		local interconnect resistor
+# mrp1				npres		n+ poly resistor
+# xhrpoly_*			ppres (*)	p+ poly resistor (300 Ohms/sq)
+# uhrpoly_*			xres (*)	p+ poly resistor (2k Ohms/sq)
+# xcnwvc			varactor	varactor (low Vt?)
+# xcnwvc2			varactorhvt	high Vt varactor
+# xchvnwc			mvvaractor	thickox varactor
+# xpwres			rpw		pwell resistor (in deep nwell)
 #
 # (*) Note that ppres may extract into some generic type
 # called "xhrpoly", but only specific sizes of xhrpoly are
@@ -179,6 +179,7 @@
  -active mvvaractor,mvvaract,mvvar
 
  -active pmoslvt,pfetlvt
+ -active pmosmvt,pfetmvt
  -active pmoshvt,pfethvt
  -active nmoslvt,nfetlvt
  -active varactorhvt,varacthvt,varhvt
@@ -360,12 +361,6 @@
   padl m1 m2 m3 glass
 #endif  (!METAL5)
 
-  res0p35   implant1
-  res0p69   implant1
-  res1p41   implant1
-  res2p85   implant1
-  res5p73   implant1
-
 #ifdef REDISTRIBUTION
   mrdlc metal5 mrdl
 #endif (REDISTRIBUTION)
@@ -381,7 +376,7 @@
   allnwell	   nwell,obswell
 
   allnfets	   nfet,npass,npd,scnfet,mvnfet,mvnnfet,nfetlvt,nsonos
-  allpfets	   pfet,ppu,scpfet,mvpfet,pfethvt,pfetlvt
+  allpfets	   pfet,ppu,scpfet,mvpfet,pfethvt,pfetlvt,pfetmvt
   allfets	   allnfets,allpfets,varactor,mvvaractor,varhvt
 
   allnactivenonfet *ndiff,*nsd,*ndiode,*nndiode,*mvndiff,*mvnsd,*mvndiode,*ndiodelvt
@@ -400,7 +395,7 @@
   allactiveres	   ndiffres,pdiffres,mvndiffres,mvpdiffres
 
   allndifflv       *ndif,*nsd,*ndiode,ndiffres,nfet,npass,npd,scnfet,nfetlvt,nsonos
-  allpdifflv       *pdif,*psd,*pdiode,pdiffres,pfet,ppu,scpfet,pfetlvt,pfethvt
+  allpdifflv       *pdif,*psd,*pdiode,pdiffres,pfet,ppu,scpfet,pfetlvt,pfetmvt,pfethvt
   alldifflv        allndifflv,allpdifflv
   allndifflvnonfet *ndif,*nsd,*ndiode,*nndiode,ndiffres,*ndiodelvt
   allpdifflvnonfet *pdif,*psd,*pdiode,pdiffres,*pdiodelvt,*pdiodehvt
@@ -483,6 +478,7 @@
   psc       pdiff_in_pwell metal1  contact_X'es
 
   pfetlvt   ptransistor	ptransistor_stripes implant1
+  pfetmvt   ptransistor	ptransistor_stripes implant3
   pfethvt   ptransistor ptransistor_stripes implant2
   nfetlvt   ntransistor ntransistor_stripes implant1
   nsonos    ntransistor implant3
@@ -508,6 +504,12 @@
   xpc	    polysilicon	   pselect2  metal1  contact_X'es
   rmp	    polysilicon	   poly_resist_stripes
 
+  res0p35   implant1
+  res0p69   implant1
+  res1p41   implant1
+  res2p85   implant1
+  res5p73   implant1
+
   pdiode    pdiffusion     pselect2
   ndiode    ndiffusion     nselect2
   pdiodec   pdiffusion     pselect2 metal1 contact_X'es
@@ -823,6 +825,18 @@
 	calma 125 44
 
 #----------------------------------------------------------------
+# HVTR
+#----------------------------------------------------------------
+
+ layer HVTR  pfetmvt
+        grow 180
+	bridge	380 380
+	grow	185
+	shrink	185
+	close  265000
+	calma 18 20
+
+#----------------------------------------------------------------
 # HVTP
 #----------------------------------------------------------------
 
@@ -1494,116 +1508,147 @@
  options calma-permissive-labels
  gridlimit 5
 
+#----------------------------------------------------------------
+# Generate guard-band around nwells to keep FOM from crossing
+# Spacing from nwell = Diff/Tap 9 = 0.34um
+# Enclosure by nwell = Diff/Tap 8 = 0.18um
+#----------------------------------------------------------------
+ templayer	well_shrink nwell
+	shrink	180
+ templayer	well_guardband nwell
+	grow	340
+	and-not	well_shrink
+
 #---------------------------------------------------
-# FOM fill (under development)
+# Interleaved FOM and POLY fill
 #---------------------------------------------------
  templayer      slots_fom_pass1
 	bbox	top
         slots   0 4080 1320 0 4080 1320 1360 0
  templayer      obstruct_fom_pass1 alldiff,allpoly,rpw
         grow    500
+	or	well_guardband
  templayer	fomfill_pass1 slots_fom_pass1
         and-not obstruct_fom_pass1
         shrink  2035
         grow    2035
 
+#---------------------------------------------------
+
+ templayer      slots_poly_pass1
+	bbox	top
+        slots   0 720 360 0 720 360 240 0
+ templayer      obstruct_poly_pass1 alldiff,allpoly,rpw
+        grow    700
+	or	fomfill_pass1
+        grow    300
+	or	well_guardband
+ templayer	polyfill_pass1 slots_poly_pass1
+        and-not obstruct_poly_pass1
+        shrink  355
+        grow    355
+
+#---------------------------------------------------
+
  templayer      slots_fom_pass2
 	bbox	top
         slots   0 2500 1320 0 2500 1320 1360 0
  templayer      obstruct_fom_pass2 fomfill_pass1
         grow    820
-	or	alldiff,allpoly,rpw
-        grow    500
+        grow    200
+	or	polyfill_pass1
+        grow    300
+	or	obstruct_fom_pass1
  templayer	fomfill_pass2 slots_fom_pass2
         and-not obstruct_fom_pass2
         shrink  1245
         grow    1245
 
- templayer      slots_fom_coarse
-	bbox	top
-        slots   0 1500 1320 0 1500 1320 1360 0
- templayer      obstruct_fom_coarse fomfill_pass1,fomfill_pass2
-        grow    820
-	or	alldiff,allpoly,rpw
-        grow    500
- templayer	fomfill_coarse slots_fom_coarse
-        and-not obstruct_fom_coarse
-        shrink  745
-        grow    745
-
- templayer      slots_fom_fine
-	bbox	top
-        slots   0 500 400 0 500 400 160 0
- templayer      obstruct_fom_fine fomfill_pass1,fomfill_pass2,fomfill_coarse
-	grow	820
-	or	alldiff,allpoly,rpw
-        grow    500
- templayer	fomfill_fine slots_fom_fine
-        and-not obstruct_fom_fine
-        shrink  245
-        grow    245
-
- layer	FOMMASK    fomfill_pass1 
-	or	fomfill_pass2
-	or	fomfill_coarse
-	or	fomfill_fine
- 	calma 	23 0
-
 #---------------------------------------------------
-# POLY fill (under development)
-#---------------------------------------------------
- templayer      slots_poly_pass1
-	bbox	top
-        slots   0 720 360 0 720 360 240 0
- templayer      obstruct_poly_pass1 alldiff,allpoly,rpw
-        grow    1000
- templayer	polyfill_pass1 slots_poly_pass1
-        and-not obstruct_poly_pass1
-        shrink  355
-        grow    355
 
  templayer      slots_poly_coarse
 	bbox	top
         slots   0 720 360 0 720 360 240 120
- templayer      obstruct_poly_coarse alldiff,allpoly,rpw
-        grow    640
-	or	polyfill_pass1
-	grow	360
+ templayer      obstruct_poly_coarse polyfill_pass1
+	grow	60
+	or	fomfill_pass1,fomfill_pass2
+	grow	300
+	or	obstruct_poly_pass1
  templayer	polyfill_coarse slots_poly_coarse
         and-not obstruct_poly_coarse
         shrink  355
         grow    355
 
+#---------------------------------------------------
+
+ templayer      slots_fom_coarse
+	bbox	top
+        slots   0 1500 1320 0 1500 1320 1360 0
+ templayer      obstruct_fom_coarse fomfill_pass1,fomfill_pass2
+        grow    1020
+	or	polyfill_pass1,polyfill_coarse
+        grow    300
+	or	obstruct_fom_pass1
+ templayer	fomfill_coarse slots_fom_coarse
+        and-not obstruct_fom_coarse
+        shrink  745
+        grow    745
+
+#---------------------------------------------------
  templayer      slots_poly_medium
 	bbox	top
         slots   0 540 360 0 540 360 240 100
- templayer      obstruct_poly_medium alldiff,allpoly,rpw
-        grow    650
-	or	polyfill_pass1,polyfill_coarse
-	grow	360
+ templayer      obstruct_poly_medium polyfill_pass1,polyfill_coarse
+        grow    1010
+	or	obstruct_poly_pass1
  templayer	polyfill_medium slots_poly_medium
         and-not obstruct_poly_medium
         shrink  265
         grow    265
 
+#---------------------------------------------------
+
+ templayer      slots_fom_fine
+	bbox	top
+        slots   0 500 400 0 500 400 160 0
+ templayer      obstruct_fom_fine fomfill_pass1,fomfill_pass2,fomfill_coarse
+	grow	1320
+	or	obstruct_fom_pass1
+ templayer	fomfill_fine slots_fom_fine
+        and-not obstruct_fom_fine
+        shrink  245
+        grow    245
+
+#---------------------------------------------------
  templayer      slots_poly_fine
 	bbox	top
         slots   0 480 360 0 480 360 240 200
- templayer      obstruct_poly_fine alldiff,allpoly,rpw
+ templayer      obstruct_poly_fine polyfill_pass1,polyfill_coarse,polyfill_medium
         grow    650
 	or	polyfill_pass1,polyfill_coarse,polyfill_medium
 	grow	360
+	or	obstruct_poly_pass1
  templayer	polyfill_fine slots_poly_fine
         and-not obstruct_poly_fine
         shrink  235
         grow    235
 
- layer	POLYMASK    polyfill_pass1 
+#---------------------------------------------------
+ templayer	fomfill    fomfill_pass1 
+	or	fomfill_pass2
+	or	fomfill_coarse
+	or	fomfill_fine
+ 	calma 	23 0
+
+ templayer	polyfill    polyfill_pass1 
 	or	polyfill_coarse
 	or	polyfill_medium
 	or	polyfill_fine
  	calma 	28 0
 
+ layer	FOMMASK    fomfill
+ layer	POLYMASK    polyfill
+
 #---------------------------------------------------
 # MET1 fill
 #---------------------------------------------------
@@ -2086,6 +2131,10 @@
  and LVTN
  labels DIFF
 
+ layer pfetmvt pfetarea
+ and HVTR
+ labels DIFF
+
  layer pfethvt pfetarea
  and HVTP
  labels DIFF
@@ -3167,6 +3216,8 @@
  calma TAP  65 44
  # LVTN
  calma LVTN 125 44
+ # HVTR
+ calma HVTR 18 20
  # HVTP
  calma HVTP 78 44
  # SONOS (TUNM)
@@ -3503,7 +3554,7 @@
 
  surround ndc/a *ndiff,nfet,scnfet,npd,npass,nfetlvt 40 absence_illegal \
 	"N-diffusion overlap of N-diffusion contact < %d (LIcon 5a)"
- surround pdc/a *pdiff,pfet,scpfet,ppu,pfethvt,pfetlvt 40 absence_illegal \
+ surround pdc/a *pdiff,pfet,scpfet,ppu,pfethvt,pfetmvt,pfetlvt 40 absence_illegal \
 	"P-diffusion overlap of P-diffusion contact < %d (LIcon 5a)"
  surround ndic/a *ndi 40 absence_illegal \
 	"N-diode overlap of N-diode contact < %d (LIcon 5a)"
@@ -3512,7 +3563,7 @@
 
  surround ndc/a *ndiff,nfet,scnfet,npd,npass,nfetlvt 60 directional \
 	"N-diffusion overlap of N-diffusion contact < %d in one direction (LIcon 5c)"
- surround pdc/a *pdiff,pfet,scpfet,ppu,pfethvt,pfetlvt 60 directional \
+ surround pdc/a *pdiff,pfet,scpfet,ppu,pfethvt,pfetmvt,pfetlvt 60 directional \
 	"P-diffusion overlap of P-diffusion contact < %d in one direction (LIcon 5c)"
  surround ndic/a *ndi 60 directional \
 	"N-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
@@ -3759,7 +3810,7 @@
 	"Butting MV N-tap spacing to MV PMOS gate < %d (Poly 6)"
 
  # No LV FETs in HV diff
- spacing pfet,scpfet,ppu,pfetlvt,pfethvt,*pdiff *mvpdiff 360 touching_illegal \
+ spacing pfet,scpfet,ppu,pfetlvt,pfetmvt,pfethvt,*pdiff *mvpdiff 360 touching_illegal \
 	"LV P-diffusion to MV P-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
 
  spacing nfet,scnfet,npd,npass,nfetlvt,varactor,varhvt,*ndiff *mvndiff 360 touching_illegal \
@@ -3933,14 +3984,14 @@
 
 
 extract
- style ngspice variants (lvs),(sim),(si)
+ style ngspice variants (),(orig),(si)
  cscale 1
  # NOTE: SkyWater SPICE libraries use .option scale 1E6 so all
  # dimensions must be in units of microns in the extract file.
  # Use extract style "ngspice(si)" to override this and produce
  # a file with SI units for length/area.
 
- variants (lvs),(sim)
+ variants (),(orig)
  lambda  1E6
  variants (si)
  lambda 1.0
@@ -4313,81 +4364,132 @@
 #ifdef REDISTRIBUTION
 #endif (REDISTRIBUTION)
 
-# Devices:  Use document (...)
+# Devices:  Base models (not subcircuit wrappers)
 
-variants (sim)
+variants (),(si)
 
- device msubcircuit pshort pfet,scpfet *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
- device msubcircuit ppu ppu *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
- device msubcircuit plowvt pfetlvt *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
- device msubcircuit phighvt pfethvt *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+ device msubcircuit sky130_fd_pr__pfet_01v8 pfet,scpfet \
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+ device msubcircuit ppu ppu \
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+ device msubcircuit sky130_fd_pr__pfet_01v8_lvt pfetlvt \
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+ device msubcircuit sky130_fd_pr__pfet_01v8_mvt pfetmvt \
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+ device msubcircuit sky130_fd_pr__pfet_01v8_hvt pfethvt \
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
 
- device msubcircuit nshort nfet,scnfet,npd,npass *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
- device msubcircuit npd npd *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
- device msubcircuit npass npass *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
- device msubcircuit nlowvt nfetlvt *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
- device msubcircuit sonos_e nsonos *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
- device subcircuit xcnwvc varactor *nndiff nwell error l=l w=w
- device subcircuit xcnwvc2 varhvt *nndiff nwell error l=l w=w
- device subcircuit xchvnwc mvvaractor *mvnndiff nwell error l=l w=w
+ device msubcircuit sky130_fd_pr__nfet_01v8 nfet,scnfet,npd,npass \
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device msubcircuit npd npd \
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device msubcircuit npass npass \
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device msubcircuit sky130_fd_pr__nfet_01v8_lvt nfetlvt \
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device msubcircuit sonos_e nsonos \
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+ device subcircuit xcnwvc varactor \
+	*nndiff nwell error l=l w=w
+ device subcircuit xcnwvc2 varhvt \
+	*nndiff nwell error l=l w=w
+ device subcircuit xchvnwc mvvaractor \
+	*mvnndiff nwell error l=l w=w
 
- device msubcircuit phv mvpfet *mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w
- device msubcircuit nhv mvnfet *mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
- device msubcircuit nhvnative mvnnfet *mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
+ device msubcircuit sky130_fd_pr__pfet_g5v0d10v5 mvpfet \
+	*mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w
+ device msubcircuit sky130_fd_pr__nfet_g5v0d10v5 mvnfet \
+	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
+ device msubcircuit sky130_fd_pr__nfet_05v0_nvt mvnnfet \
+	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
 
- device rsubcircuit short rmp     *poly	 space/w,pwell,nwell error l=l w=w
- device rsubcircuit short rli1    *li,coreli space/w,pwell,nwell error l=l w=w
- device rsubcircuit short rmetal1 *metal1 space/w,pwell,nwell error l=l w=w
- device rsubcircuit short rmetal2 *metal2 space/w,pwell,nwell error l=l w=w
- device rsubcircuit short rmetal3 *metal3 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rmp \
+	*poly	 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rli1 \
+       *li,coreli space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rmetal1 \
+	*metal1 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rmetal2 \
+	*metal2 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rmetal3 \
+	*metal3 space/w,pwell,nwell error l=l w=w
 #ifdef METAL5
- device rsubcircuit short rm4 *m4 space/w,pwell,nwell error l=l w=w
- device rsubcircuit short rm5 *m5 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rm4 \
+	*m4 space/w,pwell,nwell error l=l w=w
+ device rsubcircuit short rm5 \
+	*m5 space/w,pwell,nwell error l=l w=w
 #endif (METAL5)
 
- device rsubcircuit xhrpoly_0p35  xhrpoly xpc pwell,space/w error +res0p35 l=l w=w
- device rsubcircuit xhrpoly_0p69  xhrpoly xpc pwell,space/w error +res0p69 l=l w=w
- device rsubcircuit xhrpoly_1p41  xhrpoly xpc pwell,space/w error +res1p41 l=l w=w
- device rsubcircuit xhrpoly_2p85  xhrpoly xpc pwell,space/w error +res2p85 l=l w=w
- device rsubcircuit xhrpoly_5p73  xhrpoly xpc pwell,space/w error +res5p73 l=l w=w
- device rsubcircuit xhrpoly  xhrpoly xpc pwell,space/w error l=l w=w
- device rsubcircuit uhrpoly_0p35  uhrpoly xpc pwell,space/w error +res0p35 l=l w=w
- device rsubcircuit uhrpoly_0p69  uhrpoly xpc pwell,space/w error +res0p69 l=l w=w
- device rsubcircuit uhrpoly_1p41  uhrpoly xpc pwell,space/w error +res1p41 l=l w=w
- device rsubcircuit uhrpoly_2p85  uhrpoly xpc pwell,space/w error +res2p85 l=l w=w
- device rsubcircuit uhrpoly_5p73  uhrpoly xpc pwell,space/w error +res5p73 l=l w=w
- device rsubcircuit uhrpoly  uhrpoly xpc pwell,space/w error l=l w=w
+ device rsubcircuit xhrpoly_0p35 xhrpoly \
+	xpc pwell,space/w error +res0p35 l=l w=w
+ device rsubcircuit xhrpoly_0p69  xhrpoly \
+	xpc pwell,space/w error +res0p69 l=l w=w
+ device rsubcircuit xhrpoly_1p41  xhrpoly \
+	xpc pwell,space/w error +res1p41 l=l w=w
+ device rsubcircuit xhrpoly_2p85  xhrpoly \
+	xpc pwell,space/w error +res2p85 l=l w=w
+ device rsubcircuit xhrpoly_5p73  xhrpoly \
+	xpc pwell,space/w error +res5p73 l=l w=w
+ device rsubcircuit xhrpoly  xhrpoly \
+	xpc pwell,space/w error l=l w=w
+ device rsubcircuit uhrpoly_0p35  uhrpoly \
+	xpc pwell,space/w error +res0p35 l=l w=w
+ device rsubcircuit uhrpoly_0p69  uhrpoly \
+	xpc pwell,space/w error +res0p69 l=l w=w
+ device rsubcircuit uhrpoly_1p41  uhrpoly \
+	xpc pwell,space/w error +res1p41 l=l w=w
+ device rsubcircuit uhrpoly_2p85  uhrpoly \
+	xpc pwell,space/w error +res2p85 l=l w=w
+ device rsubcircuit uhrpoly_5p73  uhrpoly \
+	xpc pwell,space/w error +res5p73 l=l w=w
+ device rsubcircuit uhrpoly  uhrpoly \
+	xpc pwell,space/w error l=l w=w
 
- device rsubcircuit mrp1     mrp1    *poly pwell,space/w error 	l=l w=w
+ device rsubcircuit mrp1     mrp1 \
+	*poly pwell,space/w error 	l=l w=w
 
- device rsubcircuit mrdn     ndiffres *ndiff pwell,space/w  error l=l w=w
- device rsubcircuit mrdp     pdiffres *pdiff nwell    error l=l w=w
- device rsubcircuit xpwres   rpw       pwell dnwell error l=l w=w
+ device rsubcircuit mrdn     ndiffres \
+	*ndiff pwell,space/w  error l=l w=w
+ device rsubcircuit mrdp     pdiffres \
+	*pdiff nwell    error l=l w=w
+ device rsubcircuit xpwres   rpw \
+        pwell dnwell error l=l w=w
 
- device rsubcircuit mrdn_hv  mvndiffres *mvndiff pwell,space/w error l=l w=w
- device rsubcircuit mrdp_hv  mvpdiffres *mvpdiff nwell   error l=l w=w
+ device rsubcircuit mrdn_hv  mvndiffres \
+	*mvndiff pwell,space/w error l=l w=w
+ device rsubcircuit mrdp_hv  mvpdiffres \
+	*mvpdiff nwell   error l=l w=w
 
- device subcircuit  pdiode *pdiode nwell a=a p=p
- device msubcircuit ndiode *ndiode pwell,space/w a=a p=p
- device subcircuit  pdiode_h *mvpdiode nwell a=a p=p
- device msubcircuit ndiode_h *mvndiode pwell,space/w a=a p=p
+ device subcircuit  sky130-fd_pr__diode_pd2nw *pdiode \
+	nwell a=a p=p
+ device msubcircuit sky130_fd_pr__diode_pw2nd *ndiode \
+	pwell,space/w a=a p=p
+ device subcircuit  pdiode_h *mvpdiode \
+	nwell a=a p=p
+ device msubcircuit ndiode_h *mvndiode \
+	pwell,space/w a=a p=p
 
  # These are parasitic devices
- device msubcircuit ndiode_lvt *ndiodelvt pwell,space/w a=a p=p
- device subcircuit  pdiode_lvt *pdiodelvt nwell a=a p=p
- device subcircuit  pdiode_hvt *pdiodehvt nwell a=a p=p
- device msubcircuit ndiode_native *nndiode pwell,space/w a=a p=p
+ device msubcircuit sky130_fd_pr__diode_pw2nd_lvt *ndiodelvt \
+	pwell,space/w a=a p=p
+ device subcircuit  sky130_fd_pr__diode_pd2nw_lvt *pdiodelvt \
+	nwell a=a p=p
+ device subcircuit  sky130_fd_pr_diode_pd2nw_hvt *pdiodehvt \
+	nwell a=a p=p
+ device msubcircuit sky130_fd_pr__diode_pw2nd_nvt *nndiode \
+	pwell,space/w a=a p=p
 
 #ifdef MIM
  device subcircuit xcmimc1 *mimcap  m3 nwell,pwell,space/w error a=a p=p s=subs
  device subcircuit xcmimc2 *mimcap2 m4,mimcc/m4 nwell,pwell,space/w error a=a p=p s=subs
 #endif (MIM)
 
- variants (lvs),(si)
+ variants (orig)
 
  device mosfet pshort scpfet,pfet pdiff,pdiffres,pdc nwell 
  device mosfet ppu ppu pdiff,pdiffres,pdc nwell 
  device mosfet plowvt pfetlvt pdiff,pdiffres,pdc nwell 
+ device mosfet pmedvt pfetmvt pdiff,pdiffres,pdc nwell 
  device mosfet phighvt pfethvt pdiff,pdiffres,pdc nwell 
  device mosfet nshort scnfet,npd,npass,nfet ndiff,ndiffres,ndc pwell,space/w
  device mosfet npd npd ndiff,ndiffres,ndc pwell,space/w
