GraphDelayCalc1::findVertexDelay handle root vertices

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2021-10-21 12:32:20 -07:00
parent 1b5bf2c9ff
commit e34a3465b1
1 changed files with 9 additions and 5 deletions

View File

@ -840,11 +840,15 @@ GraphDelayCalc1::findVertexDelay(Vertex *vertex,
bool propagate)
{
const Pin *pin = vertex->pin();
// Don't clobber root slews.
if (!vertex->isRoot()) {
debugPrint(debug_, "delay_calc", 2, "find delays %s (%s)",
vertex->name(sdc_network_),
network_->cellName(network_->instance(pin)));
debugPrint(debug_, "delay_calc", 2, "find delays %s (%s)",
vertex->name(sdc_network_),
network_->cellName(network_->instance(pin)));
if (vertex->isRoot()) {
seedRootSlew(vertex, arc_delay_calc);
if (propagate)
iter_->enqueueAdjacentVertices(vertex);
}
else {
if (network_->isLeaf(pin)) {
if (vertex->isDriver(network_)) {
bool delay_changed = findDriverDelays(vertex, arc_delay_calc);