Add fallback to estimateDelay() in getNetinfoRouteDelay()

Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
Clifford Wolf 2018-07-23 12:44:26 +02:00
parent 27c5236826
commit a436facfd0

View File

@ -92,7 +92,7 @@ delay_t Context::getNetinfoRouteDelay(NetInfo *net_info, int user_idx) const
{ {
WireId src_wire = getNetinfoSourceWire(net_info); WireId src_wire = getNetinfoSourceWire(net_info);
WireId cursor = getNetinfoSinkWire(net_info, user_idx); WireId cursor = getNetinfoSinkWire(net_info, user_idx);
delay_t delay = getWireDelay(src_wire).maxDelay(); delay_t delay = 0;
while (cursor != WireId() && cursor != src_wire) { while (cursor != WireId() && cursor != src_wire) {
auto it = net_info->wires.find(cursor); 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); cursor = getPipSrcWire(pip);
} }
if (cursor == src_wire)
delay += getWireDelay(src_wire).maxDelay();
else
delay += estimateDelay(src_wire, cursor);
return delay; return delay;
} }