Corrected the position of "suspendall" in the contact generation routines in the PDK Tcl file for magic, so that those routines do not return while still in the "suspendall" state.
diff --git a/sky130/magic/sky130.tcl b/sky130/magic/sky130.tcl index f5de9b3..451c9db 100644 --- a/sky130/magic/sky130.tcl +++ b/sky130/magic/sky130.tcl
@@ -231,7 +231,6 @@ #---------------------------------------------------------------- proc sky130::mcon_draw {{dir default}} { - suspendall set w [magic::i2u [box width]] set h [magic::i2u [box height]] if {$w < 0.17} { @@ -242,6 +241,7 @@ puts stderr "Mcon height must be at least 0.17um" return } + suspendall paint lic pushbox if {($w < $h) || ($dir == "vert")} { @@ -262,7 +262,6 @@ } proc sky130::via1_draw {} { - suspendall set w [magic::i2u [box width]] set h [magic::i2u [box height]] if {$w < 0.26} { @@ -273,6 +272,7 @@ puts stderr "Via1 height must be at least 0.26um" return } + suspendall paint via1 box grow n 0.05um box grow s 0.05um @@ -288,7 +288,6 @@ } proc sky130::via2_draw {} { - suspendall set w [magic::i2u [box width]] set h [magic::i2u [box height]] if {$w < 0.28} { @@ -299,6 +298,7 @@ puts stderr "Via2 height must be at least 0.28um" return } + suspendall paint via2 box grow n 0.05um box grow s 0.05um @@ -315,7 +315,6 @@ #ifdef METAL5 proc sky130::via3_draw {} { - suspendall set w [magic::i2u [box width]] set h [magic::i2u [box height]] if {$w < 0.32} { @@ -326,6 +325,7 @@ puts stderr "Via3 height must be at least 0.32um" return } + suspendall paint via3 box grow n 0.05um box grow s 0.05um @@ -341,7 +341,6 @@ } proc sky130::via4_draw {} { - suspendall set w [magic::i2u [box width]] set h [magic::i2u [box height]] if {$w < 1.18} { @@ -352,6 +351,7 @@ puts stderr "Via3 height must be at least 1.18um" return } + suspendall paint via4 box grow n 0.05um box grow s 0.05um @@ -368,7 +368,6 @@ #endif (METAL5) proc sky130::subconn_draw {} { - suspendall set w [magic::i2u [box width]] set h [magic::i2u [box height]] if {$w < 0.17} { @@ -379,6 +378,7 @@ puts stderr "Substrate tap height must be at least 0.17um" return } + suspendall paint nsc box grow c 0.1um paint nsd @@ -389,7 +389,6 @@ #---------------------------------------------------------------- proc sky130::mvsubconn_draw {} { - suspendall set w [magic::i2u [box width]] set h [magic::i2u [box height]] if {$w < 0.17} { @@ -400,6 +399,7 @@ puts stderr "Substrate tap height must be at least 0.17um" return } + suspendall paint mvnsc box grow c 0.1um paint mvnsd