@@ -98,7 +98,7 @@ proc read_macros { file_name } {
9898 } elseif { [regexp {FOREIGN\s+([^\s]*)\s+([^\s]*)\s+([^\s]*)} $line - foreign x y] } {
9999 dict set cells $cell_name foreign \
100100 [list ref $foreign \
101- origin [lmap x [list $x $y ] { expr round($x * $def_units ) }]]
101+ origin [lmap x [list $x $y ] { expr round($x * $def_units ) }]]
102102 } elseif { [regexp {SIZE\s+([^\s]*)\s+BY\s+([^\s]*)} $line - width height] } {
103103 dict set cells $cell_name die_area \
104104 [list 0 0 \
@@ -123,8 +123,10 @@ proc read_macros { file_name } {
123123 dict set cells $cell_name pins $pin_name use $use
124124 } elseif { [regexp {ANTENNAMODEL\s+([^\s]*)} $line - antennamodel] } {
125125 continue
126- } elseif { [regexp {ANTENNAGATEAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} \
127- $line - gate_area layer] } {
126+ } elseif {
127+ [regexp {ANTENNAGATEAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} \
128+ $line - gate_area layer]
129+ } {
128130 if { [info vars antennamodel] == " " } {
129131 set antennamodel " default"
130132 }
@@ -146,8 +148,10 @@ proc read_macros { file_name } {
146148 }
147149 lappend model [list gate_area $gate_area ]
148150 dict set cells $cell_name pins $pin_name antenna_model $antennamodel $model
149- } elseif { [regexp {ANTENNADIFFAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} \
150- $line - antennadiffarea layer] } {
151+ } elseif {
152+ [regexp {ANTENNADIFFAREA\s+([^\s]*)\s+LAYER\s+([^\s]*)} \
153+ $line - antennadiffarea layer]
154+ } {
151155 dict set cells $cell_name pins $pin_name antennadiffarea area $antennadiffarea
152156 dict set cells $cell_name pins $pin_name antennadiffarea layer $antennadiffarea
153157 } elseif { [regexp {ANTENNADIFFAREA\s+([^\s]*)\s} $line - antennadiffarea] } {
@@ -163,8 +167,10 @@ proc read_macros { file_name } {
163167 continue
164168 } elseif { [regexp {LAYER\s+([^\s]*)} $line - layer] } {
165169 continue
166- } elseif { [regexp {RECT\s+MASK\s+([^\s]*)\s+([0-9\-\.]*)\s\s*([0-9\-\.]*)\
167- \s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - mask x1 y1 x2 y2] } {
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+ } {
168174 if { [dict exists $port layers $layer shapes] } {
169175 set layer_shapes [dict get $port layers $layer shapes]
170176 } else {
@@ -183,8 +189,10 @@ proc read_macros { file_name } {
183189 mask $mask ]
184190 lappend layer_shapes $new_shape
185191 dict set port layers $layer shapes $layer_shapes
186- } elseif { [regexp {RECT\s([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\
187- \s\s*([0-9\-\.]*)} $line - x1 y1 x2 y2] } {
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+ } {
188196 if { [dict exists $port layers $layer shapes] } {
189197 set layer_shapes [dict get $port layers $layer shapes]
190198 } else {
@@ -196,11 +204,10 @@ proc read_macros { file_name } {
196204 set offset [lmap x [list $x1 $y1 ] { expr round($x * $def_units ) }]
197205 dict set port fixed $offset
198206 }
199- set new_shape [list \
207+ set new_shape [list \
200208 rect [relative_rectangle \
201209 [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }] \
202- $offset ] \
203- ]
210+ $offset ]]
204211 lappend layer_shapes $new_shape
205212 dict set port layers $layer shapes $layer_shapes
206213 } elseif { [regexp {END} $line ] } {
@@ -227,36 +234,39 @@ proc read_macros { file_name } {
227234 set line [gets $ch ]
228235 if { [regexp {^\s*$} $line ] } {
229236 continue
230- } elseif { [regexp {LAYER\s+([^\s]*)(\s+DESIGNRULEWIDTH\s+([0-9.]+))?} \
231- $line - layer - drw] } {
237+ } elseif {
238+ [regexp {LAYER\s+([^\s]*)(\s+DESIGNRULEWIDTH\s+([0-9.]+))?} \
239+ $line - layer - drw]
240+ } {
232241 if { $drw != " " } {
233242 dict set cells $cell_name layers $layer drw $drw
234243 }
235244 continue
236- } elseif { [regexp {RECT\s+MASK\s+([^\s]*)\s+([0-9\-\.]*)\s\s*([0-9\-\.]*)\
237- \s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)} $line - mask x1 y1 x2 y2] } {
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+ } {
238249 if { [dict exists $cells $cell_name obstructions $layer ] } {
239250 set obstructions [dict get $cells $cell_name obstructions $layer ]
240251 } else {
241252 set obstructions {}
242253 }
243- lappend obstructions [concat \
254+ lappend obstructions [concat \
244255 [list rect [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }]] \
245- [list mask $mask ] \
246- ]
256+ [list mask $mask ]]
247257 dict set cells $cell_name obstructions $layer $obstructions
248- } elseif { [regexp {RECT\s([0-9\-\.]*)\s\s*([0-9\-\.]*)\s\s*([0-9\-\.]*)\
249- \s\s*([0-9\-\.]*)} $line - x1 y1 x2 y2] } {
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+ } {
250262 if { [dict exists $cells $cell_name obstructions $layer ] } {
251263 set obstructions [dict get $cells $cell_name obstructions $layer ]
252264 } else {
253265 set obstructions {}
254266 }
255- lappend obstructions [concat \
267+ lappend obstructions [concat \
256268 [list rect \
257- [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }] \
258- ] \
259- ]
269+ [lmap x [list $x1 $y1 $x2 $y2 ] { expr round($x * $def_units ) }]]]
260270 dict set cells $cell_name obstructions $layer $obstructions
261271 } elseif { [regexp {END} $line ] } {
262272 break
@@ -337,8 +347,7 @@ proc write { design } {
337347 out " FOREIGN [ dict get $design foreign ref] [ dict get $design foreign origin] ;"
338348 out [concat \
339349 " SIZE [ expr 1.0 * [lindex [dict get $design die_area] 2] / $def_units ]" \
340- " BY [ expr 1.0 * [lindex [dict get $design die_area] 3] / $def_units ] ;" \
341- ]
350+ " BY [ expr 1.0 * [lindex [dict get $design die_area] 3] / $def_units ] ;" ]
342351 out " SYMMETRY [ dict get $design symmetry] ;"
343352 if { [dict exists $design site] } {
344353 out " SITE [ dict get $design site] ;"
@@ -369,10 +378,9 @@ proc write { design } {
369378
370379 if { [dict exists $shape mask] } {
371380 out [concat \
372- " RECT MASK [ dict get $shape mask] " \
373- " [ lmap x $rect { expr {1.0 * $x / $def_units } }] " \
374- " ;" \
375- ]
381+ " RECT MASK [ dict get $shape mask] " \
382+ " [ lmap x $rect { expr { 1.0 * $x / $def_units } }] " \
383+ " ;" ]
376384 } else {
377385 out " RECT [ lmap x $rect { expr 1.0 * $x / $def_units }] ;"
378386 }
@@ -393,8 +401,7 @@ proc write { design } {
393401 set sheet [concat \
394402 0 0 \
395403 [expr 1.0 * [lindex [dict get $design die_area] 2] / $def_units ] \
396- [expr 1.0 * [lindex [dict get $design die_area] 3] / $def_units ] \
397- ]
404+ [expr 1.0 * [lindex [dict get $design die_area] 3] / $def_units ]]
398405 foreach layer_name [get_blockage_layers $design ] {
399406 if { [dict exists $design layers $layer_name drw] } {
400407 set drw " DESIGNRULEWIDTH [ dict get $design layers $layer_name drw] "
@@ -408,12 +415,11 @@ proc write { design } {
408415 dict for {layer_name obstructions} [dict get $design obstructions] {
409416 out " LAYER $layer_name ;"
410417 foreach obs $obstructions {
411- if { [dict exists $obs mask] } {
418+ if { [dict exists $obs mask] } {
412419 out [concat \
413420 " RECT MASK [ dict get $obs mask] " \
414- " [ lmap x [dict get $obs rect] { expr {1.0 * $x / $def_units } }]" \
415- " ;" \
416- ]
421+ " [ lmap x [dict get $obs rect] { expr { 1.0 * $x / $def_units } }]" \
422+ " ;" ]
417423 } else {
418424 out " RECT [ lmap x [dict get $obs rect] { expr 1.0 * $x / $def_units }] ;"
419425 }
@@ -579,8 +585,7 @@ proc shift_point { point x y } {
579585proc shift_rect { rect x y } {
580586 return [concat \
581587 [list [expr [lindex $rect 0] + $x ] [expr [lindex $rect 1] + $y ]] \
582- [list [expr [lindex $rect 2] + $x ] [expr [lindex $rect 3] + $y ]] \
583- ]
588+ [list [expr [lindex $rect 2] + $x ] [expr [lindex $rect 3] + $y ]]]
584589}
585590
586591proc shift_origin { design x y } {
@@ -770,8 +775,7 @@ proc write { design } {
770775 out " "
771776 out [concat \
772777 " DIEAREA ( [ lrange [dict get $design die_area] 0 1] )" \
773- " ( [ lrange [dict get $design die_area] 2 3] ) ;" \
774- ]
778+ " ( [ lrange [dict get $design die_area] 2 3] ) ;" ]
775779
776780 if { [dict exists $design tracks] } {
777781
@@ -784,12 +788,10 @@ proc write { design } {
784788 [dict get $design rows $idx site] \
785789 [dict get $design rows $idx start] \
786790 [dict get $design rows $idx height] \
787- [dict get $design rows $idx orientation] \
788- ]
791+ [dict get $design rows $idx orientation]]
789792 out [concat \
790793 " DO [ dict get $design rows $idx num_sites] BY 1 STEP " \
791- " [ dict get $design rows $idx site_width] 0 ;" \
792- ]
794+ " [ dict get $design rows $idx site_width] 0 ;" ]
793795 }
794796 }
795797
@@ -799,8 +801,7 @@ proc write { design } {
799801 dict for {pin_name pin} [dict get $design pins] {
800802 out -nonewline [concat \
801803 " - $pin_name + NET [ dict get $pin net_name] " \
802- " + DIRECTION [ dict get $pin direction] " \
803- ]
804+ " + DIRECTION [ dict get $pin direction] " ]
804805 if { [dict exists $pin use] } {
805806 out -nonewline " + USE [ dict get $pin use] "
806807 }
@@ -898,10 +899,9 @@ proc write { design } {
898899 set mask " "
899900 }
900901 if { [llength $point ] == 2 } {
901- out -nonewline [concat \
902+ out -nonewline [concat \
902903 " + $type [ dict get $route layer] " \
903- " [ get_line_width [dict get $route layer] [ list $first_point $point ] ] " \
904- ]
904+ " [ get_line_width [dict get $route layer] [ list $first_point $point ] ] " ]
905905 out -nonewline $shape
906906 out -nonewline $points
907907 out -nonewline $mask
@@ -935,18 +935,16 @@ proc write { design } {
935935 out -nonewline [concat \
936936 " + ROUTED [ dict get $route layer] " \
937937 " [ expr round([dict get $route width] )] " \
938- " + SHAPE [ dict get $route shape] " \
939- ]
938+ " + SHAPE [ dict get $route shape] " ]
940939 foreach point [dict get $route points] {
941940 out -nonewline " $point "
942941 }
943942 out " "
944943
945944 foreach route [lrange [dict get $net routes] 1 end] {
946- out [concat \
945+ out [concat \
947946 " NEW [ dict get $route layer] [ expr round([dict get $route width] )]" \
948- " + SHAPE [ dict get $route shape] " \
949- ]
947+ " + SHAPE [ dict get $route shape] " ]
950948 foreach point [dict get $route points] {
951949 out -nonewline " $point "
952950 }
0 commit comments