Improve router error reporting

Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
Clifford Wolf 2018-06-13 18:28:02 +02:00
parent 537b0e6e94
commit 9b3af68e44

View File

@ -48,6 +48,9 @@ void route_design(Design *design, bool verbose)
int itercnt = 0, netcnt = 0;
float maxDelay = 0.0;
int failedPathCnt = 0;
std::unordered_set<IdString> failedNets;
log_info("Routing..\n");
for (auto &net_it : design->nets) {
@ -203,10 +206,14 @@ void route_design(Design *design, bool verbose)
}
}
if (visited.count(dst_wire) == 0)
log_error("Failed to route %s -> %s.\n",
if (visited.count(dst_wire) == 0) {
log_info("Failed to route %s -> %s.\n",
chip.getWireName(src_wire).c_str(),
chip.getWireName(dst_wire).c_str());
failedNets.insert(net_name);
failedPathCnt++;
continue;
}
if (verbose)
log(" Final path delay: %.2f\n", visited[dst_wire].delay);
@ -237,6 +244,10 @@ void route_design(Design *design, bool verbose)
log_info("routed %d nets, visited %d wires.\n", netcnt, itercnt);
log_info("longest path delay: %.2f\n", maxDelay);
if (failedPathCnt > 0)
log_error("Failed to route %d paths (%d nets).\n", failedPathCnt,
int(failedNets.size()));
}
NEXTPNR_NAMESPACE_END