Sta::removeNetLoadCaps()

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2023-02-22 14:50:49 -07:00
parent cc2ef1783f
commit 5fbe059b61
4 changed files with 25 additions and 10 deletions

View File

@ -583,6 +583,8 @@ public:
float cap);
static void movePortExtCaps(Sdc *from,
Sdc *to);
// Remove all "set_load net" annotations.
void removeNetLoadCaps();
void setNetWireCap(const Net *net,
bool subtract_pin_cap,
const Corner *corner,

View File

@ -179,6 +179,8 @@ public:
const Corner *corner,
const MinMaxAll *min_max,
float cap);
// Remove all "set_load net" annotations.
void removeNetLoadCaps() const;
// Set port external fanout (used by wireload models).
void setPortExtFanout(const Port *port,
int fanout,

View File

@ -299,12 +299,7 @@ Sdc::deleteConstraints()
clearGroupPathMap();
deleteDeratingFactors();
for (int corner_index = 0; corner_index < corners_->count(); corner_index++) {
port_ext_cap_maps_[corner_index].deleteContentsClear();
net_wire_cap_maps_[corner_index].clear();
}
port_ext_cap_maps_.clear();
net_wire_cap_maps_.clear();
removeNetLoadCaps();
clk_sense_map_.clear();
@ -312,6 +307,18 @@ Sdc::deleteConstraints()
instance_pvt_maps_[mm_index].deleteContentsClear();
}
void
Sdc::removeNetLoadCaps()
{
if (!net_wire_cap_maps_.empty()) {
for (int corner_index = 0; corner_index < corners_->count(); corner_index++) {
net_wire_cap_maps_[corner_index].clear();
drvr_pin_wire_cap_maps_[corner_index].clear();
port_ext_cap_maps_[corner_index].deleteContentsClear();
}
}
}
void
Sdc::removeLibertyAnnotations()
{
@ -365,10 +372,7 @@ void
Sdc::makeCornersAfter(Corners *corners)
{
corners_ = corners;
port_ext_cap_maps_.clear();
net_wire_cap_maps_.clear();
drvr_pin_wire_cap_maps_.clear();
removeNetLoadCaps();
port_ext_cap_maps_.resize(corners_->count(), PortExtCapMap(PortIdLess(network_)));
net_wire_cap_maps_.resize(corners_->count(), NetWireCapMap(NetIdLess(network_)));
drvr_pin_wire_cap_maps_.resize(corners_->count(), PinWireCapMap(PinIdLess(network_)));

View File

@ -3703,6 +3703,13 @@ Sta::setPortExtWireCap(const Port *port,
delaysInvalidFromFanin(port);
}
void
Sta::removeNetLoadCaps() const
{
sdc_->removeNetLoadCaps();
graph_delay_calc_->delaysInvalid();
}
void
Sta::setPortExtFanout(const Port *port,
int fanout,