diff options
author | Sergiusz Bazanski <q3k@q3k.org> | 2018-06-22 15:54:05 +0100 |
---|---|---|
committer | Sergiusz Bazanski <q3k@q3k.org> | 2018-06-22 15:54:05 +0100 |
commit | 15a7a76415cfb2e9fcbb534b324f829475036bb6 (patch) | |
tree | f5cd6d21aed83a341e786fa75a8b0053efb16656 /common/route.cc | |
parent | a68478598666d8fea0bef3c1814a96467bdb18ea (diff) | |
parent | e5bd4764b27c86fa804700b18bcac5cf18815314 (diff) | |
download | nextpnr-15a7a76415cfb2e9fcbb534b324f829475036bb6.tar.gz nextpnr-15a7a76415cfb2e9fcbb534b324f829475036bb6.tar.bz2 nextpnr-15a7a76415cfb2e9fcbb534b324f829475036bb6.zip |
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/gl
Diffstat (limited to 'common/route.cc')
-rw-r--r-- | common/route.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/common/route.cc b/common/route.cc index 967f9aa1..a60f1c41 100644 --- a/common/route.cc +++ b/common/route.cc @@ -1,7 +1,7 @@ /* * nextpnr -- Next Generation Place and Route * - * Copyright (C) 2018 Clifford Wolf <clifford@clifford.at> + * Copyright (C) 2018 Clifford Wolf <clifford@symbioticeda.com> * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -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) { |