Skip to content

Commit 63d1e99

Browse files
committed
[VPR] Deploy new API find_nodes_at_all_sides() in placer
1 parent 56dcbc8 commit 63d1e99

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

vpr/src/place/timing_place_lookup.cpp

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ static bool find_direct_connect_sample_locations(const t_direct_inf* direct,
143143
int to_pin_class,
144144
int* src_rr,
145145
int* sink_rr,
146-
std::vector<int>* scratch);
146+
std::vector<RRNodeId>* scratch);
147147

148148
static bool verify_delta_delays(const vtr::Matrix<float>& delta_delays);
149149

@@ -956,7 +956,7 @@ static bool find_direct_connect_sample_locations(const t_direct_inf* direct,
956956
int to_pin_class,
957957
int* src_rr,
958958
int* sink_rr,
959-
std::vector<int>* scratch) {
959+
std::vector<RRNodeId>* scratch) {
960960
VTR_ASSERT(from_type != nullptr);
961961
VTR_ASSERT(to_type != nullptr);
962962

@@ -982,9 +982,8 @@ static bool find_direct_connect_sample_locations(const t_direct_inf* direct,
982982
RRNodeId from_pin_rr = device_ctx.rr_graph.node_lookup().find_node(from_x, from_y, OPIN, from_pin, direct->from_side);
983983
from_pin_found = (from_pin_rr != RRNodeId::INVALID());
984984
} else {
985-
std::vector<int>& from_pin_rrs = *scratch;
986-
get_rr_node_indices(device_ctx.rr_node_indices, from_x, from_y, OPIN, from_pin, &from_pin_rrs);
987-
from_pin_found = !from_pin_rrs.empty();
985+
(*scratch) = device_ctx.rr_graph.node_lookup().find_nodes_at_all_sides(from_x, from_y, OPIN, from_pin);
986+
from_pin_found = !(*scratch).empty();
988987
}
989988
if (!from_pin_found) continue;
990989

@@ -1000,9 +999,8 @@ static bool find_direct_connect_sample_locations(const t_direct_inf* direct,
1000999
RRNodeId to_pin_rr = device_ctx.rr_graph.node_lookup().find_node(to_x, to_y, IPIN, to_pin, direct->to_side);
10011000
to_pin_found = (to_pin_rr != RRNodeId::INVALID());
10021001
} else {
1003-
std::vector<int>& to_pin_rrs = *scratch;
1004-
get_rr_node_indices(device_ctx.rr_node_indices, to_x, to_y, IPIN, to_pin, &to_pin_rrs);
1005-
to_pin_found = !to_pin_rrs.empty();
1002+
(*scratch) = device_ctx.rr_graph.node_lookup().find_nodes_at_all_sides(to_x, to_y, IPIN, to_pin);
1003+
to_pin_found = !(*scratch).empty();
10061004
}
10071005
if (!to_pin_found) continue;
10081006

@@ -1039,17 +1037,15 @@ static bool find_direct_connect_sample_locations(const t_direct_inf* direct,
10391037
//
10401038

10411039
{
1042-
std::vector<int>& source_rr_nodes = *scratch;
1043-
get_rr_node_indices(device_ctx.rr_node_indices, from_x, from_y, SOURCE, from_pin_class, &source_rr_nodes);
1044-
VTR_ASSERT(source_rr_nodes.size() > 0);
1045-
*src_rr = source_rr_nodes[0];
1040+
(*scratch) = device_ctx.rr_graph.node_lookup().find_nodes_at_all_sides(from_x, from_y, SOURCE, from_pin_class);
1041+
VTR_ASSERT((*scratch).size() > 0);
1042+
*src_rr = size_t((*scratch)[0]);
10461043
}
10471044

10481045
{
1049-
std::vector<int>& sink_rr_nodes = *scratch;
1050-
get_rr_node_indices(device_ctx.rr_node_indices, to_x, to_y, SINK, to_pin_class, &sink_rr_nodes);
1051-
VTR_ASSERT(sink_rr_nodes.size() > 0);
1052-
*sink_rr = sink_rr_nodes[0];
1046+
(*scratch) = device_ctx.rr_graph.node_lookup().find_nodes_at_all_sides(to_x, to_y, SINK, to_pin_class);
1047+
VTR_ASSERT((*scratch).size() > 0);
1048+
*sink_rr = size_t((*scratch)[0]);
10531049
}
10541050

10551051
return true;
@@ -1082,7 +1078,7 @@ void OverrideDelayModel::compute_override_delay_model(
10821078

10831079
//Look at all the direct connections that exist, and add overrides to delay model
10841080
auto& device_ctx = g_vpr_ctx.device();
1085-
std::vector<int> scratch;
1081+
std::vector<RRNodeId> scratch;
10861082
for (int idirect = 0; idirect < device_ctx.arch->num_directs; ++idirect) {
10871083
const t_direct_inf* direct = &device_ctx.arch->Directs[idirect];
10881084

0 commit comments

Comments
 (0)