aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/nextpnr.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/common/nextpnr.cc b/common/nextpnr.cc
index 74747642..2c50c9a1 100644
--- a/common/nextpnr.cc
+++ b/common/nextpnr.cc
@@ -92,7 +92,7 @@ delay_t Context::getNetinfoRouteDelay(NetInfo *net_info, int user_idx) const
{
WireId src_wire = getNetinfoSourceWire(net_info);
WireId cursor = getNetinfoSinkWire(net_info, user_idx);
- delay_t delay = getWireDelay(src_wire).maxDelay();
+ delay_t delay = 0;
while (cursor != WireId() && cursor != src_wire) {
auto it = net_info->wires.find(cursor);
@@ -104,6 +104,11 @@ delay_t Context::getNetinfoRouteDelay(NetInfo *net_info, int user_idx) const
cursor = getPipSrcWire(pip);
}
+ if (cursor == src_wire)
+ delay += getWireDelay(src_wire).maxDelay();
+ else
+ delay += estimateDelay(src_wire, cursor);
+
return delay;
}