|
10 | 10 | # MOCK_ARRAY_TABLE (rows, cols, width, height, pitch_x, pitch_y) |
11 | 11 | # rows, cols - number of Element in rows, cols |
12 | 12 | # width, height - width and height of each Element |
| 13 | +# |
| 14 | +# When the pitch is equal to the width/height, we have routing by abutment |
| 15 | +# https://en.wikipedia.org/wiki/Pitch#Linear_measurement |
| 16 | +# |
13 | 17 | # pitch_x, pitch_y - placement pitch for each Element, in x and y direction |
14 | 18 | # specification are in unit of placement grid |
15 | 19 | rows, cols, ce_x, ce_y, pitch_x, pitch_y = map(int, os.environ.get("MOCK_ARRAY_TABLE").split()) |
|
26 | 30 | ce_margin_x = placement_grid_x * 0.5 |
27 | 31 | ce_margin_y = placement_grid_y * 0.5 |
28 | 32 |
|
| 33 | +# PDN problems if it is smaller. Not investigated. |
| 34 | +array_spacing_x = margin_x * 2 |
| 35 | +array_spacing_y = margin_y * 2 |
| 36 | + |
| 37 | +array_offset_x = array_spacing_x + margin_x |
| 38 | +array_offset_y = array_spacing_y + margin_y |
| 39 | + |
29 | 40 | # top level core and die size |
30 | | -core_width = ((placement_grid_x * pitch_x) * (cols + 1)) + (ce_width * cols) |
31 | | -core_height = ((placement_grid_y * pitch_y) * (rows + 1)) + (ce_height * rows) |
| 41 | +core_width = 2 * array_spacing_x + ((placement_grid_x * pitch_x) * (cols - 1)) + ce_width |
| 42 | +core_height = 2 * array_spacing_y + ((placement_grid_y * pitch_y) * (rows - 1)) + ce_height |
32 | 43 |
|
33 | 44 | die_width = core_width + (margin_x * 2) |
34 | 45 | die_height = core_height + (margin_y * 2) |
0 commit comments