File tree Expand file tree Collapse file tree 6 files changed +207
-194
lines changed
flow/designs/asap7/mock-array Expand file tree Collapse file tree 6 files changed +207
-194
lines changed Original file line number Diff line number Diff line change @@ -51,3 +51,6 @@ export DETAILED_ROUTE_ARGS = -bottom_routing_layer M2 -top_routing_layer M7 -s
5151# same information to other stages in the flow.
5252export MIN_ROUTING_LAYER = M2
5353export MAX_ROUTING_LAYER = M7
54+
55+ # works with 28 or more iterations as of writing, so give it a few more.
56+ export GLOBAL_ROUTE_ARGS =-congestion_iterations 40 -verbose
Original file line number Diff line number Diff line change @@ -13,3 +13,5 @@ set non_clock_inputs [lsearch -inline -all -not -exact [all_inputs] $clk_port]
1313
1414set_input_delay [expr $clk_period * $clk_io_pct ] -clock $clk_name $non_clock_inputs
1515set_output_delay [expr $clk_period * $clk_io_pct ] -clock $clk_name [all_outputs]
16+
17+ set_dont_touch [get_nets ces_*_*]
Original file line number Diff line number Diff line change 33# current unit is configured as 2.16 which is on the routing grid for M5
44
55# table of Elements - (rows cols width height pitch_x pitch_y)
6- export MOCK_ARRAY_TABLE ?= 8 8 20 20 25 25
6+ export MOCK_ARRAY_TABLE ?= 8 8 20 20 20 22
77
88# Element'd data width
99export MOCK_ARRAY_DATAWIDTH ?= 64
1010
1111# Must be zero for routing by abutment
12- export MACRO_BLOCKAGE_HALO ?= 0.5
12+ export MACRO_BLOCKAGE_HALO ?= 0
1313
1414export MOCK_ARRAY_SCALE ?= 45
Original file line number Diff line number Diff line change @@ -9,8 +9,16 @@ for {set row 0} {$row < $rows} {incr row} {
99 for {set col 0} {$col < $cols } {incr col} {
1010 set inst [$block findInst [format " ces_%d_%d" $row $col ]]
1111
12- set x [expr int((($array_offset_x + (($placement_grid_x * $pitch_x ) * $col )) * $units ))]
13- set y [expr int((($array_offset_y + (($placement_grid_y * $pitch_y ) * $row )) * $units ))]
12+ set x [expr round((($array_offset_x + (($placement_grid_x * $pitch_x ) * $col )) * $units ))]
13+ set y [expr round((($array_offset_y + (($placement_grid_y * $pitch_y ) * $row )) * $units ))]
14+
15+ # belt and suspenders check... ASAP7 macro placement must be aligned to 0.048um
16+ if {$x % 48 != 0} {
17+ error " x=$x is not divisible by 48"
18+ }
19+ if {$y % 48 != 0} {
20+ error " y=$y is not divisible by 48"
21+ }
1422
1523 $inst setOrient R0
1624 $inst setOrigin $x $y
You can’t perform that action at this time.
0 commit comments