@@ -1324,20 +1324,6 @@ bool verify_rr_node_indices(const DeviceGrid& grid, const t_rr_node_indices& rr_
1324
1324
return true ;
1325
1325
}
1326
1326
1327
- std::vector<int > get_rr_node_chan_wires_at_location (const t_rr_node_indices& L_rr_node_indices,
1328
- t_rr_type rr_type,
1329
- int x,
1330
- int y) {
1331
- VTR_ASSERT (rr_type == CHANX || rr_type == CHANY);
1332
-
1333
- /* Currently need to swap x and y for CHANX because of chan, seg convention */
1334
- if (CHANX == rr_type) {
1335
- std::swap (x, y);
1336
- }
1337
-
1338
- return L_rr_node_indices[rr_type][x][y][SIDES[0 ]];
1339
- }
1340
-
1341
1327
void get_rr_node_indices (const t_rr_node_indices& L_rr_node_indices,
1342
1328
int x,
1343
1329
int y,
@@ -1518,49 +1504,6 @@ int get_rr_node_index(const t_rr_node_indices& L_rr_node_indices,
1518
1504
return ((unsigned )ptc < lookup.size () ? lookup[ptc] : -1 );
1519
1505
}
1520
1506
1521
- int find_average_rr_node_index (int device_width,
1522
- int device_height,
1523
- t_rr_type rr_type,
1524
- int ptc,
1525
- const t_rr_node_indices& L_rr_node_indices) {
1526
- /* Find and return the index to a rr_node that is located at the "center" *
1527
- * of the current grid array, if possible. In the event the "center" of *
1528
- * the grid array is an EMPTY or IO node, then retry alternate locations. *
1529
- * Worst case, this function will simply return the 1st non-EMPTY and *
1530
- * non-IO node. */
1531
-
1532
- int inode = get_rr_node_index (L_rr_node_indices, (device_width) / 2 , (device_height) / 2 ,
1533
- rr_type, ptc);
1534
-
1535
- if (inode == OPEN) {
1536
- inode = get_rr_node_index (L_rr_node_indices, (device_width) / 4 , (device_height) / 4 ,
1537
- rr_type, ptc);
1538
- }
1539
- if (inode == OPEN) {
1540
- inode = get_rr_node_index (L_rr_node_indices, (device_width) / 4 * 3 , (device_height) / 4 * 3 ,
1541
- rr_type, ptc);
1542
- }
1543
- if (inode == OPEN) {
1544
- auto & device_ctx = g_vpr_ctx.device ();
1545
-
1546
- for (int x = 0 ; x < device_width; ++x) {
1547
- for (int y = 0 ; y < device_height; ++y) {
1548
- if (device_ctx.grid [x][y].type == device_ctx.EMPTY_PHYSICAL_TILE_TYPE )
1549
- continue ;
1550
- if (is_io_type (device_ctx.grid [x][y].type ))
1551
- continue ;
1552
-
1553
- inode = get_rr_node_index (L_rr_node_indices, x, y, rr_type, ptc);
1554
- if (inode != OPEN)
1555
- break ;
1556
- }
1557
- if (inode != OPEN)
1558
- break ;
1559
- }
1560
- }
1561
- return (inode);
1562
- }
1563
-
1564
1507
int get_track_to_pins (RRGraphBuilder& rr_graph_builder,
1565
1508
int seg,
1566
1509
int chan,
@@ -2747,44 +2690,3 @@ static bool should_apply_switch_override(int switch_override) {
2747
2690
}
2748
2691
return false ;
2749
2692
}
2750
-
2751
- /*
2752
- * Utility
2753
- */
2754
- void add_to_rr_node_indices (t_rr_node_indices& rr_node_indices, const t_rr_graph_storage& rr_nodes, int inode) {
2755
- const t_rr_node& rr_node = rr_nodes[inode];
2756
- auto & device_ctx = g_vpr_ctx.device ();
2757
- const auto & rr_graph = device_ctx.rr_graph ;
2758
-
2759
- for (int x = rr_node.xlow (); x <= rr_node.xhigh (); ++x) {
2760
- for (int y = rr_node.ylow (); y <= rr_node.yhigh (); ++y) {
2761
- auto rr_type = rr_graph.node_type (RRNodeId (inode));
2762
- if (rr_type == IPIN || rr_type == OPIN) {
2763
- for (const e_side& side : SIDES) {
2764
- if (!rr_node.is_node_on_specific_side (side)) {
2765
- continue ;
2766
- }
2767
- insert_at_ptc_index (rr_node_indices[rr_graph.node_type (RRNodeId (inode))][x][y][side], rr_node.ptc_num (), inode);
2768
- }
2769
- } else if (rr_type == CHANX) {
2770
- // CHANX uses odd swapped x/y indices....
2771
- insert_at_ptc_index (rr_node_indices[rr_graph.node_type (RRNodeId (inode))][y][x][0 ], rr_node.ptc_num (), inode);
2772
- } else {
2773
- insert_at_ptc_index (rr_node_indices[rr_graph.node_type (RRNodeId (inode))][x][y][0 ], rr_node.ptc_num (), inode);
2774
- }
2775
- }
2776
- }
2777
- }
2778
-
2779
- void insert_at_ptc_index (std::vector<int >& rr_indices, int ptc, int inode) {
2780
- if (ptc >= int (rr_indices.size ())) {
2781
- rr_indices.resize (ptc + 1 , OPEN); // Functional, but inefficient allocations...
2782
- }
2783
-
2784
- if (rr_indices[ptc] == inode) {
2785
- return ;
2786
- }
2787
-
2788
- VTR_ASSERT (rr_indices[ptc] == OPEN);
2789
- rr_indices[ptc] = inode;
2790
- }
0 commit comments