aboutsummaryrefslogtreecommitdiffstats
path: root/common/timing.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2018-12-02 15:49:24 +0000
committerDavid Shah <dave@ds0.me>2018-12-06 10:53:01 +0000
commitf53dc8d3c9735b4d9c50db1848de9dd3fefbe7ef (patch)
tree538924ac118afb846ba76f7af01c20919a36a489 /common/timing.cc
parenta990a1576cc3b932ec784a0d9863f0ba9c337b0f (diff)
downloadnextpnr-f53dc8d3c9735b4d9c50db1848de9dd3fefbe7ef.tar.gz
nextpnr-f53dc8d3c9735b4d9c50db1848de9dd3fefbe7ef.tar.bz2
nextpnr-f53dc8d3c9735b4d9c50db1848de9dd3fefbe7ef.zip
timing_opt: Improve heuristics
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'common/timing.cc')
-rw-r--r--common/timing.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/common/timing.cc b/common/timing.cc
index 18caa989..6965307d 100644
--- a/common/timing.cc
+++ b/common/timing.cc
@@ -566,16 +566,20 @@ struct Timing
auto &nc = (*net_crit)[net->name];
if (nc.slack.empty())
nc.slack.resize(net->users.size(), std::numeric_limits<delay_t>::max());
+#if 0
if (ctx->debug)
log_info("Net %s cd %s\n", net->name.c_str(ctx), startdomain.first.clock.c_str(ctx));
+#endif
for (size_t i = 0; i < net->users.size(); i++) {
delay_t slack = nd.min_required.at(i) -
(nd.max_arrival + ctx->getNetinfoRouteDelay(net, net->users.at(i)));
+#if 0
if (ctx->debug)
log_info(" user %s.%s required %.02fns arrival %.02f route %.02f slack %.02f\n",
net->users.at(i).cell->name.c_str(ctx), net->users.at(i).port.c_str(ctx),
ctx->getDelayNS(nd.min_required.at(i)), ctx->getDelayNS(nd.max_arrival),
ctx->getDelayNS(ctx->getNetinfoRouteDelay(net, net->users.at(i))), ctx->getDelayNS(slack));
+#endif
if (worst_slack.count(startdomain.first))
worst_slack.at(startdomain.first) = std::min(worst_slack.at(startdomain.first), slack);
else
@@ -612,7 +616,7 @@ struct Timing
nc.cd_worst_slack = std::min(nc.cd_worst_slack, worst_slack.at(startdomain.first));
}
}
-
+#if 0
if (ctx->debug) {
for (auto &nc : *net_crit) {
NetInfo *net = ctx->nets.at(nc.first).get();
@@ -628,6 +632,7 @@ struct Timing
log_break();
}
}
+#endif
}
return min_slack;
}