|
3 | 3 |
|
4 | 4 | rows = int(os.environ.get("MOCK_ARRAY_HEIGHT", "8")) |
5 | 5 | cols = int(os.environ.get("MOCK_ARRAY_WIDTH", "8")) |
6 | | -pitch_scale = int(os.environ.get("MOCK_ARRAY_PITCH_SCALE", "10")) |
| 6 | +pitch_scale = int(os.environ.get("MOCK_ARRAY_PITCH_SCALE", "2")) |
7 | 7 |
|
| 8 | +# Routing pitches for relevant metal layers. |
| 9 | +# For x, this is M5; for y, this is M4. |
| 10 | +# Pitches are specified in OpenROAD-flow-scripts/flow/platforms/asap7/lef/asap7_tech_1x_201209.lef. |
| 11 | +# For asap7, x and y pitch is the same. |
| 12 | +routing_pitch = 0.048 |
8 | 13 |
|
9 | | -# from platforms/asap7/openRoad/make_tracks.tcl, smallest common x_pitch and y_pitch |
10 | | -# denominator |
11 | | -lowest_common_grid_denominator = 0.576 |
| 14 | +# 0.048 * 125 = 6, which is a nice round number to work with |
| 15 | +pitch = routing_pitch * 125 * pitch_scale |
| 16 | +margin = routing_pitch * 125 * 2 |
| 17 | +core_offset_x = margin |
| 18 | +core_offset_y = margin |
| 19 | +die_offset_x = core_offset_x + margin |
| 20 | +die_offset_y = core_offset_y + margin |
12 | 21 |
|
13 | | -power_x_pitch = 4 * lowest_common_grid_denominator |
14 | | -power_y_pitch = 4 * lowest_common_grid_denominator |
15 | | -y_pitch = (power_y_pitch * pitch_scale) |
16 | | -x_pitch = (power_x_pitch * pitch_scale) |
17 | | -offset_x = power_x_pitch * 4 |
18 | | -offset_y = power_y_pitch * 4 |
19 | | -margin = 4 * lowest_common_grid_denominator |
| 22 | +pitch_and_margin = pitch + margin |
20 | 23 |
|
21 | | -element_width = x_pitch - power_x_pitch * 4 |
22 | | -element_height = y_pitch - power_y_pitch * 4 |
23 | | - |
24 | | -height = rows * y_pitch + offset_y |
25 | | -width = cols * x_pitch + offset_x |
| 24 | +core_width = cols * pitch_and_margin + core_offset_x |
| 25 | +core_height = rows * pitch_and_margin + core_offset_y |
| 26 | +die_width = core_width + margin * 2 |
| 27 | +die_height = core_height + margin * 2 |
0 commit comments