aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-06-21 20:41:20 +0200
committerClifford Wolf <clifford@clifford.at>2018-06-21 20:41:20 +0200
commit9b98a7175be440a6a59ddcc022615e04b8538bda (patch)
tree5fd54245d281f242b4466d92b6c6f3b69cf13658 /common
parent2c98231f88cd145267048b32a5ce0e4deadc2716 (diff)
downloadnextpnr-9b98a7175be440a6a59ddcc022615e04b8538bda.tar.gz
nextpnr-9b98a7175be440a6a59ddcc022615e04b8538bda.tar.bz2
nextpnr-9b98a7175be440a6a59ddcc022615e04b8538bda.zip
Add total visit counts to router log output
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'common')
-rw-r--r--common/route.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/common/route.cc b/common/route.cc
index 967f9aa1..29b94b8a 100644
--- a/common/route.cc
+++ b/common/route.cc
@@ -408,6 +408,7 @@ NEXTPNR_NAMESPACE_BEGIN
bool route_design(Context *ctx)
{
try {
+ int totalVisitCnt = 0, totalRevisitCnt = 0, totalOvertimeRevisitCnt = 0;
delay_t ripup_penalty = ctx->getRipupDelayPenalty();
RipupScoreboard scores;
@@ -637,12 +638,22 @@ bool route_design(Context *ctx)
"nets with ripup.\n",
iterCnt, normalRouteCnt, int(ripupQueue.size()));
+ totalVisitCnt += visitCnt;
+ totalRevisitCnt += revisitCnt;
+ totalOvertimeRevisitCnt += overtimeRevisitCnt;
+
if (iterCnt == 8 || iterCnt == 16 || iterCnt == 32 ||
iterCnt == 64 || iterCnt == 128)
ripup_penalty += ctx->getRipupDelayPenalty();
}
log_info("routing complete after %d iterations.\n", iterCnt);
+
+ log_info("visited %d PIPs (%.2f%% revisits, %.2f%% "
+ "overtime revisits).\n",
+ totalVisitCnt, (100.0 * totalRevisitCnt) / totalVisitCnt,
+ (100.0 * totalOvertimeRevisitCnt) / totalVisitCnt);
+
log_info("Checksum: 0x%08x\n", ctx->checksum());
return true;
} catch (log_execution_error_exception) {