@@ -72,6 +72,7 @@ proc get_height { cell } {
7272 return [expr [lindex [dict get $cell die_area] 3] - [lindex [dict get $cell die_area] 1]]
7373}
7474
75+ # tclint-disable line-length
7576proc read_macros { file_name } {
7677 variable cells
7778 variable def_units
@@ -93,17 +94,11 @@ proc read_macros { file_name } {
9394 } elseif { [regexp {CLASS\s+([^\s]*)} $line - cell_class] } {
9495 dict set cells $cell_name cell_class $cell_class
9596 } elseif { [regexp {ORIGIN\s+([^\s]*)\s+([^\s]*)} $line - origin_x origin_y] } {
96- dict set cells $cell_name origin \
97- [lmap x [list $origin_x $origin_y ] { expr round($x * $def_units ) }]
97+ dict set cells $cell_name origin [lmap x [list $origin_x $origin_y ] { expr round($x * $def_units ) }]
9898 } elseif { [regexp {FOREIGN\s+([^\s]*)\s+([^\s]*)\s+([^\s]*)} $line - foreign x y] } {
99- dict set cells $cell_name foreign \
100- [list ref $foreign \
101- origin [lmap x [list $x $y ] { expr round($x * $def_units ) }]]
99+ dict set cells $cell_name foreign [list ref $foreign origin [lmap x [list $x $y ] { expr round($x * $def_units ) }]]
102100 } elseif { [regexp {SIZE\s+([^\s]*)\s+BY\s+([^\s]*)} $line - width height] } {
103- dict set cells $cell_name die_area \
104- [list 0 0 \
105- [expr round($width * $def_units )] \
106- [expr round($height * $def_units )]]
101+ dict set cells $cell_name die_area [list 0 0 [expr round($width * $def_units )] [expr round($height * $def_units )]]
107102 } elseif { [regexp {SYMMETRY\s+(.*)\s;} $line - symmetry] } {
108103 dict set cells $cell_name symmetry $symmetry
109104 } elseif { [regexp {SITE\s+([^\s]*)} $line - site] } {
@@ -123,10 +118,7 @@ proc read_macros { file_name } {
123118 dict set cells $cell_name pins $pin_name use $use
124119 } elseif { [regexp {ANTENNAMODEL\s+([^\s]*)} $line - antennamodel] } {
125120 continue
126- } elseif {
127- [regexp {ANTENNAGATEAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} \
128- $line - gate_area layer]
129- } {
121+ } elseif { [regexp {ANTENNAGATEAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} $line - gate_area layer] } {
130122 if { [info vars antennamodel] == " " } {
131123 set antennamodel " default"
132124 }
@@ -148,10 +140,7 @@ proc read_macros { file_name } {
148140 }
149141 lappend model [list gate_area $gate_area ]
150142 dict set cells $cell_name pins $pin_name antenna_model $antennamodel $model
151- } elseif {
152- [regexp {ANTENNADIFFAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} \
153- $line - antennadiffarea layer]
154- } {
143+ } elseif { [regexp {ANTENNADIFFAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} $line - antennadiffarea layer] } {
155144 dict set cells $cell_name pins $pin_name antennadiffarea area $antennadiffarea
156145 dict set cells $cell_name pins $pin_name antennadiffarea layer $antennadiffarea
157146 } elseif { [regexp {ANTENNADIFFAREA\s+([^\s]*)\s} $line - antennadiffarea] } {
@@ -167,10 +156,7 @@ proc read_macros { file_name } {
167156 continue
168157 } elseif { [regexp {LAYER\s+([^\s]*)} $line - layer] } {
169158 continue
170- } elseif {
171- [regexp {RECT\s+MASK\s+([^\s]*)\s+([0-9\-\.]*)\s\s*([0-9\-\.]*)\
172- \s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - mask x1 y1 x2 y2]
173- } {
159+ } elseif { [regexp {RECT\s+MASK\s+([^\s]*)\s+([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - mask x1 y1 x2 y2] } {
174160 if { [dict exists $port layers $layer shapes] } {
175161 set layer_shapes [dict get $port layers $layer shapes]
176162 } else {
@@ -183,16 +169,11 @@ proc read_macros { file_name } {
183169 dict set port fixed $offset
184170 }
185171 set new_shape [list \
186- rect [relative_rectangle \
187- [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }] \
188- $offset ] \
172+ rect [relative_rectangle [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }] $offset ] \
189173 mask $mask ]
190174 lappend layer_shapes $new_shape
191175 dict set port layers $layer shapes $layer_shapes
192- } elseif {
193- [regexp {RECT\s([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\
194- \s\s*([0-9\-\.]*)} $line - x1 y1 x2 y2]
195- } {
176+ } elseif { [regexp {RECT\s([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - x1 y1 x2 y2] } {
196177 if { [dict exists $port layers $layer shapes] } {
197178 set layer_shapes [dict get $port layers $layer shapes]
198179 } else {
@@ -205,9 +186,7 @@ proc read_macros { file_name } {
205186 dict set port fixed $offset
206187 }
207188 set new_shape [list \
208- rect [relative_rectangle \
209- [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }] \
210- $offset ]]
189+ rect [relative_rectangle [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }] $offset ]]
211190 lappend layer_shapes $new_shape
212191 dict set port layers $layer shapes $layer_shapes
213192 } elseif { [regexp {END} $line ] } {
@@ -234,39 +213,26 @@ proc read_macros { file_name } {
234213 set line [gets $ch ]
235214 if { [regexp {^\s*$} $line ] } {
236215 continue
237- } elseif {
238- [regexp {LAYER\s+([^\s]*)(\s+DESIGNRULEWIDTH\s+([0-9.]+))?} \
239- $line - layer - drw]
240- } {
216+ } elseif { [regexp {LAYER\s+([^\s]*)(\s+DESIGNRULEWIDTH\s+([0-9.]+))?} $line - layer - drw] } {
241217 if { $drw != " " } {
242218 dict set cells $cell_name layers $layer drw $drw
243219 }
244220 continue
245- } elseif {
246- [regexp {RECT\s+MASK\s+([^\s]*)\s+([0-9\-\.]*)\s\s*([0-9\-\.]*)\
247- \s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - mask x1 y1 x2 y2]
248- } {
221+ } elseif { [regexp {RECT\s+MASK\s+([^\s]*)\s+([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - mask x1 y1 x2 y2] } {
249222 if { [dict exists $cells $cell_name obstructions $layer ] } {
250223 set obstructions [dict get $cells $cell_name obstructions $layer ]
251224 } else {
252225 set obstructions {}
253226 }
254- lappend obstructions [concat \
255- [list rect [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }]] \
256- [list mask $mask ]]
227+ lappend obstructions [list rect [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }] mask $mask ]
257228 dict set cells $cell_name obstructions $layer $obstructions
258- } elseif {
259- [regexp {RECT\s([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\
260- \s\s*([0-9\-\.]*)} $line - x1 y1 x2 y2]
261- } {
229+ } elseif { [regexp {RECT\s([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - x1 y1 x2 y2] } {
262230 if { [dict exists $cells $cell_name obstructions $layer ] } {
263231 set obstructions [dict get $cells $cell_name obstructions $layer ]
264232 } else {
265233 set obstructions {}
266234 }
267- lappend obstructions [concat \
268- [list rect \
269- [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }]]]
235+ lappend obstructions [list rect [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }]]
270236 dict set cells $cell_name obstructions $layer $obstructions
271237 } elseif { [regexp {END} $line ] } {
272238 break
@@ -285,6 +251,7 @@ proc read_macros { file_name } {
285251
286252 ::close $ch
287253}
254+ # tclint-enable line-length
288255
289256proc get_blockage_layers { design } {
290257 if { [dict exists $design blockage_layers] } {
0 commit comments