replace_cell checks
This commit is contained in:
parent
a988588dac
commit
cfaef559e6
|
|
@ -1141,14 +1141,20 @@ ConcreteNetwork::makePins(Instance *inst)
|
||||||
void
|
void
|
||||||
ConcreteNetwork::replaceCell(Instance *inst,
|
ConcreteNetwork::replaceCell(Instance *inst,
|
||||||
LibertyCell *cell)
|
LibertyCell *cell)
|
||||||
|
{
|
||||||
|
replaceCellIntenal(inst, cell);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ConcreteNetwork::replaceCellIntenal(Instance *inst,
|
||||||
|
ConcreteCell *cell)
|
||||||
{
|
{
|
||||||
InstancePinIterator *pin_iter = pinIterator(inst);
|
InstancePinIterator *pin_iter = pinIterator(inst);
|
||||||
ConcreteCell *ccell = cell;
|
|
||||||
while (pin_iter->hasNext()) {
|
while (pin_iter->hasNext()) {
|
||||||
Pin *pin = pin_iter->next();
|
Pin *pin = pin_iter->next();
|
||||||
ConcretePin *cpin = reinterpret_cast<ConcretePin*>(pin);
|
ConcretePin *cpin = reinterpret_cast<ConcretePin*>(pin);
|
||||||
ConcretePort *pin_cport = reinterpret_cast<ConcretePort*>(cpin->port());
|
ConcretePort *pin_cport = reinterpret_cast<ConcretePort*>(cpin->port());
|
||||||
ConcretePort *cport = ccell->findPort(pin_cport->name());
|
ConcretePort *cport = cell->findPort(pin_cport->name());
|
||||||
if (cport)
|
if (cport)
|
||||||
cpin->port_ = cport;
|
cpin->port_ = cport;
|
||||||
else
|
else
|
||||||
|
|
@ -1611,7 +1617,7 @@ ConcreteInstance::deleteNet(ConcreteNet *net)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ConcreteInstance::setCell(LibertyCell *cell)
|
ConcreteInstance::setCell(ConcreteCell *cell)
|
||||||
{
|
{
|
||||||
cell_ = cell;
|
cell_ = cell;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -247,6 +247,8 @@ protected:
|
||||||
ConcretePin *cpin);
|
ConcretePin *cpin);
|
||||||
void connectNetPin(ConcreteNet *cnet,
|
void connectNetPin(ConcreteNet *cnet,
|
||||||
ConcretePin *cpin);
|
ConcretePin *cpin);
|
||||||
|
void replaceCellIntenal(Instance *inst,
|
||||||
|
ConcreteCell *cell);
|
||||||
|
|
||||||
// Cell lookup search order sequence.
|
// Cell lookup search order sequence.
|
||||||
ConcreteLibrarySeq library_seq_;
|
ConcreteLibrarySeq library_seq_;
|
||||||
|
|
@ -284,7 +286,7 @@ public:
|
||||||
void addNet(const char *name,
|
void addNet(const char *name,
|
||||||
ConcreteNet *net);
|
ConcreteNet *net);
|
||||||
void deleteNet(ConcreteNet *net);
|
void deleteNet(ConcreteNet *net);
|
||||||
void setCell(LibertyCell *cell);
|
void setCell(ConcreteCell *cell);
|
||||||
void initPins();
|
void initPins();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -254,7 +254,10 @@ proc insert_buffer { buffer_name buffer_cell net load_pins buffer_out_net_name }
|
||||||
lappend load_pins $pin1
|
lappend load_pins $pin1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
insert_buffer_cmd $buffer_name $buffer_cell $net $load_pins $buffer_out_net_name
|
if { $buffer_cell != "NULL" \
|
||||||
|
&& $net != "NULL" } {
|
||||||
|
insert_buffer_cmd $buffer_name $buffer_cell $net $load_pins $buffer_out_net_name
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# sta namespace end.
|
# sta namespace end.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue