Skip to content

Commit 63e7cfc

Browse files
check if all links have the same bandwidth in SAT router
1 parent b8e95fc commit 63e7cfc

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

vpr/src/noc/sat_routing.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,21 @@ static vtr::vector<NocTrafficFlowId, int> quantize_traffic_flow_bandwidths(int b
217217
const auto& traffic_flow_storage = noc_ctx.noc_traffic_flows_storage;
218218

219219
//TODO: support heterogeneous bandwidth
220-
const double link_bandwidth = noc_ctx.noc_model.get_noc_link_bandwidth();
220+
const auto& noc_links = noc_ctx.noc_model.get_noc_links();
221+
const double link_bandwidth = noc_links.front().get_bandwidth();
222+
auto it = std::adjacent_find(noc_links.begin(), noc_links.end(), [](const NocLink& a, const NocLink& b){
223+
return a.get_bandwidth() != b.get_bandwidth();
224+
});
225+
226+
if (it != noc_links.end()) {
227+
const NocLink& first_link = *it;
228+
const NocLink& second_link = *(it + 1);
229+
VTR_LOG_ERROR(
230+
"SAT router assumes all NoC links have the same bandwidth. "
231+
"NoC links %d and %d have different bandwidth: %g and %g",
232+
(size_t)first_link.get_link_id(), (size_t)second_link.get_link_id(),
233+
first_link.get_bandwidth(), second_link.get_bandwidth());
234+
}
221235

222236
vtr::vector<NocTrafficFlowId, int> rescaled_traffic_flow_bandwidths;
223237
rescaled_traffic_flow_bandwidths.resize(traffic_flow_storage.get_number_of_traffic_flows());

0 commit comments

Comments
 (0)