Added I/O pad clamp connection overlay cells to the I/O set.  Updated a few
rules for the GDS input of SRAM core cells, from a patch by Matt Guthaus.
diff --git a/sky130/custom/sky130_fd_io/gds/sky130_ef_io.gds b/sky130/custom/sky130_fd_io/gds/sky130_ef_io.gds
index 0203176..7fe9616 100644
--- a/sky130/custom/sky130_fd_io/gds/sky130_ef_io.gds
+++ b/sky130/custom/sky130_fd_io/gds/sky130_ef_io.gds
Binary files differ
diff --git a/sky130/custom/sky130_fd_io/mag/sky130_ef_io.mag b/sky130/custom/sky130_fd_io/mag/sky130_ef_io.mag
index 132da51..5eea3a6 100644
--- a/sky130/custom/sky130_fd_io/mag/sky130_ef_io.mag
+++ b/sky130/custom/sky130_fd_io/mag/sky130_ef_io.mag
@@ -1,35 +1,74 @@
 magic
 tech sky130A
 magscale 1 2
-timestamp 1602609685
-use sky130_ef_io__vssa_hvc_pad  sky130_ef_io__vssa_hvc_pad_0
-timestamp 1602597384
-transform 1 0 37912 0 1 46935
-box 0 -407 15000 39593
-use sky130_ef_io__vssd_hvc_pad  sky130_ef_io__vssd_hvc_pad_0
-timestamp 1602597384
-transform 1 0 18134 0 1 46741
-box 0 -407 15000 39593
+timestamp 1607721754
+<< checkpaint >>
+rect -2128 90625 15392 132784
+rect 18426 90777 35946 133324
+rect 36846 89849 54366 132008
+rect 55266 89641 72786 132188
+rect 75818 90611 93338 133158
+rect 95788 91013 113308 133172
+rect 117892 90921 136689 133577
+rect 138834 91192 156581 133712
+rect 159580 91133 190391 133951
+rect -1740 44867 15780 87026
+rect 16874 45047 34394 87594
+rect 36652 45241 54172 87788
+rect 2728 6434 9759 12144
+rect 2728 4642 9875 6434
+rect 16468 5950 28002 44348
+rect 58756 43121 76276 85280
+rect 77758 42927 95278 85086
+rect 99280 43273 116800 85820
+rect 122264 44956 165055 88480
+rect 2752 3008 9875 4642
+rect 34407 -4225 56350 40065
+rect 58578 -5900 78235 37441
+use sky130_ef_io__hvc_vdda_overlay  sky130_ef_io__hvc_vdda_overlay_0
+timestamp 1607721650
+transform 1 0 -1208 0 1 3292
+box 5196 2610 9707 7592
+use sky130_ef_io__lvc_vccd_overlay  sky130_ef_io__lvc_vccd_overlay_0
+timestamp 1607710904
+transform 1 0 37862 0 1 -781
+box -2195 -2184 17228 39586
+use sky130_ef_io__hvc_vddio_overlay  sky130_ef_io__hvc_vddio_overlay_0
+timestamp 1607711116
+transform 1 0 16992 0 1 3626
+box 736 3584 9750 39462
+use sky130_ef_io__lvc_vccdx_overlay  sky130_ef_io__lvc_vccdx_overlay_0
+timestamp 1607710972
+transform 1 0 59736 0 1 -2533
+box 102 -2107 17239 38714
 use sky130_ef_io__vssd_lvc_pad  sky130_ef_io__vssd_lvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 -480 0 1 46173
-box 0 -7 15000 39593
+box 0 -46 15000 39593
+use sky130_ef_io__vssa_hvc_pad  sky130_ef_io__vssa_hvc_pad_0
+timestamp 1607721754
+transform 1 0 37912 0 1 46935
+box 0 -434 15000 39593
+use sky130_ef_io__vssd_hvc_pad  sky130_ef_io__vssd_hvc_pad_0
+timestamp 1607721754
+transform 1 0 18134 0 1 46741
+box 0 -434 15000 39593
+use sky130_ef_io__vssa_lvc_pad  sky130_ef_io__vssa_lvc_pad_0
+timestamp 1607721754
+transform 1 0 60016 0 1 44427
+box 0 -46 15000 39593
 use sky130_ef_io__vssio_lvc_pad  sky130_ef_io__vssio_lvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 79018 0 1 44233
 box 0 -7 15000 39593
-use sky130_ef_io__vssa_lvc_pad  sky130_ef_io__vssa_lvc_pad_0
-timestamp 1602597384
-transform 1 0 60016 0 1 44427
-box 0 -7 15000 39593
 use sky130_ef_io__vssio_hvc_pad  sky130_ef_io__vssio_hvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 100540 0 1 44967
 box 0 -407 15000 39593
 use sky130_ef_io__corner_pad  sky130_ef_io__corner_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 123795 0 1 46420
-box 0 0 40000 40800
+box -271 -204 40000 40800
 use sky130_ef_io__com_bus_slice_20um  sky130_ef_io__com_bus_slice_20um_0
 timestamp 1602609570
 transform 1 0 177444 0 1 45996
@@ -46,40 +85,40 @@
 timestamp 1576684134
 transform 1 0 167600 0 1 45744
 box 0 0 200 39593
-use sky130_ef_io__vccd_lvc_pad  sky130_ef_io__vccd_lvc_pad_0
-timestamp 1602597384
-transform 1 0 38106 0 1 91155
-box 0 -7 15000 39593
 use sky130_ef_io__vdda_hvc_pad  sky130_ef_io__vdda_hvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 19686 0 1 92471
-box 0 -407 15000 39593
+box 0 -434 15000 39593
+use sky130_ef_io__vccd_lvc_pad  sky130_ef_io__vccd_lvc_pad_0
+timestamp 1607721754
+transform 1 0 38106 0 1 91155
+box 0 -46 15000 39593
 use sky130_ef_io__vdda_lvc_pad  sky130_ef_io__vdda_lvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 -868 0 1 91931
-box 0 -7 15000 39593
+box 0 -46 15000 39593
 use sky130_ef_io__vddio_hvc_pad  sky130_ef_io__vddio_hvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 77078 0 1 92305
-box 0 -407 15000 39593
+box 0 -434 15000 39593
 use sky130_ef_io__vccd_hvc_pad  sky130_ef_io__vccd_hvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 56526 0 1 91335
 box 0 -407 15000 39593
 use sky130_ef_io__vddio_lvc_pad  sky130_ef_io__vddio_lvc_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 97048 0 1 92319
 box 0 -7 15000 39593
 use sky130_ef_io__gpiov2_pad  sky130_ef_io__gpiov2_pad_0
-timestamp 1602597384
+timestamp 1607721754
 transform 1 0 119295 0 1 92724
 box -143 -543 16134 39593
-use sky130_fd_io__top_xres4v2  sky130_fd_io__top_xres4v2_0 ~/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_io/mag
-timestamp 1602555073
+use sky130_fd_io__top_xres4v2  sky130_fd_io__top_xres4v2_0 $PDKPATH/libs.ref/sky130_fd_io/mag
+timestamp 1607712189
 transform 1 0 140197 0 1 92452
 box -103 0 15124 40000
-use sky130_fd_io__top_gpio_ovtv2  sky130_ef_fd__top_gpio_ovtv2_0 ~/projects/efabless/tech/SW/sky130A/libs.ref/sky130_fd_io/mag
-timestamp 1602555073
+use sky130_fd_io__top_gpio_ovtv2  sky130_ef_fd__top_gpio_ovtv2_0 $PDKPATH/libs.ref/sky130_fd_io/mag
+timestamp 1607712189
 transform 1 0 160920 0 1 92540
 box -80 -147 28211 40151
 << end >>
diff --git a/sky130/custom/sky130_fd_io/mag/sky130_ef_io__hvc_vdda_overlay.mag b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__hvc_vdda_overlay.mag
new file mode 100644
index 0000000..b910e9b
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__hvc_vdda_overlay.mag
@@ -0,0 +1,28 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1607721650
+<< metal3 >>
+rect 7582 7586 9707 7592
+rect 7582 6972 7588 7586
+rect 9701 6972 9707 7586
+rect 7582 6966 9707 6972
+rect 5196 3236 7321 3242
+rect 5196 2616 5202 3236
+rect 7315 2616 7321 3236
+rect 5196 2610 7321 2616
+<< via3 >>
+rect 7588 6972 9701 7586
+rect 5202 2616 7315 3236
+<< metal4 >>
+rect 7582 7586 9707 7592
+rect 7582 6972 7588 7586
+rect 9701 6972 9707 7586
+rect 7582 6966 9707 6972
+rect 5196 3236 7321 3242
+rect 5196 2616 5202 3236
+rect 7315 2616 7321 3236
+rect 5196 2610 7321 2616
+<< properties >>
+string FIXED_BBOX 0 -406 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/sky130_ef_io__hvc_vddio_overlay.mag b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__hvc_vddio_overlay.mag
new file mode 100644
index 0000000..6c33ef6
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__hvc_vddio_overlay.mag
@@ -0,0 +1,63 @@
+magic
+tech sky130A
+timestamp 1607711116
+<< metal3 >>
+rect 2640 19728 3633 19731
+rect 1454 19723 2447 19726
+rect 368 19720 1364 19723
+rect 368 18362 371 19720
+rect 1361 18362 1364 19720
+rect 368 18359 1364 18362
+rect 1454 17436 1457 19723
+rect 2444 17436 2447 19723
+rect 2640 17441 2643 19728
+rect 3630 17441 3633 19728
+rect 2640 17438 3633 17441
+rect 1454 17433 2447 17436
+rect 3812 9272 4873 9275
+rect 3812 6825 3815 9272
+rect 4870 6825 4873 9272
+rect 3812 6822 4873 6825
+rect 2608 2827 3668 2830
+rect 2608 2399 2611 2827
+rect 3665 2399 3668 2827
+rect 2608 2396 3668 2399
+rect 3802 2222 4875 2225
+rect 3802 1795 3805 2222
+rect 4872 1795 4875 2222
+rect 3802 1792 4875 1795
+<< via3 >>
+rect 371 18362 1361 19720
+rect 1457 17436 2444 19723
+rect 2643 17441 3630 19728
+rect 3815 6825 4870 9272
+rect 2611 2399 3665 2827
+rect 3805 1795 4872 2222
+<< metal4 >>
+rect 2640 19728 3633 19731
+rect 1454 19723 2447 19726
+rect 368 19720 1364 19723
+rect 368 18362 371 19720
+rect 1361 18362 1364 19720
+rect 368 18359 1364 18362
+rect 1454 17436 1457 19723
+rect 2444 17436 2447 19723
+rect 2640 17441 2643 19728
+rect 3630 17441 3633 19728
+rect 2640 17438 3633 17441
+rect 1454 17433 2447 17436
+rect 3812 9272 4873 9275
+rect 3812 6825 3815 9272
+rect 4870 6825 4873 9272
+rect 3812 6822 4873 6825
+rect 2608 2827 3668 2830
+rect 2608 2399 2611 2827
+rect 3665 2399 3668 2827
+rect 2608 2396 3668 2399
+rect 3802 2222 4875 2225
+rect 3802 1795 3805 2222
+rect 4872 1795 4875 2222
+rect 3802 1792 4875 1795
+<< properties >>
+string FIXED_BBOX 0 -203 7500 19796
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/sky130_ef_io__lvc_vccd_overlay.mag b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__lvc_vccd_overlay.mag
new file mode 100644
index 0000000..eea5fe1
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__lvc_vccd_overlay.mag
@@ -0,0 +1,114 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1607710904
+<< metal1 >>
+rect 15240 14964 17187 15070
+rect 15240 9435 15318 14964
+rect 17081 9435 17187 14964
+rect 15240 7496 17187 9435
+rect 15240 5414 15313 7496
+rect 17115 5414 17187 7496
+rect 4185 -163 10707 -7
+rect 15240 -163 17187 5414
+rect 4185 -1384 17187 -163
+rect 4185 -2184 16387 -1384
+tri 16387 -2184 17187 -1384 nw
+<< via1 >>
+rect 15318 9435 17081 14964
+rect 15313 5414 17115 7496
+<< metal2 >>
+rect 15240 39521 17187 39586
+rect 15240 34813 15294 39521
+rect 17136 34813 17187 39521
+rect 15240 14964 17187 34813
+rect 15240 9435 15318 14964
+rect 17081 9435 17187 14964
+rect 15240 9312 17187 9435
+rect -2195 8808 100 8833
+rect -2195 7925 -2165 8808
+rect -210 7925 100 8808
+rect -2195 7903 100 7925
+rect 14940 8809 17228 8840
+rect 14940 7939 15154 8809
+rect 16192 7939 17228 8809
+rect 14940 7910 17228 7939
+rect 15240 7496 17187 7560
+rect 15240 5644 15313 7496
+rect 17115 5644 17187 7496
+rect 15240 4807 15278 5644
+rect 17134 4807 17187 5644
+rect 15240 4678 17187 4807
+<< via2 >>
+rect 15294 34813 17136 39521
+rect -2165 7925 -210 8808
+rect 15154 7939 16192 8809
+rect 15278 5414 15313 5644
+rect 15313 5414 17115 5644
+rect 17115 5414 17134 5644
+rect 15278 4807 17134 5414
+<< metal3 >>
+rect 15240 39521 17187 39586
+rect 15240 34813 15294 39521
+rect 17136 34813 17187 39521
+rect 15240 34743 17187 34813
+rect -2195 8808 -179 8833
+rect -2195 8807 -2165 8808
+rect -2195 7924 -2166 8807
+rect -210 7925 -179 8808
+rect -211 7924 -179 7925
+rect -2195 7903 -179 7924
+rect 15121 8809 17228 8840
+rect 15121 7939 15154 8809
+rect 17192 7939 17228 8809
+rect 15121 7910 17228 7939
+rect 15240 5644 17187 5683
+rect 15240 4807 15278 5644
+rect 17134 4807 17187 5644
+rect 15240 4753 17187 4807
+rect 5228 2263 7341 2269
+rect 5228 1400 5234 2263
+rect 7335 1400 7341 2263
+rect 5228 1394 7341 1400
+rect 7705 2261 9818 2267
+rect 7705 1398 7711 2261
+rect 9812 1398 9818 2261
+rect 7705 1392 9818 1398
+<< via3 >>
+rect 15294 34813 17136 39521
+rect -2166 7925 -2165 8807
+rect -2165 7925 -211 8807
+rect -2166 7924 -211 7925
+rect 15154 7939 16192 8809
+rect 16192 7939 17192 8809
+rect 15278 4807 17134 5644
+rect 5234 1400 7335 2263
+rect 7711 1398 9812 2261
+<< metal4 >>
+rect 14957 39521 17187 39586
+rect 14957 34813 15294 39521
+rect 17136 34813 17187 39521
+rect 14957 34743 17187 34813
+rect -2195 8807 14 8833
+rect -2195 7924 -2166 8807
+rect -211 7924 14 8807
+rect -2195 7903 14 7924
+rect 14940 8809 17228 8840
+rect 14940 7939 15154 8809
+rect 17192 7939 17228 8809
+rect 14940 7910 17228 7939
+rect 14987 5644 17187 5683
+rect 14987 4807 15278 5644
+rect 17134 4807 17187 5644
+rect 14987 4753 17187 4807
+rect 5228 2263 7341 2269
+rect 5228 1400 5234 2263
+rect 7335 1400 7341 2263
+rect 5228 1394 7341 1400
+rect 7705 2261 9818 2267
+rect 7705 1398 7711 2261
+rect 9812 1398 9818 2261
+rect 7705 1392 9818 1398
+<< properties >>
+string FIXED_BBOX 0 -7 15000 39593
+<< end >>
diff --git a/sky130/custom/sky130_fd_io/mag/sky130_ef_io__lvc_vccdx_overlay.mag b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__lvc_vccdx_overlay.mag
new file mode 100644
index 0000000..47338fb
--- /dev/null
+++ b/sky130/custom/sky130_fd_io/mag/sky130_ef_io__lvc_vccdx_overlay.mag
@@ -0,0 +1,88 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1607710972
+<< metal1 >>
+rect 15049 7630 17239 7665
+rect 15049 6925 15080 7630
+rect 17210 6925 17239 7630
+rect 15049 6891 17239 6925
+rect 4185 -163 10707 -7
+rect 15240 -163 17187 6891
+rect 4185 -1307 17187 -163
+rect 4185 -2107 16387 -1307
+tri 16387 -2107 17187 -1307 nw
+<< via1 >>
+rect 15080 6925 17210 7630
+<< metal2 >>
+rect 132 38667 2749 38676
+rect 132 34800 141 38667
+rect 2740 34800 2749 38667
+rect 132 34791 2749 34800
+rect 14940 8809 17228 8840
+rect 14940 7939 15154 8809
+rect 16192 7939 17228 8809
+rect 14940 7910 17228 7939
+rect 15049 7630 17239 7665
+rect 15049 6925 15080 7630
+rect 17210 7605 17239 7630
+rect 17213 6966 17239 7605
+rect 17210 6925 17239 6966
+rect 15049 6891 17239 6925
+<< via2 >>
+rect 141 34800 2740 38667
+rect 15154 7939 16192 8809
+rect 15116 6966 17210 7605
+rect 17210 6966 17213 7605
+<< metal3 >>
+rect 102 38667 2772 38714
+rect 102 34800 141 38667
+rect 2740 34800 2772 38667
+rect 102 34753 2772 34800
+rect 15121 8809 17228 8840
+rect 15121 7939 15154 8809
+rect 17192 7939 17228 8809
+rect 15121 7910 17228 7939
+rect 15088 7605 17228 7632
+rect 15088 6966 15116 7605
+rect 17213 6966 17228 7605
+rect 15088 6939 17228 6966
+rect 5228 2263 7341 2269
+rect 5228 1400 5234 2263
+rect 7335 1400 7341 2263
+rect 5228 1394 7341 1400
+rect 7705 2261 9818 2267
+rect 7705 1398 7711 2261
+rect 9812 1398 9818 2261
+rect 7705 1392 9818 1398
+<< via3 >>
+rect 141 34800 2740 38667
+rect 15154 7939 16192 8809
+rect 16192 7939 17192 8809
+rect 15116 6966 17213 7605
+rect 5234 1400 7335 2263
+rect 7711 1398 9812 2261
+<< metal4 >>
+rect 132 38667 2749 38676
+rect 132 34800 141 38667
+rect 2740 34800 2749 38667
+rect 132 34791 2749 34800
+rect 14940 8809 17228 8840
+rect 14940 7939 15154 8809
+rect 17192 7939 17228 8809
+rect 14940 7910 17228 7939
+rect 14985 7605 17233 7630
+rect 14985 6966 15116 7605
+rect 17213 6966 17233 7605
+rect 14985 6940 17233 6966
+rect 5228 2263 7341 2269
+rect 5228 1400 5234 2263
+rect 7335 1400 7341 2263
+rect 5228 1394 7341 1400
+rect 7705 2261 9818 2267
+rect 7705 1398 7711 2261
+rect 9812 1398 9818 2261
+rect 7705 1392 9818 1398
+<< properties >>
+string FIXED_BBOX 0 -7 15000 39593
+<< end >>
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index 9198664..e26ab4e 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -2372,6 +2372,7 @@
  and-not LVTN
  and-not SONOS
  and-not STDCELL
+ and-not COREID
  labels DIFF
 
  layer scnfet DIFF
@@ -2391,6 +2392,9 @@
  and NPLUS
  and-not NWELL
  and COREID
+ # Shrink-grow operation eliminates the smaller npass device
+ shrink 70
+ grow 70
  labels DIFF
 
  layer npd DIFF
@@ -3808,6 +3812,7 @@
  and-not LVTN
  and-not HVTP
  and STDCELL
+ and-not COREID
  labels DIFF
 
  layer scpfethvt pfetarea
@@ -3820,6 +3825,9 @@
  and-not LVTN
  and HVTP
  and COREID
+ # Shrink-grow operation eliminates the smaller ppass device
+ shrink 70
+ grow 70
  labels DIFF
 
  layer pfetlvt pfetarea
@@ -4715,6 +4723,7 @@
  and-not PPLUS
  and-not NPLUS
  and-not POLY
+ and-not COREID
  copyup DIFF
 
  # Handle contacts found by copyup