ReportPath::drvrFanout ignore non-wire arcs

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2022-09-18 16:11:21 -07:00
parent 5bfddf4518
commit a48199d52d
1 changed files with 9 additions and 7 deletions

View File

@ -2760,14 +2760,16 @@ ReportPath::drvrFanout(Vertex *drvr,
VertexOutEdgeIterator iter(drvr, graph_);
while (iter.hasNext()) {
Edge *edge = iter.next();
Pin *pin = edge->to(graph_)->pin();
if (network_->isTopLevelPort(pin)) {
// Output port counts as a fanout.
Port *port = network_->port(pin);
fanout += sdc_->portExtFanout(port, min_max) + 1;
if (edge->isWire()) {
Pin *pin = edge->to(graph_)->pin();
if (network_->isTopLevelPort(pin)) {
// Output port counts as a fanout.
Port *port = network_->port(pin);
fanout += sdc_->portExtFanout(port, min_max) + 1;
}
else
fanout++;
}
else
fanout++;
}
return fanout;
}