aboutsummaryrefslogtreecommitdiffstats
path: root/common/router2.cc
diff options
context:
space:
mode:
Diffstat (limited to 'common/router2.cc')
-rw-r--r--common/router2.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/common/router2.cc b/common/router2.cc
index b189c6d1..ee298ae4 100644
--- a/common/router2.cc
+++ b/common/router2.cc
@@ -300,7 +300,9 @@ struct Router2
if (wd.bound_nets.count(net->udata))
source_uses = wd.bound_nets.at(net->udata).first;
// FIXME: timing/wirelength balance?
- return ctx->getDelayNS(ctx->estimateDelay(wire, sink)) / (1 + source_uses);
+ float ipin_cost = ctx->getDelayNS(ctx->getWireDelay(sink).maxDelay() + ctx->getDelayEpsilon());
+ return std::max(0.0f, ctx->getDelayNS(ctx->estimateDelay(wire, sink)) - ipin_cost) / (1 + source_uses) +
+ ipin_cost;
}
bool check_arc_routing(NetInfo *net, size_t usr)