Sta::makeInstanceAfter only connect internal pins
This commit is contained in:
parent
36c36d7b76
commit
19925c3a7d
|
|
@ -3809,19 +3809,22 @@ Sta::disconnectPin(Pin *pin)
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Network::makePins with connectPinAfter.
|
|
||||||
void
|
void
|
||||||
Sta::makeInstanceAfter(Instance *inst)
|
Sta::makeInstanceAfter(Instance *inst)
|
||||||
{
|
{
|
||||||
|
// There is no user "connect_pin" called for internal pins,
|
||||||
|
// so call it implicitly.
|
||||||
LibertyCell *lib_cell = network_->libertyCell(inst);
|
LibertyCell *lib_cell = network_->libertyCell(inst);
|
||||||
if (lib_cell) {
|
if (lib_cell
|
||||||
|
&& lib_cell->hasInternalPorts()) {
|
||||||
LibertyCellPortBitIterator port_iter(lib_cell);
|
LibertyCellPortBitIterator port_iter(lib_cell);
|
||||||
while (port_iter.hasNext()) {
|
while (port_iter.hasNext()) {
|
||||||
LibertyPort *lib_port = port_iter.next();
|
LibertyPort *lib_port = port_iter.next();
|
||||||
Pin *pin = network_->findPin(inst, lib_port);
|
if (lib_port->direction()->isInternal()) {
|
||||||
// Internal pins may not exist.
|
Pin *pin = network_->findPin(inst, lib_port);
|
||||||
if (pin)
|
if (pin)
|
||||||
connectPinAfter(pin);
|
connectPinAfter(pin);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue