OR4349 incr delay calc with shorted outputs

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2023-12-13 16:35:23 -07:00
parent bfe0696ada
commit 28531078e4
1 changed files with 18 additions and 1 deletions

View File

@ -183,8 +183,25 @@ GraphDelayCalc::deleteVertexBefore(Vertex *vertex)
invalid_delays_->erase(vertex);
MultiDrvrNet *multi_drvr = multiDrvrNet(vertex);
if (multi_drvr) {
multi_drvr->drvrs()->erase(vertex);
VertexSet *drvrs = multi_drvr->drvrs();
drvrs->erase(vertex);
multi_drvr_net_map_.erase(vertex);
if (drvrs->empty())
delete multi_drvr;
else {
Level max_drvr_level = 0;
Vertex *max_drvr = nullptr;
for (Vertex *drvr_vertex : *drvrs) {
Level drvr_level = drvr_vertex->level();
if (max_drvr == nullptr
|| drvr_level > max_drvr_level) {
max_drvr = drvr_vertex;
max_drvr_level = drvr_level;
}
}
multi_drvr->setDcalcDrvr(max_drvr);
multi_drvr->findCaps(sdc_);
}
}
}