|
6 | 6 | #include "rr_node_types.h" |
7 | 7 | #include "vtr_ndmatrix.h" |
8 | 8 |
|
9 | | -/* AA: This structure stores the track connections for each physical pin. Note that num_pins refers to the # of logical pins for a tile and |
| 9 | +/* This structure stores the track connections for each physical pin. Note that num_pins refers to the # of logical pins for a tile and |
10 | 10 | * we use the relative x and y location (0...width and 0...height of the tile) and the side of that unit tile to locate the physical pin. |
11 | 11 | * If pinloc[ipin][iwidth][iheight][side]==1 it exists there... |
12 | 12 | * The alloc_and_load_pin_to_track_map loads up the tracks that connect to each of the *PHYSICAL* pins. Thus, the last dimension of the matrix |
13 | 13 | * goes from [0...Fc-1] where Fc is the actual Fc value for that pin. |
14 | 14 | * |
15 | 15 | * The matrix should be accessed as follows as a result after allocation in rr_graph.cpp: alloc_pin_to_track_lookup (used by unidir and bidir) |
16 | | - * [0..device_ctx.physical_tile_types.size()-1][0..num_pins-1][0..width][0..height][0..layer-1][0..3][0..Fc-1] */ |
| 16 | + * [0..device_ctx.physical_tile_types.size()-1][0..num_pins-1][0..width][0..height][0..3][0..Fc-1] */ |
17 | 17 | typedef std::vector<vtr::NdMatrix<std::vector<int>, 4>> t_pin_to_track_lookup; |
18 | 18 |
|
19 | | -/* AA: t_pin_to_track_lookup is alloacted first and is then converted to t_track_to_pin lookup by simply redefining the accessing order. |
20 | | - * As a result, the matrix should be accessed as follow as a result after allocation in rr_graph.cpp: alloc_track_to_pin_lookup (used by unidir and bidir) |
21 | | - * [0..device_ctx.physical_tile_types.size()-1][0..max_chan_width-1][0..width][0..height][0..layer-1][0..3] |
22 | | - * |
23 | | - * Note that when we model different channels based on position not axis, we can't use this anymore and need to have a lookup for each grid location. */ |
| 19 | +/** |
| 20 | + * @brief Lookup table from routing tracks to block pins. |
| 21 | + * |
| 22 | + * The allocation is done in `alloc_and_load_track_to_pin_lookup()`, and the table becomes |
| 23 | + * a track-to-pin lookup simply by changing the access order of the underlying data. |
| 24 | + * |
| 25 | + * After allocation, the lookup should be accessed in the following index order: |
| 26 | + * [0..device_ctx.physical_tile_types.size()-1][0..max_chan_width - 1][0..width][0..height][0..3] |
| 27 | + * |
| 28 | + * @note When we model different channels based on position not axis, |
| 29 | + we can't use this anymore and need to have a lookup for each grid location. |
| 30 | + */ |
24 | 31 | typedef std::vector<vtr::NdMatrix<std::vector<int>, 4>> t_track_to_pin_lookup; |
25 | 32 |
|
| 33 | + |
26 | 34 | /** |
27 | 35 | * @brief Lists detailed information about wire segments. [0 .. W-1]. |
28 | 36 | */ |
|
0 commit comments