Corrected a directional surround rule on vias to include metal resistor, without which it can create weirdly intermittant errors if a metal resistor abuts a via.
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech index 630b42e..8a4d9f3 100644 --- a/sky130/magic/sky130.tech +++ b/sky130/magic/sky130.tech
@@ -4471,9 +4471,9 @@ width v1/m1 260 "Via1 width < %d (via.1a + 2 * via.4a)" spacing v1 v1 60 touching_ok "Via1 spacing < %d (via.2 - 2 * via.4a)" - surround v1/m1 *m1 30 directional \ + surround v1/m1 *m1,rm1 30 directional \ "Metal1 overlap of Via1 < %d in one direction (via.5a - via.4a)" - surround v1/m2 *m2 30 directional \ + surround v1/m2 *m2,rm2 30 directional \ "Metal2 overlap of Via1 < %d in one direction (met2.5 - met2.4)" exact_overlap v1/m1 @@ -4506,13 +4506,13 @@ # VIA2 #-------------------------------------------------- - width v2/m2 280 "via2.width < %d (via2.1a + 2 * via2.4)" + width v2/m2 280 "via2 width < %d (via2.1a + 2 * via2.4)" - spacing v2 v2 120 touching_ok "via2.spacing < %d (via2.2 - 2 * via2.4)" + spacing v2 v2 120 touching_ok "via2 spacing < %d (via2.2 - 2 * via2.4)" - surround v2/m2 *m2 45 directional \ - "Metal2 overlap of via2.< %d in one direction (via2.4a - via2.4)" - surround v2/m3 *m3 25 absence_illegal "Metal3 overlap of via2.< %d (met3.4)" + surround v2/m2 *m2,rm2 45 directional \ + "Metal2 overlap of via2 < %d in one direction (via2.4a - via2.4)" + surround v2/m3 *m3,rm3 25 absence_illegal "Metal3 overlap of via2 < %d (met3.4)" exact_overlap v2/m2 @@ -4543,12 +4543,12 @@ # VIA3 - Requires METAL5 Module #-------------------------------------------------- - width v3/m3 320 "via3.width < %d (via3.1 + 2 * via3.4)" - spacing v3 v3 80 touching_ok "via3.spacing < %d (via3.2 - 2 * via3.4)" - surround v3/m3 *m3 30 directional \ - "Metal3 overlap of via3.in one direction < %d (via3.5 - via3.4)" - surround v3/m4 *m4 5 absence_illegal \ - "Metal4 overlap of via3.< %d (met4.3 - via3.4)" + width v3/m3 320 "via3 width < %d (via3.1 + 2 * via3.4)" + spacing v3 v3 80 touching_ok "via3 spacing < %d (via3.2 - 2 * via3.4)" + surround v3/m3 *m3,rm3 30 directional \ + "Metal3 overlap of via3 in one direction < %d (via3.5 - via3.4)" + surround v3/m4 *m4,rm4 5 absence_illegal \ + "Metal4 overlap of via3 < %d (met4.3 - via3.4)" exact_overlap v3/m3 @@ -4578,10 +4578,10 @@ # VIA4 - Requires METAL5 Module #-------------------------------------------------- - width v4/m4 1180 "via4.width < %d (via4.1 + 2 * via4.4)" - spacing v4 v4 420 touching_ok "via4.spacing < %d (via4.2 - 2 * via4.4)" - surround v4/m5 *m5 120 absence_illegal \ - "Metal5 overlap of via4.< %d (met5.3 - via4.4)" + width v4/m4 1180 "via4 width < %d (via4.1 + 2 * via4.4)" + spacing v4 v4 420 touching_ok "via4 spacing < %d (via4.2 - 2 * via4.4)" + surround v4/m5 *m5,rm5 120 absence_illegal \ + "Metal5 overlap of via4 < %d (met5.3 - via4.4)" exact_overlap v4/m4