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