aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorEddie Hung <e.hung@imperial.ac.uk>2018-07-25 22:31:47 -0700
committerEddie Hung <e.hung@imperial.ac.uk>2018-07-25 22:31:47 -0700
commit8f930d683bd58f21554832f19529b567fa0e8fa2 (patch)
treefe8f4555adb2c54d3c1ebda172967a6b809bc1f1 /common
parentb211dded3fa21859227a24b2129a680306fc5a65 (diff)
downloadnextpnr-8f930d683bd58f21554832f19529b567fa0e8fa2.tar.gz
nextpnr-8f930d683bd58f21554832f19529b567fa0e8fa2.tar.bz2
nextpnr-8f930d683bd58f21554832f19529b567fa0e8fa2.zip
Print budget of net and its driver/sink locations too
Diffstat (limited to 'common')
-rw-r--r--common/timing.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/common/timing.cc b/common/timing.cc
index 1887b03d..7977bcd2 100644
--- a/common/timing.cc
+++ b/common/timing.cc
@@ -222,7 +222,7 @@ void compute_fmax(Context *ctx, bool print_fmax, bool print_path)
if (print_path) {
delay_t total = 0;
log_break();
- log_info("Critical path:\n");
+ log_info("Critical path report:\n");
log_info("curr total\n");
auto& front = crit_path.front();
auto& front_port = front->cell->ports.at(front->port);
@@ -240,11 +240,12 @@ void compute_fmax(Context *ctx, bool print_fmax, bool print_path)
delay_t comb_delay;
ctx->getCellDelay(sink_cell, last_port, driver.port, comb_delay);
total += comb_delay;
- log_info("%4d %4d Source %s.%s (s)\n", comb_delay, total, driver_cell->name.c_str(ctx), driver.port.c_str(ctx));
+ log_info("%4d %4d Source %s.%s\n", comb_delay, total, driver_cell->name.c_str(ctx), driver.port.c_str(ctx));
delay_t net_delay = ctx->getNetinfoRouteDelay(net, i);
- net_delay = ctx->getBudgetOverride(driver, net_delay);
total += net_delay;
- log_info("%4d %4d Net %s\n", net_delay, total, net->name.c_str(ctx));
+ auto driver_loc = ctx->getBelLocation(driver_cell->bel);
+ auto sink_loc = ctx->getBelLocation(sink_cell->bel);
+ log_info("%4d %4d Net %s budget %d (%d,%d) -> (%d,%d)\n", net_delay, total, net->name.c_str(ctx), sink->budget, driver_loc.x, driver_loc.y, sink_loc.x, sink_loc.y);
log_info(" Sink %s.%s\n", sink_cell->name.c_str(ctx), sink->port.c_str(ctx));
last_port = sink->port;
}