Add SUBCKTs for some of the missing pads/fillers
diff --git a/sky130/custom/sky130_fd_io/cdl/sky130_ef_io.cdl b/sky130/custom/sky130_fd_io/cdl/sky130_ef_io.cdl
index ed68dd6..fcfe5a0 100644
--- a/sky130/custom/sky130_fd_io/cdl/sky130_ef_io.cdl
+++ b/sky130/custom/sky130_fd_io/cdl/sky130_ef_io.cdl
@@ -2,11 +2,11 @@
* Includes corner and fill cell subcircuits
*----------------------------------------------------------
-* sky130_ef_io__vccd_hvc_pad
+* sky130_ef_io__vccd_hvc_pad
* Power pad connects pad to VCCD with unconnected HV clamp
*----------------------------------------------------------
-.SUBCKT sky130_ef_io__vccd_hvc_pad
+.SUBCKT sky130_ef_io__vccd_hvc_pad
+ AMUXBUS_A AMUXBUS_B DRN_HVC
+ SRC_BDY_HVC VSSA VDDA VSWITCH VDDIO_Q VCCHIB VDDIO VCCD
+ VSSIO VSSD VSSIO_Q
@@ -22,7 +22,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vccd_lvc_pad
+* sky130_ef_io__vccd_lvc_pad
* Power pad connects pad to VCCD with unconnected LV clamp
*----------------------------------------------------------
@@ -42,7 +42,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vdda_lvc_pad
+* sky130_ef_io__vdda_lvc_pad
* Power pad connects pad to VDDA with unconnected LV clamp
*----------------------------------------------------------
@@ -64,11 +64,11 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vdda_lvc_pad
+* sky130_ef_io__vdda_lvc_pad
* Power pad connects pad to VDDA with unconnected HV clamp
*----------------------------------------------------------
-.SUBCKT sky130_ef_io__vdda_hvc_pad
+.SUBCKT sky130_ef_io__vdda_hvc_pad
+ AMUXBUS_A AMUXBUS_B DRN_HVC
+ SRC_BDY_HVCVSSA VDDA VSWITCH VDDIO_Q VCCHIB VDDIO VCCD
+ VSSIO VSSD VSSIO_Q
@@ -84,7 +84,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vddio_lvc_pad
+* sky130_ef_io__vddio_lvc_pad
* Power pad connects pad to VDDIO with unconnected LV clamp
*----------------------------------------------------------
@@ -105,7 +105,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vddio_hvc_pad
+* sky130_ef_io__vddio_hvc_pad
* Power pad connects pad to VDDIO with unconnected HV clamp
*----------------------------------------------------------
@@ -125,7 +125,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vssd_lvc_pad
+* sky130_ef_io__vssd_lvc_pad
* Ground pad connects pad to VSSD with unconnected LV clamp
*----------------------------------------------------------
@@ -146,7 +146,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vssd_hvc_pad
+* sky130_ef_io__vssd_hvc_pad
* Ground pad connects pad to VSSD with unconnected HV clamp
*----------------------------------------------------------
@@ -166,7 +166,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vssio_lvc_pad
+* sky130_ef_io__vssio_lvc_pad
* Ground pad connects pad to VSSIO with unconnected LV clamp
*----------------------------------------------------------
@@ -187,7 +187,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vssio_hvc_pad
+* sky130_ef_io__vssio_hvc_pad
* Ground pad connects pad to VSSIO with unconnected HV clamp
*----------------------------------------------------------
@@ -207,7 +207,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vssio_lvc_pad
+* sky130_ef_io__vssio_lvc_pad
* Ground pad connects pad to VSSIO with unconnected LV clamp
*----------------------------------------------------------
@@ -228,7 +228,7 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__vssa_lvc_pad
+* sky130_ef_io__vssa_lvc_pad
* Ground pad connects pad to VSSA with unconnected HV clamp
*----------------------------------------------------------
@@ -247,12 +247,12 @@
.ENDS
*----------------------------------------------------------
-* sky130_ef_io__corner_pad
+* sky130_ef_io__corner_pad
* Plain corner pad
*----------------------------------------------------------
.SUBCKT sky130_ef_io__corner_pad
-+ AMUXBUS_A AMUXBUS_B
++ AMUXBUS_A AMUXBUS_B
+ VSSA VDDA VSWITCH VDDIO_Q VCCHIB VDDIO VCCD
+ VSSIO VSSD VSSIO_Q
* Corner pad has no active circuitry
@@ -260,7 +260,7 @@
*----------------------------------------------------------
* sky130_fd_io__com_bus_slice
-* SkyWater padframe filler
+* SkyWater padframe filler
*----------------------------------------------------------
.SUBCKT sky130_fd_io__com_bus_slice
@@ -272,7 +272,7 @@
*----------------------------------------------------------
* sky130_ef_io__com_bus_slice_1um
-* 1um wide padframe filler
+* 1um wide padframe filler
*----------------------------------------------------------
.SUBCKT sky130_ef_io__com_bus_slice_1um
@@ -284,7 +284,7 @@
*----------------------------------------------------------
* sky130_ef_io__com_bus_slice_5um
-* 5um wide padframe filler
+* 5um wide padframe filler
*----------------------------------------------------------
.SUBCKT sky130_ef_io__com_bus_slice_5um
@@ -296,7 +296,7 @@
*----------------------------------------------------------
* sky130_ef_io__com_bus_slice_10um
-* 10um wide padframe filler
+* 10um wide padframe filler
*----------------------------------------------------------
.SUBCKT sky130_ef_io__com_bus_slice_10um
@@ -308,7 +308,7 @@
*----------------------------------------------------------
* sky130_ef_io__com_bus_slice_20um
-* 20um wide padframe filler
+* 20um wide padframe filler
*----------------------------------------------------------
.SUBCKT sky130_ef_io__com_bus_slice_20um
@@ -319,6 +319,42 @@
.ENDS
*----------------------------------------------------------
+* sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um
+* A 20um-wide padframe filler that connects VCCHIB and VCCD as well as
+* VSWITCH and VDDIO
+*----------------------------------------------------------
+
+.SUBCKT sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um
++ AMUXBUS_A AMUXBUS_B
++ VSSA VDDA VDDIO_Q VDDIO VCCD VSSIO VSSD VSSIO_Q
+* Bus filler has no active circuitry
+.ENDS
+
+*----------------------------------------------------------
+* sky130_ef_io__disconnect_vdda_slice_5um
+* A 5um-wide padframe filler that doesn't connect VDDA
+* through it
+*----------------------------------------------------------
+
+.SUBCKT sky130_ef_io__disconnect_vdda_slice_5um
++ AMUXBUS_A AMUXBUS_B VSWITCH VDDIO_Q
++ VCCHIB VDDIO VCCD VSSIO VSSD VSSIO_Q
+* Bus filler has no active circuitry
+.ENDS
+
+*----------------------------------------------------------
+* sky130_ef_io__disconnect_vccd_slice_5um
+* A 5um-wide padframe filler that doesn't connect VCCD
+* through it
+*----------------------------------------------------------
+
+.SUBCKT sky130_ef_io__disconnect_vccd_slice_5um
++ AMUXBUS_A AMUXBUS_B VSSA VDDA VSWITCH
++ VDDIO_Q VCCHIB VDDIO VSSIO VSSIO_Q
+* Bus filler has no active circuitry
+.ENDS
+
+*----------------------------------------------------------
* sky130_ef_io__gpiov2_pad
* Wrapper around SkyWater gpiov2 pad
*----------------------------------------------------------
@@ -329,7 +365,7 @@
+ ENABLE_INP_H OE_N TIE_HI_ESD TIE_LO_ESD SLOW VTRIP_SEL HLD_OVR
+ ANALOG_EN ANALOG_SEL ENABLE_VDDIO ENABLE_VSWITCH_H ANALOG_POL OUT
+ AMUXBUS_A AMUXBUS_B VSSA VDDA VSWITCH VDDIO_Q VCCHIB VDDIO VCCD
-+ VSSIO VSSD VSSIO_Q
++ VSSIO VSSD VSSIO_Q
* Instantiate original version with metal4-only power bus
Xgpiov2_base
@@ -346,8 +382,32 @@
.ENDS
+*----------------------------------------------------------
+* sky130_ef_io__gpiov2_pad_wrapped
+* Wrapper around sky130_ef_io__gpiov2_pad that forces
+* the core-facing pins on tracks
+*----------------------------------------------------------
+
+.SUBCKT sky130_ef_io__gpiov2_pad_wrapped
++ IN_H PAD_A_NOESD_H PAD_A_ESD_0_H PAD_A_ESD_1_H
++ PAD DM[2] DM[1] DM[0] HLD_H_N IN INP_DIS IB_MODE_SEL ENABLE_H ENABLE_VDDA_H
++ ENABLE_INP_H OE_N TIE_HI_ESD TIE_LO_ESD SLOW VTRIP_SEL HLD_OVR
++ ANALOG_EN ANALOG_SEL ENABLE_VDDIO ENABLE_VSWITCH_H ANALOG_POL OUT
++ AMUXBUS_A AMUXBUS_B VSSA VDDA VSWITCH VDDIO_Q VCCHIB VDDIO VCCD
++ VSSIO VSSD VSSIO_Q
+
+Xgpiov2_ef
++ IN_H PAD_A_NOESD_H PAD_A_ESD_0_H PAD_A_ESD_1_H
++ PAD DM[2] DM[1] DM[0] HLD_H_N IN INP_DIS IB_MODE_SEL ENABLE_H ENABLE_VDDA_H
++ ENABLE_INP_H OE_N TIE_HI_ESD TIE_LO_ESD SLOW VTRIP_SEL HLD_OVR
++ ANALOG_EN ANALOG_SEL ENABLE_VDDIO ENABLE_VSWITCH_H ANALOG_POL OUT
++ AMUXBUS_A AMUXBUS_B VSSA VDDA VSWITCH VDDIO_Q VCCHIB VDDIO VCCD
++ VSSIO VSSD VSSIO_Q sky130_ef_io__gpiov2_pad
+
+.ENDS
+
*--------------------------------------------------------------------------
-* sky130_ef_io__vddio_hvc_clamped_pad
+* sky130_ef_io__vddio_hvc_clamped_pad
* sky130_ef_io__vddio_hvc_pad with HV clamp connections to VDDIO and VSSIO
*--------------------------------------------------------------------------
@@ -367,7 +427,7 @@
.ENDS
*--------------------------------------------------------------------------
-* sky130_ef_io__vssio_hvc_clamped_pad
+* sky130_ef_io__vssio_hvc_clamped_pad
* sky130_ef_io__vssio_hvc_pad with HV clamp connections to VDDIO and VSSIO
*--------------------------------------------------------------------------
@@ -387,7 +447,7 @@
.ENDS
*--------------------------------------------------------------------------
-* sky130_ef_io__vdda_hvc_clamped_pad
+* sky130_ef_io__vdda_hvc_clamped_pad
* sky130_ef_io__vdda_hvc_pad with HV clamp connections to VDDA and VSSA
*--------------------------------------------------------------------------
@@ -407,7 +467,7 @@
.ENDS
*--------------------------------------------------------------------------
-* sky130_ef_io__vssa_hvc_clamped_pad
+* sky130_ef_io__vssa_hvc_clamped_pad
* sky130_ef_io__vssa_hvc_pad with HV clamp connections to VDDA and VSSA
*--------------------------------------------------------------------------
@@ -427,7 +487,7 @@
.ENDS
*--------------------------------------------------------------------------
-* sky130_ef_io__vccd_lvc_clamped_pad
+* sky130_ef_io__vccd_lvc_clamped_pad
* sky130_ef_io__vccd_lvc_pad with LV clamp connections to VCCD/VSSIO and
* VCCD/VSSD, and back-to-back diodes connecting VSSIO to VSSA
*--------------------------------------------------------------------------
@@ -448,7 +508,7 @@
.ENDS
*--------------------------------------------------------------------------
-* sky130_ef_io__vssd_lvc_clamped_pad
+* sky130_ef_io__vssd_lvc_clamped_pad
* sky130_ef_io__vssd_lvc_pad with LV clamp connections to VCCD/VSSIO and
* VCCD/VSSD, and back-to-back diodes connecting VSSIO to VSSA
*--------------------------------------------------------------------------
@@ -469,7 +529,7 @@
.ENDS
*--------------------------------------------------------------------------
-* sky130_ef_io__vccd_lvc_clamped2_pad
+* sky130_ef_io__vccd_lvc_clamped2_pad
* sky130_ef_io__vccd_lvc_pad with LV clamp connections to VCCD and VSSD,
* and back-to-back diodes connecting VSSD to VSSIO
*--------------------------------------------------------------------------
@@ -490,7 +550,7 @@
.ENDS
*--------------------------------------------------------------------------
-* sky130_ef_io__vssd_lvc_clamped2_pad
+* sky130_ef_io__vssd_lvc_clamped2_pad
* sky130_ef_io__vssd_lvc_pad with LV clamp connections to VCCD and VSSD,
* and back-to-back diodes connecting VSSD to VSSIO
*--------------------------------------------------------------------------