Further refinement on the xcircuit libraries, especially for
sky130_fd_pr.
diff --git a/sky130/xcircuit/sky130.xcircuitrc b/sky130/xcircuit/sky130.xcircuitrc
index c39c00e..a329697 100644
--- a/sky130/xcircuit/sky130.xcircuitrc
+++ b/sky130/xcircuit/sky130.xcircuitrc
@@ -8,3 +8,121 @@
 library 3 load sky130_fd_pr
 library make TECHNAME_digital
 library 4 load sky130_fd_sc_hd
+#
+# Load math libraries
+namespace path {::tcl::mathop ::tcl::mathfunc}
+
+# Deal with SPICE-type unit suffixes
+proc unit_val {unit} {
+    if {$unit == "T"} {
+	return 1.0E9
+    } elseif {$unit == "G"} {
+	return 1.0E9
+    } elseif {$unit == "M"} {
+	return 1.0E6
+    } elseif {$unit == "k"} {
+	return 1.0E3
+    } elseif {$unit == "m"} {
+	return 1.0E-3 
+    } elseif {$unit == "u"} {
+	return 1.0E-6
+    } elseif {$unit == "n"} {
+	return 1.0E-9
+    } elseif {$unit == "p"} {
+	return 1.0E-12
+    } elseif {$unit == "f"} {
+	return 1.0E-15
+    } elseif {$unit == "a"} {
+	return 1.0E-18
+    } else {
+	return 1.0
+    }
+}
+
+#-----------------------------------------------
+# Procedures used with sky130_fd_pr library
+#-----------------------------------------------
+
+proc limit_low {value limit} {
+    if {$value < $limit} {
+        set rval $limit
+    } else {
+        set rval $value
+    }
+    return [format "%1.3f" $rval]
+}
+
+# Return MiM cap capacitance value in fF
+proc get_mim_value {l w mult} {
+    return [* $l $w $mult]
+}
+
+# Return high-res poly resistor value in kOhms
+proc get_xres_value {l name} {
+    case $name in \
+    res_high_po_0p35 {set rval [* 2.0 [/ $l 0.35]]} \
+    res_high_po_0p69 {set rval [* 2.0 [/ $l 0.69]]} \
+    res_high_po_1p41 {set rval [* 2.0 [/ $l 1.41]]} \
+    res_high_po_2p85 {set rval [* 2.0 [/ $l 2.85]]} \
+    res_high_po_5p73 {set rval [* 2.0 [/ $l 5.73]]} \
+    default {set rval 0}
+    return [format "%1.3f" $rval]
+}
+
+# Get VPP cap values according to model (values in fF)
+proc get_vpp_noshield_value {name mult} {
+    case $name in \
+    02p4x04p6_m1m2_noshield {set cval 4.627} \
+    02p7x06p1_m1m2m3m4_shieldl1_fingercap {set cval 12.549} \
+    02p7x11p1_m1m2m3m4_shieldl1_fingercap {set cval 12.399} \
+    02p7x21p1_m1m2m3m4_shieldl1_fingercap {set cval 46.896} \
+    02p7x41p1_m1m2m3m4_shieldl1_fingercap {set cval 93.188} \
+    02p9x06p1_m1m2m3m4_shieldl1_fingercap2 {set cval 13.125} \
+    04p4x04p6_l1m1m2_noshield {set cval 10.281} \
+    04p4x04p6_m1m2_noshield {set cval 8.150} \
+    04p4x04p6_m1m2_noshield_o2 {set cval 9.841} \
+    04p4x04p6_m1m2_shieldl1 {set cval 8.879} \
+    04p4x04p6_m1m2m3_shieldl1 {set cval 11.117} \
+    08p6x07p8_l1m1m2_noshield {set cval 41.828} \
+    08p6x07p8_m1m2_noshield {set cval 35.826} \
+    08p6x07p8_m1m2_shieldl1 {set cval 34.782} \
+    08p6x07p8_m1m2m3_shieldl1 {set cval 43.728} \
+    11p3x11p3_m1m2m3m4_shieldl1_wafflecap {set cval 112.497} \
+    11p5x11p7_l1m1m2_noshield {set cval 96.064} \
+    11p5x11p7_m1m2_noshield {set cval 75.963} \
+    11p5x11p7_m1m2_shieldl1 {set cval 78.124} \
+    11p5x11p7_m1m2m3_shieldl1 {set cval 98.696} \
+    11p5x11p7_m1m4_noshield {set cval 111.693} \
+    44p7x23p1_pol1m1m2m3m4m5_noshield {set cval 1495.053} \
+    default {set cval 0}
+    return [* $cval $mult]
+}
+
+proc get_vpp_shield_value {name mult} {
+    case $name in \
+    04p4x04p6_m1m2m3_shieldl1m5_floatm4 {set cval 11.443} \
+    04p4x04p6_m1m2m3_shieldl1m5_floatm4_top {set cval 12.098} \
+    05p9x05p9_m1m2m3m4_shieldl1_wafflecap {set cval 28.577} \
+    06p8x06p1_l1m1m2m3_shieldpom4 {set cval 36.122} \
+    06p8x06p1_l1m1m2m3_shieldpom4_top {set cval 36.666} \
+    06p8x06p1_m1m2m3_shieldl1m4 {set cval 28.220} \
+    06p8x06p1_m1m2m3_shieldl1m4_top {set cval 27.723} \
+    08p6x07p8_m1m2m3_shieldl1m5_floatm4 {set cval 43.643} \
+    08p6x07p8_m1m2m3_shieldl1m5_floatm4_top {set 6.363} \
+    11p3x11p8_l1m1m2m3m4_shieldm5_nhvtop {set cval 183.472} \
+    11p5x11p7_l1m1m2m3_shieldm4 {set cval 123.258} \
+    11p5x11p7_l1m1m2m3_shieldm4_top {set cval 493.018} \
+    11p5x11p7_l1m1m2m3_shieldpom4 {set cval 128.617} \
+    11p5x11p7_l1m1m2m3_shieldpom4_top {set cval 516.838} \
+    11p5x11p7_l1m1m2m3m4_shieldm5 {set cval 141.412} \
+    11p5x11p7_l1m1m2m3m4_shieldm5_top {set cval 565.641} \
+    11p5x11p7_l1m1m2m3m4_shieldpom5 {set cval 147.117} \
+    11p5x11p7_l1m1m2m3m4_shieldpom5_top {set cval 588.113} \
+    11p5x11p7_m1m2m3_shieldl1m5_floatm4 {set cval 100.308} \
+    11p5x11p7_m1m2m3_shieldl1m5_floatm4_top {set cval 78.913} \
+    11p5x11p7_m1m2m3m4_shieldl1m5 {set cval 120.658} \
+    11p5x11p7_m1m2m3m4_shieldl1m5_top {set cval 482.574} \
+    11p5x11p7_m1m2m3m4_shieldm5 {set cval 111.909} \
+    default {set cval 0}
+    return [* $cval $mult]
+}
diff --git a/sky130/xcircuit/sky130_fd_pr.lps b/sky130/xcircuit/sky130_fd_pr.lps
index 501168b..a4bb081 100644
--- a/sky130/xcircuit/sky130_fd_pr.lps
+++ b/sky130/xcircuit/sky130_fd_pr.lps
@@ -5,13 +5,14 @@
 %
 
 % Depend sky130_fd_pr::NPNModel generic::arrowhead
+% Depend sky130_fd_pr::PNPModel generic::arrowhead
 
 % XCircuitLib library objects
 /sky130_fd_pr::pMOS3term {
 <</@mult 1 /@model (pfet_01v8) 
-(lindex {pfet_01v8 pfet_01v8_lvt pfet_01v8_hvt pfet_g5v0d10v5} 0) pop /@subs 
-(avdd) /p_yps2 48 /p_xps2 16 /p_yps1 0 /p_xps1 16 /p_yps 16 /p_xps 16 /p_rot 0 /@fingers 
-(1) /@class (X) /@width (1) /@length (0.18) /@index (?) /p_jst 28 >> begingate
+(lindex {pfet_01v8 pfet_01v8_lvt pfet_01v8_hvt} 0) pop /@subs (avdd) /p_yps2 48 /p_xps2 
+16 /p_yps1 0 /p_xps1 16 /p_yps 16 /p_xps 16 /p_rot 0 /@fingers (1) /@class 
+(X) /@width (1) /@length (0.18) /@index (?) /p_jst 28 >> begingate
 1 1.000 -44 -28 -44 28 2 polygon
 1 1.000 -60 0 -64 0 2 polygon
 1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
@@ -21,13 +22,13 @@
 (D) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
 (G) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
 0.180 0.545 0.341 scb
-mark @fingers ( NF=) @mult ( M=) @length ( L=) @width ( W=) @model 
-( sky130_fd_pr__) @subs ( %pD %pG %pS ) @index @class (spice:) 
+mark @mult ( mult=) @mult ( m=) @fingers ( nf=) @length ( l=) @width ( w=) 
+@model ( sky130_fd_pr__) @subs ( %pD %pG %pS ) @index @class (spice:) 
 {/Times-Roman cf} ctmk 4 360.000 1.000 -196 -139 infolabel
 mark ( %x %y) @width ( ) @length (sim:p %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
 0.000 1.000 -196 -187 infolabel
 0.647 0.165 0.165 scb
-mark @fingers (NF=) {CR} @mult {hS} (=) {hS} (X) {CR} @length (=) {Tf} (L) {hS} 
+mark @fingers (NF=) {CR} @mult {hS} (=) {hS} (M) {CR} @length (=) {Tf} (L) {hS} 
 {CR} @width (=) {Ts} (W) {/Times-Roman cf} ctmk p_jst p_rot 0.700 p_xps1 p_yps1 
 label
 0.000 0.000 1.000 scb
@@ -37,18 +38,44 @@
 endgate
 } def
 
-1.000 90.000 <</@model (pfet_01v8) /p_xps 32 /p_yps -32 /p_xps1 48 /p_yps1 -40 /p_rot 270 
-/p_xps2 -32 >> /sky130_fd_pr::pMOS3term libinst
-<</@model (pfet_01v8) /@length (0.50) /@subs (dvdd3) >> /sky130_fd_pr::pMOS3term libinst
-1.000 90.000 <</@model (pfet_01v8) /p_xps 32 /p_yps -32 /p_xps1 48 /p_yps1 -40 /p_rot 270 
-/p_xps2 -32 /@length (0.50) /@subs (dvdd3) >> /sky130_fd_pr::pMOS3term libinst
+/sky130_fd_pr::pMOS4term {
+<</p_jst 28 /@index (?) /@length (0.18) /@width (1) /@class (X) /@fingers (1) /p_rot 
+0 /p_xps 16 /p_yps 16 /p_xps1 16 /p_yps1 -16 /p_xps2 16 /p_yps2 48 /@model 
+(pfet_01v8) (lindex {pfet_01v8 pfet_01v8_lvt pfet_01v8_hvt} 0) pop /@mult 
+1 >> begingate
+1 1.000 -44 -28 -44 28 2 polygon
+1 1.000 -60 0 -64 0 2 polygon
+1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
+1 1.000 -52 0 8 0.000 360.000 xcarc
+1.000 0.000 0.000 scb
+(S) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(D) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(G) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @fingers ( nf=) @length ( l=) @width ( w=) 
+@model ( %pD %pG %pS %pB sky130_fd_pr__) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 360.000 1.000 -196 -139 infolabel
+mark ( %x %y) @width ( ) @length (sim:p %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
+0.000 1.000 -196 -187 infolabel
+0.647 0.165 0.165 scb
+mark @fingers {hS} (=) {Tf} (NF) {CR} @mult {hS} (=) {Tf} (M) {CR} @length {hS} 
+(=) {Tf} (L) {hS} {CR} @width {hS} (=) {Ts} {hS} (W ) {/Times-Roman cf} ctmk 
+p_jst p_rot 0.700 p_xps1 p_yps1 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 16 p_rot 0.700 p_xps2 p_yps2 label
+sce
+mark @model {/Times-RomanISO cf} ctmk 16 p_rot 0.700 p_xps p_yps label
+1 1.000 -32 0 32 0 2 polygon
+1.000 0.000 0.000 scb
+(B) {/Times-Roman cf} 2 4 0.000 1.000 32 0 pinlabel
+endgate
+} def
 
 /sky130_fd_pr::nMOS3term {
 <</@subs (agnd) /p_yps2 -16 /p_xps2 16 /p_yps1 8 /p_xps1 16 /p_yps 40 /p_xps 16 /p_rot 
 0 /@fingers (1) /@class (X) /@width (1) /@length (0.18) /@mult 1 /@model 
-(nfet_01v8) 
-(lindex {nfet_01v8 nfet_01v8_lvt nfet_01v8_hvt nfet_g5v0d10v5} 0) pop /@index 
-(?) /p_jst 28 >> begingate
+(nfet_01v8) (lindex {nfet_01v8 nfet_01v8_lvt nfet_01v8_hvt} 0) pop /@index (?) /p_jst 
+28 >> begingate
 1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
 1 1.000 -44 -28 -44 28 2 polygon
 1 1.000 -44 0 -64 0 2 polygon
@@ -57,13 +84,13 @@
 (S) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
 (D) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
 0.180 0.545 0.341 scb
-mark @fingers ( m=) @length ( l=) @width ( w=) @model ( sky130_fd_pr__) @subs 
-( %pD %pG %pS ) @index @class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 
--244 -139 infolabel
+mark @mult ( mult=) @fingers ( m=) @length ( l=) @width ( w=) @model 
+( sky130_fd_pr__) @subs ( %pD %pG %pS ) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
 mark ( %x %y) @width ( ) @length (sim:n %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
 0.000 1.000 -244 -187 infolabel
 0.647 0.165 0.165 scb
-mark @fingers (=) {Tf} {Tf} (X) {CR} @length (=) {Tf} (L) {hS} {CR} @width (=) 
+mark @fingers (=) {Tf} {Tf} (M) {CR} @length (=) {Tf} (L) {hS} {CR} @width (=) 
 {Ts} (W) {/Times-Roman cf} ctmk p_jst p_rot 0.700 p_xps2 p_yps2 label
 0.000 0.000 1.000 scb
 mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
@@ -72,6 +99,171 @@
 endgate
 } def
 
+/sky130_fd_pr::nMOS4term {
+<</p_jst 28 /@index (?) /@model (nfet_01v8) 
+(lindex {nfet_01v8 nfet_01v8_lvt nfet_01v8_hvt} 0) pop /@mult 1 /@length (0.18) /@width 
+(1) /@class (X) /@fingers (1) /p_rot 0 /p_xps 16 /p_yps 40 /p_xps1 16 /p_yps1 
+24 /p_xps2 16 /p_yps2 -16 >> begingate
+1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
+1 1.000 -44 -28 -44 28 2 polygon
+1 1.000 -44 0 -64 0 2 polygon
+1.000 0.000 0.000 scb
+(G) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
+(S) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(D) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @fingers ( m=) @fingers ( nf=) @length ( l=) @width ( w=) 
+@model ( %pD %pG %pS %pB sky130_fd_pr__) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+mark ( %x %y) @width ( ) @length (sim:n %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
+0.000 1.000 -244 -187 infolabel
+0.647 0.165 0.165 scb
+mark @fingers {hS} (=) {Tf} (NF) {CR} @fingers {hS} (=) {Tf} {Tf} (M) {CR} 
+@length {hS} (=) {Tf} (L) {hS} {CR} @width {hS} (=) {Ts} {hS} (W ) 
+{/Times-Roman cf} ctmk p_jst p_rot 0.700 p_xps2 p_yps2 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 16 p_rot 0.700 p_xps p_yps label
+sce
+mark @model {/Times-RomanISO cf} ctmk 20 p_rot 0.700 p_xps1 p_yps1 label
+1 1.000 -32 0 32 0 2 polygon
+1.000 0.000 0.000 scb
+(B) {/Times-Roman cf} 2 4 0.000 1.000 32 0 pinlabel
+endgate
+} def
+
+/sky130_fd_pr::hvnMOS3term {
+<</p_jst 28 /@index (?) /@mult 1 /@length (0.50) /@width (1) /@class (X) /@fingers 
+(1) /p_rot 0 /p_xps 16 /p_yps 40 /p_xps1 16 /p_yps1 8 /p_xps2 16 /p_yps2 
+-16 /@subs (agnd) >> begingate
+0.800 0.800 0.800 scb
+496 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+sce
+1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
+1 1.000 -44 0 -64 0 2 polygon
+1.000 0.000 0.000 scb
+(G) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
+(S) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(D) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @fingers ( m=) @length ( l=) @width 
+( sky130_fd_pr__nfet_g5v0d10v5 w=) @subs ( %pD %pG %pS ) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+mark ( %x %y) @width ( ) @length (sim:n %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
+0.000 1.000 -244 -187 infolabel
+0.647 0.165 0.165 scb
+mark @fingers (=) {Tf} {Tf} (M) {CR} @length (=) {Tf} (L) {hS} {CR} @width (=) 
+{Ts} (W) {/Times-Roman cf} ctmk p_jst p_rot 0.700 p_xps2 p_yps2 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+sce
+(nfet_g5v0d10v5) {/Times-RomanISO cf} 2 20 p_rot 0.700 p_xps1 p_yps1 label
+0 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+endgate
+} def
+
+/sky130_fd_pr::hvnMOS4term {
+<</p_yps2 -16 /p_xps2 16 /p_yps1 24 /p_xps1 16 /p_yps 40 /p_xps 16 /p_rot 0 /@fingers 
+(1) /@class (X) /@width (1) /@length (0.50) /@mult 1 /@index (?) /p_jst 
+28 >> begingate
+0.800 0.800 0.800 scb
+496 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+sce
+1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
+1 1.000 -44 0 -64 0 2 polygon
+1.000 0.000 0.000 scb
+(G) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
+(S) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(D) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @fingers ( m=) @fingers ( nf=) @length ( l=) @width 
+( %pD %pG %pS %pB sky130_fd_pr__nfet_g5v0d10v5 w=) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+mark ( %x %y) @width ( ) @length (sim:n %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
+0.000 1.000 -244 -187 infolabel
+0.647 0.165 0.165 scb
+mark @fingers {hS} (=) {Tf} (NF) {CR} @fingers {hS} (=) {Tf} {Tf} (M) {CR} 
+@length {hS} (=) {Tf} (L) {hS} {CR} @width {hS} (=) {Ts} {hS} (W ) 
+{/Times-Roman cf} ctmk p_jst p_rot 0.700 p_xps2 p_yps2 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 16 p_rot 0.700 p_xps p_yps label
+sce
+1 1.000 -32 0 32 0 2 polygon
+1.000 0.000 0.000 scb
+(B) {/Times-Roman cf} 2 4 0.000 1.000 32 0 pinlabel
+sce
+0 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+(nfet_g5v0d10v5) {/Times-RomanISO cf} 2 20 p_rot 0.700 p_xps1 p_yps1 label
+endgate
+} def
+
+/sky130_fd_pr::hvpMOS3term {
+<</p_jst 28 /@index (?) /@length (0.50) /@width (1) /@class (X) /@fingers (1) /p_rot 
+0 /p_xps 16 /p_yps 16 /p_xps1 16 /p_yps1 0 /p_xps2 16 /p_yps2 48 /@subs 
+(avdd) /@mult 1 >> begingate
+0.800 0.800 0.800 scb
+496 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+sce
+1 1.000 -60 0 -64 0 2 polygon
+1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
+1 1.000 -52 0 8 0.000 360.000 xcarc
+1.000 0.000 0.000 scb
+(S) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(D) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(G) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @fingers ( nf=) @length ( l=) @width 
+( sky130_fd_pr__pfet_g5v0d10v5 w=) @subs ( %pD %pG %pS ) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 360.000 1.000 -196 -139 infolabel
+mark ( %x %y) @width ( ) @length (sim:p %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
+0.000 1.000 -196 -187 infolabel
+0.647 0.165 0.165 scb
+mark @fingers (NF=) {CR} @mult {hS} (=) {hS} (M) {CR} @length (=) {Tf} (L) {hS} 
+{CR} @width (=) {Ts} (W) {/Times-Roman cf} ctmk p_jst p_rot 0.700 p_xps1 p_yps1 
+label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 16 p_rot 0.700 p_xps2 p_yps2 label
+sce
+(pfet_g5v0d10v5) {/Times-RomanISO cf} 2 16 p_rot 0.700 p_xps p_yps label
+0 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+endgate
+} def
+
+/sky130_fd_pr::hvpMOS4term {
+<</@mult 1 /p_yps2 48 /p_xps2 16 /p_yps1 -16 /p_xps1 16 /p_yps 16 /p_xps 16 /p_rot 
+0 /@fingers (1) /@class (X) /@width (1) /@length (0.50) /@index (?) /p_jst 
+28 >> begingate
+0.800 0.800 0.800 scb
+496 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+sce
+1 1.000 -60 0 -64 0 2 polygon
+1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
+1 1.000 -52 0 8 0.000 360.000 xcarc
+1.000 0.000 0.000 scb
+(S) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(D) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(G) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @fingers ( nf=) @length ( l=) @width 
+( %pD %pG %pS %pB sky130_fd_pr__pfet_g5v0d10v5 w=) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 360.000 1.000 -196 -139 infolabel
+mark ( %x %y) @width ( ) @length (sim:p %pG %pD %pS ) {/Times-Roman cf} ctmk 4 
+0.000 1.000 -196 -187 infolabel
+0.647 0.165 0.165 scb
+mark @fingers {hS} (=) {Tf} (NF) {CR} @mult {hS} (=) {Tf} (M) {CR} @length {hS} 
+(=) {Tf} (L) {hS} {CR} @width {hS} (=) {Ts} {hS} (W ) {/Times-Roman cf} ctmk 
+p_jst p_rot 0.700 p_xps1 p_yps1 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 16 p_rot 0.700 p_xps2 p_yps2 label
+sce
+(pfet_g5v0d10v5) {/Times-RomanISO cf} 2 16 p_rot 0.700 p_xps p_yps label
+1 1.000 -32 0 32 0 2 polygon
+1.000 0.000 0.000 scb
+(B) {/Times-Roman cf} 2 4 0.000 1.000 32 0 pinlabel
+sce
+0 1.000 -44 -28 -44 28 -38 28 -38 -28 4 polygon
+endgate
+} def
+
 /generic::arrowhead {
 % nonetwork
 begingate
@@ -85,11 +277,10 @@
 } def
 
 /sky130_fd_pr::NPNModel {
-<</@subs (agnd) /p_yps2 56 /p_xps2 16 /p_yps1 0 /p_xps1 16 /p_yps 24 /p_xps 16 /p_rot 
-0 /@length (10.16) /@width (0.2) /@m (1) /@model 
-(rf_npn_05v5_W1p00L1p00) 
-(lindex {rf_npn_05v5_W1p00L1p00 rf_npn_05v5_W1p00L2p00} 0) pop /@index (?) /@class 
-(X) >> begingate
+<</@mult 1 /@subs (agnd) /p_yps2 56 /p_xps2 16 /p_yps1 0 /p_xps1 16 /p_yps 24 /p_xps 
+16 /p_rot 0 /@model (rf_npn_05v5_W1p00L1p00) 
+(lindex {rf_npn_05v5_W1p00L1p00 rf_npn_05v5_W1p00L2p00 rf_npn_11v0_W1p00L1p00} 0) pop /@index 
+(?) /@class (X) >> begingate
 1 1.000 -48 0 -64 0 2 polygon
 1 1.000 -48 48 -48 -48 2 polygon
 1 1.000 0 48 -48 22 2 polygon
@@ -102,43 +293,67 @@
 (B) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
 (E) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
 0.180 0.545 0.341 scb
-mark @m ( M=) @length ( L=) @width ( W=) @model ( sky130_fd_pr__) @subs 
-( %pC %pB %pE ) @index @class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 
--244 -139 infolabel
+mark @mult ( mult=) @mult ( m=) @model ( sky130_fd_pr__) @subs ( %pC %pB %pE ) 
+@index @class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
 (sim:b %pB %pE %pC) {/Times-Roman cf} 2 4 0.000 1.000 -244 -187 infolabel
 0.000 0.000 1.000 scb
 mark @index @class {/Times-Roman cf} ctmk 16 p_rot 0.700 p_xps2 p_yps2 label
 sce
 mark @model {/Times-RomanISO cf} ctmk 16 p_rot 0.700 p_xps p_yps label
 0.647 0.165 0.165 scb
-mark @m {Tf} (=) {Tf} (X) {CR} @length {Tf} (=) {Tf} (L) {CR} @width {Ts} {hS} 
-(=) {Ts} {hS} (W) {/Times-Roman cf} ctmk 28 p_rot 0.700 p_xps1 p_yps1 label
+mark @mult {Tf} (=) {Tf} (M) {/Times-Roman cf} ctmk 28 p_rot 0.700 p_xps1 
+p_yps1 label
 endgate
 } def
 
-1.000 90.000 <</@model (rf_npn_05v5_W1p00L1p00) /p_yps -40 /p_xps2 -32 /p_xps 32 /p_xps1 48 
-/p_yps1 -32 /p_rot 270 >> /sky130_fd_pr::NPNModel libinst
+/sky130_fd_pr::PNPModel {
+<</@mult 1 /@class (X) /@index (?) /@model (rf_pnp_05v5_W0p68L0p68) 
+(lindex {rf_pnp_05v5_W0p68L0p68 rf_pnp_05v5_W3p40L3p40} 0) pop /p_rot 0 /p_xps 
+16 /p_yps 24 /p_xps1 16 /p_yps1 0 /p_xps2 16 /p_yps2 56 /@subs (agnd) >> begingate
+1 1.000 -48 0 -64 0 2 polygon
+1 1.000 -48 48 -48 -48 2 polygon
+1 1.000 0 48 -48 22 2 polygon
+1 1.000 0 48 0 64 2 polygon
+1 1.000 0 -48 -48 -22 2 polygon
+1 1.000 0 -48 0 -64 2 polygon
+1.000 241.557 -48 22 generic::arrowhead
+1.000 0.000 0.000 scb
+(C) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(B) {/Times-Roman cf} 2 7 0.000 1.000 -64 0 pinlabel
+(E) {/Times-Roman cf} 2 1 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @model ( sky130_fd_pr__) @subs ( %pC %pB %pE ) 
+@index @class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+(sim:b %pB %pE %pC) {/Times-Roman cf} 2 4 0.000 1.000 -244 -187 infolabel
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 16 p_rot 0.700 p_xps2 p_yps2 label
+sce
+mark @model {/Times-RomanISO cf} ctmk 16 p_rot 0.700 p_xps p_yps label
+0.647 0.165 0.165 scb
+mark @mult {Tf} (=) {Tf} (M) {/Times-Roman cf} ctmk 28 p_rot 0.700 p_xps1 
+p_yps1 label
+endgate
+} def
 
 /sky130_fd_pr::HighResModel {
-<</@substype (sub) (lindex {sub well} 0) pop /@subs (avdd) /@width (1) /@length 
-(1) /p_yps2 -48 /p_xps2 32 /@model (res_high_po_0p35) 
+<</@subs (avdd) /@length (1) /p_yps2 16 /p_xps2 32 /@model (res_high_po_0p35) 
 (lindex {res_high_po_0p35 res_high_po_0p69 res_high_po_1p41 res_high_po_2p85 res_high_po_5p73} 0) pop /p_yps1 
-0 /p_xps1 32 /p_yps 32 /p_xps 32 /p_rot 0 /@class (X) /@value (1.0) /@units 
-(k) /@index (?) /p_jst 20 >> begingate
+-32 /p_xps1 32 /p_yps 48 /p_xps 32 /p_rot 0 /@class (X) /@value (5.714) 
+(get_xres_value @length @model) pop /@index (?) /p_jst 20 >> begingate
 1 1.000 0 64 0 36 2 polygon
 1 1.000 0 -64 0 -36 2 polygon
 1 1.000 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon
 1.000 0.000 0.000 scb
-(1) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
-(2) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(r1) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(r0) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
 0.180 0.545 0.341 scb
-mark @subs (=) @substype ( ) @width ( W=) @length ( L=) @units @value ( R=) 
-@model ( %p1 %p2 sky130_fd_pr__) @index @class (spice:) {/Times-Roman cf} ctmk 
-4 0.000 1.000 -208 -160 infolabel
-(sim:r %p1 %p2) {/Times-Roman cf} 2 4 0.000 1.000 -208 -208 infolabel
+mark @length (k l=) @value ( r=) @model ( sky130_fd_pr__) @subs ( %pr0 %pr1 ) 
+@index @class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 -208 -160 infolabel
+(sim:r %pr0 %pr1) {/Times-Roman cf} 2 4 0.000 1.000 -208 -208 infolabel
 0.647 0.165 0.165 scb
-mark (W) {/Symbol cf} @units {hS} @value {/Times-Roman cf} ctmk p_jst p_rot 
-0.700 p_xps1 p_yps1 label
+mark (\265m) {/Times-RomanISO cf} @length (= ) {Tf} (L) {CR} {/Times-Roman cf} 
+(W) {/Symbol cf} (k) {hS} @value {hS} (=) {Ts} (R ) {/Times-Roman cf} ctmk 
+p_jst p_rot 0.700 p_xps1 p_yps1 label
 0.000 0.000 1.000 scb
 mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
 sce
@@ -147,37 +362,272 @@
 } def
 
 /sky130_fd_pr::MiMCap {
-<</@substype (sub) (lindex {sub well} 0) pop /@subs (agnd) /@fingers (1) /@length 
-(1) /@width (1) /p_yps2 -8 /p_xps2 48 /p_yps1 24 /p_xps1 48 /p_yps 56 /p_xps 
-48 /p_rot 0 /@class (X) /@value (1.0) /@units (p) /@index (?) /p_jst 20 >> 
-begingate
+<</@mult 1 /@model (m3_1) (lindex {m3_1 m3_2} 0) pop /@length (1) /@width (1) /p_yps2 
+-24 /p_xps2 48 /p_yps1 8 /p_xps1 48 /p_yps 72 /p_xps 48 /p_rot 0 /@class 
+(X) /@value (1) (get_mim_value @length @width @mult) pop /@index (?) /p_jst 
+20 >> begingate
 1 1.000 0 -64 0 -6 2 polygon
 1 1.000 0 64 0 6 2 polygon
 1 1.000 -32 6 32 6 2 polygon
 1.000 0.000 0.000 scb
-(1) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
-(2) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(c1) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(c0) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
 0.180 0.545 0.341 scb
-mark @subs (=) @substype ( ) @fingers ( M=) @width ( W=) @length ( L=) @units 
-@value ( %p1 %p2 MIM C=) @index (spice:C) {/Times-Roman cf} ctmk 4 0.000 1.000 
--208 -160 infolabel
-(sim:c %p1 %p2) {/Times-Roman cf} 2 4 0.000 1.000 -208 -208 infolabel
+mark @mult ( mult=) @mult ( m=) @width ( w=) @length (f l=) @value ( c=) @model 
+( %pc0 %pc1 sky130_fd_pr__cap_mim_) @index @class (spice:) {/Times-Roman cf} 
+ctmk 4 0.000 1.000 -208 -160 infolabel
+(sim:c %pc0 %pc1) {/Times-Roman cf} 2 4 0.000 1.000 -208 -208 infolabel
 0.647 0.165 0.165 scb
-mark (F) @units {hS} @value {/Times-Roman cf} ctmk p_jst p_rot 0.700 p_xps1 
-p_yps1 label
+mark (fF) {hS} @value {hS} (=) {Ts} {hS} ( ) {Tf} (C) {/Times-Roman cf} ctmk 
+p_jst p_rot 0.700 p_xps1 p_yps1 label
 0.000 0.000 1.000 scb
 mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
 0.647 0.165 0.165 scb
-mark @fingers {Tf} (=) {Tf} (X) {CR} @length {Tf} (=) {Tf} (L) {CR} @width {Ts} 
-{hS} (=) {Ts} {hS} (W) {/Times-RomanISO cf} ctmk 28 p_rot 0.700 p_xps2 p_yps2 
-label
+mark @mult {Tf} (=) {Tf} (M) {CR} (\265m) {/Times-RomanISO cf} @length {Tf} (=) 
+{Tf} (L) {CR} (\265m) {/Times-RomanISO cf} @width {Ts} {hS} (=) {Ts} {hS} (W) 
+{/Times-RomanISO cf} ctmk 28 p_rot 0.700 p_xps2 p_yps2 label
 sce
 1 1.000 0 -80 74 66.000 114.000 xcarc
+mark @model {/Times-Roman cf} ctmk 16 p_rot 0.700 32 32 label
 endgate
 } def
 
-1.000 90.000 <</@substype (sub) /p_xps -48 /p_yps 24 /p_yps1 -24 /p_xps2 80 /p_yps2 -24 
-/p_rot 270 >> /sky130_fd_pr::MiMCap libinst
+/sky130_fd_pr::VPPCap2term {
+<</@sub (gnd) /p_jst 20 /@index (?) /@value (4.627) 
+(get_vpp_noshield_val @model @mult) pop /@class (X) /p_rot 0 /p_xps 48 /p_yps 
+48 /p_xps1 48 /p_yps1 -16 /p_xps2 48 /p_yps2 -40 /@model 
+(02p4x04p6_m1m2_noshield) 
+(lindex { 02p4x04p6_m1m2_noshield  02p7x06p1_m1m2m3m4_shieldl1_fingercap 02p7x11p1_m1m2m3m4_shieldl1_fingercap  02p7x21p1_m1m2m3m4_shieldl1_fingercap 02p7x41p1_m1m2m3m4_shieldl1_fingercap  02p9x06p1_m1m2m3m4_shieldl1_fingercap2 04p4x04p6_l1m1m2_noshield  04p4x04p6_m1m2_noshield 04p4x04p6_m1m2_noshield_o2  04p4x04p6_m1m2_shieldl1 04p4x04p6_m1m2m3_shieldl1  08p6x07p8_l1m1m2_noshield 08p6x07p8_m1m2_noshield  08p6x07p8_m1m2_shieldl1 08p6x07p8_m1m2m3_shieldl1  11p3x11p3_m1m2m3m4_shieldl1_wafflecap 11p5x11p7_l1m1m2_noshield  11p5x11p7_m1m2_noshield 11p5x11p7_m1m2_shieldl1  11p5x11p7_m1m2m3_shieldl1 11p5x11p7_m1m4_noshield  44p7x23p1_pol1m1m2m3m4m5_noshield} 0) pop /@mult 
+1 >> begingate
+1 1.000 0 -64 0 -6 2 polygon
+1 1.000 0 64 0 6 2 polygon
+1 1.000 -32 6 32 6 2 polygon
+1.000 0.000 0.000 scb
+(c1) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(c0) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult (f m=) @value ( c=) @model ( sky130_fd_pr__cap_vpp_) 
+@sub ( %pc0 %pc1 ) @index @class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 
+-208 -160 infolabel
+(sim:c %pc0 %pc1) {/Times-Roman cf} 2 4 0.000 1.000 -208 -208 infolabel
+0.647 0.165 0.165 scb
+mark (fF) {hS} @value {hS} (=) {Ts} {hS} ( ) {Tf} (C) {/Times-Roman cf} ctmk 
+p_jst p_rot 0.700 p_xps1 p_yps1 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+0.647 0.165 0.165 scb
+mark @mult {Tf} (=) {Tf} (M) {/Times-RomanISO cf} ctmk 28 p_rot 0.700 p_xps2 
+p_yps2 label
+sce
+1 1.000 0 -80 74 66.000 114.000 xcarc
+mark @model {/Times-Roman cf} ctmk 20 0.000 0.700 48 16 label
+endgate
+} def
+
+/sky130_fd_pr::VPPCap3term {
+<</@mult 1 /@model (02p4x04p6_m1m2_noshield) 
+(lindex {02p4x04p6_m1m2_noshield  02p7x06p1_m1m2m3m4_shieldl1_fingercap 02p7x11p1_m1m2m3m4_shieldl1_fingercap  02p7x21p1_m1m2m3m4_shieldl1_fingercap 02p7x41p1_m1m2m3m4_shieldl1_fingercap  02p9x06p1_m1m2m3m4_shieldl1_fingercap2 04p4x04p6_l1m1m2_noshield  04p4x04p6_m1m2_noshield 04p4x04p6_m1m2_noshield_o2  04p4x04p6_m1m2_shieldl1 04p4x04p6_m1m2m3_shieldl1  08p6x07p8_l1m1m2_noshield 08p6x07p8_m1m2_noshield  08p6x07p8_m1m2_shieldl1 08p6x07p8_m1m2m3_shieldl1  11p3x11p3_m1m2m3m4_shieldl1_wafflecap 11p5x11p7_l1m1m2_noshield  11p5x11p7_m1m2_noshield 11p5x11p7_m1m2_shieldl1  11p5x11p7_m1m2m3_shieldl1 11p5x11p7_m1m4_noshield  44p7x23p1_pol1m1m2m3m4m5_noshield} 0) pop /p_yps2 
+-40 /p_xps2 48 /p_yps1 -16 /p_xps1 48 /p_yps 48 /p_xps 48 /p_rot 0 /@class 
+(X) /@value (4.627) (get_vpp_noshield_value @model @mult) pop /@index 
+(?) /p_jst 20 >> begingate
+1 1.000 0 -64 0 -6 2 polygon
+1 1.000 0 64 0 6 2 polygon
+1 1.000 -32 6 32 6 2 polygon
+1.000 0.000 0.000 scb
+(c1) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(c0) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult (f m=) @value ( c=) @model 
+( %pc0 %pc1 %pb sky130_fd_pr__cap_vpp_) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 360.000 1.000 -208 -160 infolabel
+(sim:c %pc0 %pc1) {/Times-Roman cf} 2 4 0.000 1.000 -208 -208 infolabel
+0.647 0.165 0.165 scb
+mark (fF) {hS} @value {hS} (=) {Ts} {hS} ( ) {Tf} (C) {/Times-Roman cf} ctmk 
+p_jst p_rot 0.700 p_xps1 p_yps1 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+0.647 0.165 0.165 scb
+mark @mult {Tf} (=) {Tf} (M) {/Times-RomanISO cf} ctmk 20 p_rot 0.700 p_xps2 
+p_yps2 label
+sce
+1 1.000 0 -80 74 66.000 114.000 xcarc
+497 1.000 -32 -48 4 0.000 360.000 xcarc
+1.000 0.000 0.000 scb
+(b) {/Times-Roman cf} 2 7 0.000 1.000 -32 -48 pinlabel
+sce
+mark @model {/Times-Roman cf} ctmk 20 0.000 0.700 48 16 label
+endgate
+} def
+
+/sky130_fd_pr::VPPShieldCap {
+<</p_jst 20 /@index (?) /@value (11.443) 
+(get_vpp_shield_value @model @mult) pop /@class (X) /p_rot 0 /p_xps 48 /p_yps 
+40 /p_xps1 50 /p_yps1 -24 /p_xps2 48 /p_yps2 -40 /@model 
+(04p4x04p6_m1m2m3_shieldl1m5_floatm4) 
+(lindex {04p4x04p6_m1m2m3_shieldl1m5_floatm4 04p4x04p6_m1m2m3_shieldl1m5_floatm4_top 05p9x05p9_m1m2m3m4_shieldl1_wafflecap 06p8x06p1_l1m1m2m3_shieldpom4  06p8x06p1_l1m1m2m3_shieldpom4_top 06p8x06p1_m1m2m3_shieldl1m4  06p8x06p1_m1m2m3_shieldl1m4_top 08p6x07p8_m1m2m3_shieldl1m5_floatm4  08p6x07p8_m1m2m3_shieldl1m5_floatm4_top 11p3x11p8_l1m1m2m3m4_shieldm5_nhvtop  11p5x11p7_l1m1m2m3_shieldm4 11p5x11p7_l1m1m2m3_shieldm4_top  11p5x11p7_l1m1m2m3_shieldpom4 11p5x11p7_l1m1m2m3_shieldpom4_top  11p5x11p7_l1m1m2m3m4_shieldm5 11p5x11p7_l1m1m2m3m4_shieldm5_top  11p5x11p7_l1m1m2m3m4_shieldpom5 11p5x11p7_l1m1m2m3m4_shieldpom5_top  11p5x11p7_l1m1m2m3m4_shieldpom5_x 11p5x11p7_l1m1m2m3m4_shieldpom5_x6  11p5x11p7_l1m1m2m3m4_shieldpom5_x7 11p5x11p7_l1m1m2m3m4_shieldpom5_x8  11p5x11p7_l1m1m2m3m4_shieldpom5_x9 11p5x11p7_l1m1m2m3m4_shieldpom5_xtop  11p5x11p7_m1m2m3_shieldl1m5_floatm4 11p5x11p7_m1m2m3_shieldl1m5_floatm4_top  11p5x11p7_m1m2m3m4_shieldl1m5 11p5x11p7_m1m2m3m4_shieldl1m5_top  11p5x11p7_m1m2m3m4_shieldm5} 0) pop /@mult 
+1 >> begingate
+1 1.000 0 -64 0 -6 2 polygon
+1 1.000 0 64 0 6 2 polygon
+1 1.000 -32 6 32 6 2 polygon
+1.000 0.000 0.000 scb
+(c1) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+(c0) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult (f m=) @value ( c=) @model 
+( %pc0 %pc1 %pmet5 %pb sky130_fd_pr__cap_vpp_) @index @class (spice:) 
+{/Times-Roman cf} ctmk 4 0.000 1.000 -208 -160 infolabel
+(sim:c %pc0 %pc1) {/Times-Roman cf} 2 4 0.000 1.000 -208 -208 infolabel
+0.647 0.165 0.165 scb
+mark (fF) {hS} @value {hS} (=) {Ts} {hS} ( ) {Tf} (C) {/Times-Roman cf} ctmk 
+p_jst p_rot 0.700 p_xps1 p_yps1 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+0.647 0.165 0.165 scb
+mark @mult {Tf} (=) {Tf} (M) {/Times-RomanISO cf} ctmk 28 p_rot 0.700 p_xps2 
+p_yps2 label
+sce
+1 1.000 0 -80 74 66.000 114.000 xcarc
+497 1.000 -32 -48 4 0.000 360.000 xcarc
+1.000 0.000 0.000 scb
+(b) {/Times-Roman cf} 2 7 0.000 1.000 -32 -48 pinlabel
+sce
+mark @model {/Times-Roman cf} ctmk 20 0.000 0.700 48 8 label
+497 1.000 -32 32 4 0.000 360.000 xcarc
+1.000 0.000 0.000 scb
+(met5) {/Times-Roman cf} 2 7 0.000 1.000 -32 32 pinlabel
+endgate
+} def
+
+/sky130_fd_pr::nDiode {
+<</p_jst 28 /@index (?) /@model (pw2nd_05v5) 
+(lindex {pw2nd_05v5 pw2nd_05v5_lvt pw2nd_05v5_nvt} 0) pop /@mult 1 /@class (D) /p_rot 
+0 /p_xps 48 /p_yps 24 /p_xps1 48 /p_yps1 -8 /p_xps2 48 /p_yps2 -32 >> begingate
+1.000 0.000 0.000 scb
+(N) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(P) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @model ( %pP %pN sky130_fd_pr__diode_) @index 
+@class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+(sim:d %pP %pN %x %y) {/Times-Roman cf} 2 4 0.000 1.000 -244 -187 infolabel
+0.647 0.165 0.165 scb
+(=1) {Tf} {Tf} (M) {/Times-Roman cf} 5 p_jst p_rot 0.700 p_xps2 p_yps2 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+sce
+mark @model {/Times-RomanISO cf} ctmk 20 p_rot 0.700 p_xps1 p_yps1 label
+497 1.000 0 -24 -32 24 32 24 0 -24 4 polygon
+1 1.000 -32 -24 32 -24 2 polygon
+1 1.000 0 24 0 64 2 polygon
+1 1.000 0 -24 0 -64 2 polygon
+endgate
+} def
+
+/sky130_fd_pr::pDiode {
+<</p_yps2 -32 /p_xps2 48 /p_yps1 -8 /p_xps1 48 /p_yps 24 /p_xps 48 /p_rot 0 /@class 
+(D) /@mult 1 /@model (pd2nw_05v5) 
+(lindex {pd2nw_05v5 pd2nw_05v5_hvt pd2nw_05v5_lvt} 0) pop /@index (?) /p_jst 28 >> 
+begingate
+1.000 0.000 0.000 scb
+(N) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(P) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @model ( %pP %pN sky130_fd_pr__diode_) @index 
+@class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+(sim:d %pP %pN %x %y) {/Times-Roman cf} 2 4 0.000 1.000 -244 -187 infolabel
+0.647 0.165 0.165 scb
+(=1) {Tf} {Tf} (M) {/Times-Roman cf} 5 p_jst p_rot 0.700 p_xps2 p_yps2 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+sce
+mark @model {/Times-RomanISO cf} ctmk 20 p_rot 0.700 p_xps1 p_yps1 label
+1 1.000 -32 -24 32 -24 2 polygon
+1 1.000 0 24 0 64 2 polygon
+1 1.000 0 -24 0 -64 2 polygon
+0 -24 beginpath
+32 24 1 polyc
+0 24 1 polyc
+4 24 8 20 8 16 curveto
+8 12 4 8 0 8 curveto
+-4 8 -8 
+12 -8 16 curveto
+-8 20 -4 24 0 24 curveto
+-32 24 1 polyc
+0 -24 1 polyc
+497 1.000 endpath
+endgate
+} def
+
+/sky130_fd_pr::hvnDiode {
+<</p_yps2 -32 /p_xps2 48 /p_yps1 -8 /p_xps1 48 /p_yps 24 /p_xps 48 /p_rot 0 /@class 
+(D) /@mult 1 /@model (pw2nd_11v0) 
+(lindex {pw2nd_11v0 pw2nd_11v0_no_rs} 0) pop /@index (?) /p_jst 28 >> begingate
+1.000 0.000 0.000 scb
+(N) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(P) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @model ( %pP %pN sky130_fd_pr__diode_) @index 
+@class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+(sim:d %pP %pN %x %y) {/Times-Roman cf} 2 4 0.000 1.000 -244 -187 infolabel
+0.647 0.165 0.165 scb
+(=1) {Tf} {Tf} (M) {/Times-Roman cf} 5 p_jst p_rot 0.700 p_xps2 p_yps2 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+sce
+mark @model {/Times-RomanISO cf} ctmk 20 p_rot 0.700 p_xps1 p_yps1 label
+497 1.000 0 -24 -32 24 32 24 0 -24 4 polygon
+1 1.000 0 24 0 64 2 polygon
+1 1.000 0 -32 0 -64 2 polygon
+0.800 0.800 0.800 scb
+496 1.000 -32 -32 -32 -24 32 -24 32 -32 4 polygon
+sce
+0 1.000 -32 -32 -32 -24 32 -24 32 -32 4 polygon
+endgate
+} def
+
+/sky130_fd_pr::hvpDiode {
+<</p_jst 28 /@index (?) /@model (pd2nw_11v0) 
+(lindex {pd2nw_11v0 pd2nw_11v0_no_rs} 0) pop /@mult 1 /@class (D) /p_rot 0 /p_xps 
+48 /p_yps 24 /p_xps1 48 /p_yps1 -8 /p_xps2 48 /p_yps2 -32 >> begingate
+0.800 0.800 0.800 scb
+496 1.000 -32 -32 -32 -24 32 -24 32 -32 4 polygon
+1.000 0.000 0.000 scb
+(N) {/Times-Roman cf} 2 13 0.000 1.000 0 -64 pinlabel
+(P) {/Times-Roman cf} 2 9 0.000 1.000 0 64 pinlabel
+0.180 0.545 0.341 scb
+mark @mult ( mult=) @mult ( m=) @model ( %pP %pN sky130_fd_pr__diode_) @index 
+@class (spice:) {/Times-Roman cf} ctmk 4 0.000 1.000 -244 -139 infolabel
+(sim:d %pP %pN %x %y) {/Times-Roman cf} 2 4 0.000 1.000 -244 -187 infolabel
+0.647 0.165 0.165 scb
+(=1) {Tf} {Tf} (M) {/Times-Roman cf} 5 p_jst p_rot 0.700 p_xps2 p_yps2 label
+0.000 0.000 1.000 scb
+mark @index @class {/Times-Roman cf} ctmk 20 p_rot 0.700 p_xps p_yps label
+sce
+mark @model {/Times-RomanISO cf} ctmk 20 p_rot 0.700 p_xps1 p_yps1 label
+1 1.000 0 24 0 64 2 polygon
+1 1.000 0 -32 0 -64 2 polygon
+0 -24 beginpath
+32 24 1 polyc
+0 24 1 polyc
+4 24 8 20 8 16 curveto
+8 12 4 8 0 8 curveto
+-4 8 -8 
+12 -8 16 curveto
+-8 20 -4 24 0 24 curveto
+-32 24 1 polyc
+0 -24 1 polyc
+497 1.000 endpath
+0 1.000 -32 -32 -32 -24 32 -24 32 -32 4 polygon
+endgate
+} def
+
+1.000 90.000 <</@value (1) /@model (m3_1) /p_xps -48 /p_yps 24 /p_yps1 -24 /p_xps2 80 /p_rot 
+270 >> /sky130_fd_pr::MiMCap libinst
+1.000 90.000 <</@model (pfet_01v8) /p_xps 32 /p_yps -32 /p_xps1 48 /p_yps1 -40 /p_rot 270 
+/p_xps2 -32 >> /sky130_fd_pr::pMOS3term libinst
+1.000 90.000 <</@model (pfet_01v8) /p_xps 32 /p_yps -32 /p_xps1 48 /p_yps1 -40 /p_rot 270 
+/p_xps2 -32 /@length (0.50) /@subs (dvdd3) >> /sky130_fd_pr::pMOS3term libinst
+1.000 90.000 <</@model (rf_npn_05v5_W1p00L1p00) /p_yps -40 /p_xps2 -32 /p_xps 32 /p_xps1 48 
+/p_yps1 -32 /p_rot 270 >> /sky130_fd_pr::NPNModel libinst
 
 /sky130_fd_pr::IndModel {
 <</@size (175) /@width (2.5) /@sep (2.5) /@turns (6.5) /@substype (sub) 
diff --git a/sky130/xcircuit/sky130_fd_sc_hd.lps b/sky130/xcircuit/sky130_fd_sc_hd.lps
index 1a243f4..30cc4e5 100644
--- a/sky130/xcircuit/sky130_fd_sc_hd.lps
+++ b/sky130/xcircuit/sky130_fd_sc_hd.lps
@@ -7,7 +7,7 @@
 
 % XCircuitLib library objects
 /sky130_fd_sc_hd::conb {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {1} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (HI) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
@@ -413,7 +413,7 @@
 } def
 
 /sky130_fd_sc_hd::or3 {
-<</@strength (1) (lindex {0 1 2 4} 1) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index 
+<</@strength (1) (lindex {1 2 4} 1) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index 
 (?) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
@@ -623,7 +623,7 @@
 } def
 
 /sky130_fd_sc_hd::einvn {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index 
+<</@strength (1) (lindex {0 1 2 4 8} 1) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index 
 (?) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 0 1.000 -32 -40 -32 40 40 0 3 polygon
 1 1.000 -32 0 -64 0 2 polygon
@@ -712,7 +712,7 @@
 
 /sky130_fd_sc_hd::clkinv {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 6 8 12 16} 0) pop >> begingate
+(1) (lindex {1 2 4 8 16} 0) pop >> begingate
 0 1.000 -32 -40 -32 40 40 0 3 polygon
 1 1.000 -32 0 -64 0 2 polygon
 1 1.000 56 0 64 0 2 polygon
@@ -737,7 +737,7 @@
 } def
 
 /sky130_fd_sc_hd::clkbuf {
-<</@strength (1) (lindex {1 2 4 6 8 12 16} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4 8 16} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 0 1.000 -32 -40 -32 40 40 0 3 polygon
 1 1.000 -32 0 -64 0 2 polygon
@@ -795,7 +795,7 @@
 } def
 
 /sky130_fd_sc_hd::mux2i {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 0 16 -32 16 2 polygon
 1 1.000 80 -16 96 -16 2 polygon
@@ -829,7 +829,7 @@
 } def
 
 /sky130_fd_sc_hd::mux4 {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 0 96 -32 96 2 polygon
 1 1.000 80 32 96 32 2 polygon
@@ -873,7 +873,7 @@
 } def
 
 /sky130_fd_sc_hd::nand2b {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 0 -48 -64 -48 -64 48 0 48 4 polygon
 1 1.000 56 0 8 0.000 360.000 xcarc
@@ -1007,7 +1007,7 @@
 } def
 
 /sky130_fd_sc_hd::nor2b {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -1289,7 +1289,7 @@
 } def
 
 /sky130_fd_sc_hd::or2b {
-<</@strength (1) (lindex {0 1 2 4} 1) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index 
+<</@strength (1) (lindex {1 2 4} 1) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index 
 (?) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
@@ -1322,7 +1322,7 @@
 
 /sky130_fd_sc_hd::or3b {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {0 1 2 4} 1) pop >> begingate
+(1) (lindex {1 2 4} 1) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
 (A) {/Times-Roman cf} 2 7 0.000 1.000 -96 32 pinlabel
@@ -1439,7 +1439,7 @@
 
 /sky130_fd_sc_hd::dfxtp {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
 (D) {/Times-Roman cf} 2 7 0.000 1.000 -96 64 pinlabel
@@ -1471,7 +1471,7 @@
 } def
 
 /sky130_fd_sc_hd::dfrtn {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {1} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
@@ -1509,7 +1509,7 @@
 } def
 
 /sky130_fd_sc_hd::dfstp {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {1 2 4} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
@@ -1548,7 +1548,7 @@
 
 /sky130_fd_sc_hd::dfrtp {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
 (D) {/Times-Roman cf} 2 7 0.000 1.000 -96 64 pinlabel
@@ -1758,7 +1758,7 @@
 
 /sky130_fd_sc_hd::dfbbp {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
 (D) {/Times-Roman cf} 2 7 0.000 1.000 -96 64 pinlabel
@@ -1805,7 +1805,7 @@
 
 /sky130_fd_sc_hd::dlrtp {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
 (D) {/Times-Roman cf} 2 7 0.000 1.000 -96 64 pinlabel
@@ -1842,7 +1842,7 @@
 } def
 
 /sky130_fd_sc_hd::dlxtn {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {1 2 4} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
@@ -1876,7 +1876,7 @@
 
 /sky130_fd_sc_hd::dlxtp {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
 (D) {/Times-Roman cf} 2 7 0.000 1.000 -96 64 pinlabel
@@ -1989,7 +1989,7 @@
 } def
 
 /sky130_fd_sc_hd::dlxbp {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {1} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (Q) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
@@ -2071,7 +2071,7 @@
 
 /sky130_fd_sc_hd::dlclkp {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (GCLK) {/Times-Roman cf} 2 4 0.000 1.000 64 64 pinlabel
 (GATE) {/Times-Roman cf} 2 13 0.000 1.000 -16 -64 pinlabel
@@ -2104,7 +2104,7 @@
 } def
 
 /sky130_fd_sc_hd::ha {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {1 2 4} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (SUM) {/Times-Roman cf} 2 4 0.000 1.000 96 64 pinlabel
@@ -2144,7 +2144,7 @@
 
 /sky130_fd_sc_hd::fah {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (SUM) {/Times-Roman cf} 2 4 0.000 1.000 96 64 pinlabel
 (A) {/Times-Roman cf} 2 7 0.000 1.000 -96 64 pinlabel
@@ -2187,7 +2187,7 @@
 } def
 
 /sky130_fd_sc_hd::fahcon {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {1} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (SUM) {/Times-Roman cf} 2 4 0.000 1.000 96 64 pinlabel
@@ -2233,7 +2233,7 @@
 
 /sky130_fd_sc_hd::fahcin {
 <</@VNB (gnd) /@VPB (vdd1v8) /@index (?) /@VPWR (vdd1v8) /@VGND (gnd) /@strength 
-(1) (lindex {1 2} 0) pop >> begingate
+(1) (lindex {1} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (SUM) {/Times-Roman cf} 2 4 0.000 1.000 96 64 pinlabel
 (A) {/Times-Roman cf} 2 7 0.000 1.000 -96 64 pinlabel
@@ -2278,7 +2278,7 @@
 
 /sky130_fd_sc_hd::a32oi {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
@@ -2326,7 +2326,7 @@
 } def
 
 /sky130_fd_sc_hd::a21oi {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -2366,7 +2366,7 @@
 
 /sky130_fd_sc_hd::a211oi {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 74 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
@@ -2408,7 +2408,7 @@
 } def
 
 /sky130_fd_sc_hd::a221oi {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 90 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -2460,7 +2460,7 @@
 
 /sky130_fd_sc_hd::a21o {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 80 pinlabel
@@ -2497,7 +2497,7 @@
 } def
 
 /sky130_fd_sc_hd::o21a {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
@@ -2536,7 +2536,7 @@
 
 /sky130_fd_sc_hd::a41oi {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
@@ -2581,7 +2581,7 @@
 
 /sky130_fd_sc_hd::a31oi {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
@@ -2624,7 +2624,7 @@
 
 /sky130_fd_sc_hd::a21boi {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {0 1 2 4} 1) pop >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
@@ -2665,7 +2665,7 @@
 } def
 
 /sky130_fd_sc_hd::a22oi {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -2710,7 +2710,7 @@
 } def
 
 /sky130_fd_sc_hd::a311oi {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 74 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -2757,7 +2757,7 @@
 
 /sky130_fd_sc_hd::a222oi {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1} 0) pop >> begingate
 1 1.000 90 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 128 -32 pinlabel
@@ -2811,7 +2811,7 @@
 } def
 
 /sky130_fd_sc_hd::a2111oi {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {0 1 2 4} 1) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 90 -16 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -2859,7 +2859,7 @@
 
 /sky130_fd_sc_hd::a2bb2oi {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 72 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
@@ -2906,7 +2906,7 @@
 } def
 
 /sky130_fd_sc_hd::a32o {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
@@ -2955,7 +2955,7 @@
 
 /sky130_fd_sc_hd::a2111o {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 96 -16 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 96 pinlabel
@@ -3001,7 +3001,7 @@
 
 /sky130_fd_sc_hd::o21ai {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {0 1 2 4} 1) pop >> begingate
 1 1.000 56 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 80 -32 pinlabel
@@ -3040,7 +3040,7 @@
 } def
 
 /sky130_fd_sc_hd::a41o {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
@@ -3084,7 +3084,7 @@
 } def
 
 /sky130_fd_sc_hd::o31ai {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 56 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -3128,7 +3128,7 @@
 
 /sky130_fd_sc_hd::o41ai {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 56 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 -32 pinlabel
@@ -3174,7 +3174,7 @@
 
 /sky130_fd_sc_hd::a22o {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 80 pinlabel
@@ -3217,7 +3217,7 @@
 } def
 
 /sky130_fd_sc_hd::a211o {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
@@ -3260,7 +3260,7 @@
 
 /sky130_fd_sc_hd::a221o {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 96 -32 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 96 pinlabel
@@ -3309,7 +3309,7 @@
 } def
 
 /sky130_fd_sc_hd::a21bo {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
@@ -3350,7 +3350,7 @@
 } def
 
 /sky130_fd_sc_hd::a31o {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
@@ -3393,7 +3393,7 @@
 
 /sky130_fd_sc_hd::a311o {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 0 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 96 pinlabel
@@ -3437,7 +3437,7 @@
 } def
 
 /sky130_fd_sc_hd::o21bai {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 56 0 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -3478,7 +3478,7 @@
 } def
 
 /sky130_fd_sc_hd::o211ai {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 72 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -3520,7 +3520,7 @@
 } def
 
 /sky130_fd_sc_hd::o22ai {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1 1.000 56 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
@@ -3569,7 +3569,7 @@
 
 /sky130_fd_sc_hd::o2111ai {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 104 -48 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 128 -48 pinlabel
@@ -3616,7 +3616,7 @@
 
 /sky130_fd_sc_hd::o2bb2ai {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 56 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 -32 pinlabel
@@ -3666,7 +3666,7 @@
 
 /sky130_fd_sc_hd::o311ai {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {0 1 2 4} 1) pop >> begingate
 1 1.000 72 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 -32 pinlabel
@@ -3711,7 +3711,7 @@
 
 /sky130_fd_sc_hd::o32ai {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 56 -32 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 96 -32 pinlabel
@@ -3762,7 +3762,7 @@
 
 /sky130_fd_sc_hd::o221ai {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1 1.000 104 -48 8 0.000 360.000 xcarc
 1.000 0.000 0.000 scb
 (Y) {/Times-Roman cf} 2 4 0.000 1.000 128 -48 pinlabel
@@ -3814,7 +3814,7 @@
 } def
 
 /sky130_fd_sc_hd::o221a {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 128 -48 pinlabel
@@ -3867,7 +3867,7 @@
 
 /sky130_fd_sc_hd::o31a {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 -32 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 48 pinlabel
@@ -3909,7 +3909,7 @@
 
 /sky130_fd_sc_hd::o21ba {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 0 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 80 pinlabel
@@ -3948,7 +3948,7 @@
 } def
 
 /sky130_fd_sc_hd::o41a {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 -32 pinlabel
@@ -3993,7 +3993,7 @@
 } def
 
 /sky130_fd_sc_hd::o32a {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 -32 pinlabel
@@ -4044,7 +4044,7 @@
 
 /sky130_fd_sc_hd::o211a {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 96 -32 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 64 pinlabel
@@ -4084,7 +4084,7 @@
 } def
 
 /sky130_fd_sc_hd::o311a {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 96 -32 pinlabel
@@ -4128,7 +4128,7 @@
 } def
 
 /sky130_fd_sc_hd::o2bb2a {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 -32 pinlabel
@@ -4178,7 +4178,7 @@
 
 /sky130_fd_sc_hd::o22a {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 8} 0) pop >> begingate
+(1) (lindex {1 2 4} 0) pop >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 64 -32 pinlabel
 (A1) {/Times-Roman cf} 2 7 0.000 1.000 -192 48 pinlabel
@@ -4224,7 +4224,7 @@
 } def
 
 /sky130_fd_sc_hd::o2111a {
-<</@strength (1) (lindex {1 2 4 8} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {1 2 4} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (X) {/Times-Roman cf} 2 4 0.000 1.000 128 -48 pinlabel
@@ -4300,7 +4300,7 @@
 } def
 
 /sky130_fd_sc_hd::diode {
-<</@strength (1) (lindex {1 2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
+<</@strength (1) (lindex {2} 0) pop /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@VPB 
 (vdd1v8) /@VNB (gnd) >> begingate
 1.000 0.000 0.000 scb
 (DIODE) {/Times-Roman cf} 2 7 0.000 1.000 -96 32 pinlabel
@@ -4323,7 +4323,7 @@
 } def
 
 /sky130_fd_sc_hd::bufinv {
-<</@strength (1) (lindex {1 2 4 6 8 12 16} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
+<</@strength (1) (lindex {8 16} 0) pop /@index (?) /@VPWR (vdd1v8) /@VGND 
 (gnd) /@VPB (vdd1v8) /@VNB (gnd) >> begingate
 0 1.000 48 -40 48 40 120 0 3 polygon
 1 1.000 128 0 8 0.000 360.000 xcarc
@@ -4351,7 +4351,7 @@
 
 /sky130_fd_sc_hd::bufbuf {
 <</@VNB (gnd) /@VPB (vdd1v8) /@VGND (gnd) /@VPWR (vdd1v8) /@index (?) /@strength 
-(1) (lindex {1 2 4 6 8 12 16} 0) pop >> begingate
+(1) (lindex {8 16} 0) pop >> begingate
 0 1.000 48 -40 48 40 120 0 3 polygon
 1 1.000 -32 0 -64 0 2 polygon
 1 1.000 120 0 128 0 2 polygon