disconnect_pin do not delete pin from exceptions

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2025-11-13 10:31:43 -07:00
parent 7fab248f56
commit db3a1dd6e6
6 changed files with 23 additions and 24 deletions

View File

@ -355,8 +355,8 @@ public:
const Network *network) = 0; const Network *network) = 0;
virtual void connectPinAfter(PinSet *, virtual void connectPinAfter(PinSet *,
Network *network) = 0; Network *network) = 0;
virtual void disconnectPinBefore(const Pin *pin, virtual void deletePinBefore(const Pin *pin,
Network *network) = 0; Network *network) = 0;
protected: protected:
const RiseFallBoth *rf_; const RiseFallBoth *rf_;
@ -415,8 +415,8 @@ public:
const Network *) {} const Network *) {}
virtual void connectPinAfter(PinSet *, virtual void connectPinAfter(PinSet *,
Network *) {} Network *) {}
virtual void disconnectPinBefore(const Pin *, virtual void deletePinBefore(const Pin *,
Network *); Network *);
void deleteInstance(const Instance *inst, void deleteInstance(const Instance *inst,
const Network *network); const Network *network);
@ -537,8 +537,8 @@ public:
virtual size_t objectCount() const; virtual size_t objectCount() const;
virtual void connectPinAfter(PinSet *drvrs, virtual void connectPinAfter(PinSet *drvrs,
Network *network); Network *network);
virtual void disconnectPinBefore(const Pin *pin, virtual void deletePinBefore(const Pin *pin,
Network *network); Network *network);
void deleteInstance(const Instance *inst, void deleteInstance(const Instance *inst,
const Network *network); const Network *network);

View File

@ -1027,7 +1027,7 @@ public:
void removeGraphAnnotations(); void removeGraphAnnotations();
// Network edit before/after methods. // Network edit before/after methods.
void disconnectPinBefore(const Pin *pin); void deletePinBefore(const Pin *pin);
void connectPinAfter(const Pin *pin); void connectPinAfter(const Pin *pin);
void clkHpinDisablesChanged(const Pin *pin); void clkHpinDisablesChanged(const Pin *pin);
void makeClkHpinDisable(const Clock *clk, void makeClkHpinDisable(const Clock *clk,

View File

@ -1166,8 +1166,8 @@ ExceptionFromTo::deleteInstance(const Instance *inst,
} }
void void
ExceptionFromTo::disconnectPinBefore(const Pin *pin, ExceptionFromTo::deletePinBefore(const Pin *pin,
Network *network) Network *network)
{ {
deletePin(pin, network); deletePin(pin, network);
} }
@ -2080,8 +2080,8 @@ ExceptionThru::makePinEdges(const Pin *pin,
} }
void void
ExceptionThru::disconnectPinBefore(const Pin *pin, ExceptionThru::deletePinBefore(const Pin *pin,
Network *network) Network *network)
{ {
deletePin(pin, network); deletePin(pin, network);
// Remove edges from/to leaf pin and through hier pin. // Remove edges from/to leaf pin and through hier pin.

View File

@ -5685,22 +5685,22 @@ Sdc::connectPinAfter(const Pin *pin)
} }
void void
Sdc::disconnectPinBefore(const Pin *pin) Sdc::deletePinBefore(const Pin *pin)
{ {
auto itr = pin_exceptions_.find(pin); auto itr = pin_exceptions_.find(pin);
if (itr != pin_exceptions_.end()) { if (itr != pin_exceptions_.end()) {
for (ExceptionPath *exception : itr->second) { for (ExceptionPath *exception : itr->second) {
ExceptionFrom *from = exception->from(); ExceptionFrom *from = exception->from();
if (from) if (from)
from->disconnectPinBefore(pin, network_); from->deletePinBefore(pin, network_);
ExceptionTo *to = exception->to(); ExceptionTo *to = exception->to();
if (to) if (to)
to->disconnectPinBefore(pin, network_); to->deletePinBefore(pin, network_);
ExceptionPt *first_pt = exception->firstPt(); ExceptionPt *first_pt = exception->firstPt();
ExceptionThruSeq *thrus = exception->thrus(); ExceptionThruSeq *thrus = exception->thrus();
if (thrus) { if (thrus) {
for (ExceptionThru *thru : *exception->thrus()) { for (ExceptionThru *thru : *exception->thrus()) {
thru->disconnectPinBefore(pin, network_); thru->deletePinBefore(pin, network_);
if (thru == first_pt) if (thru == first_pt)
recordExceptionEdges(exception, thru->edges(), recordExceptionEdges(exception, thru->edges(),
first_thru_edge_exceptions_); first_thru_edge_exceptions_);

View File

@ -4477,7 +4477,6 @@ Sta::disconnectPinBefore(const Pin *pin)
sdc_network_->pathName(pin), sdc_network_->pathName(pin),
sdc_network_->pathName(network_->net(pin))); sdc_network_->pathName(network_->net(pin)));
parasitics_->disconnectPinBefore(pin, network_); parasitics_->disconnectPinBefore(pin, network_);
sdc_->disconnectPinBefore(pin);
sim_->disconnectPinBefore(pin); sim_->disconnectPinBefore(pin);
if (graph_) { if (graph_) {
if (network_->isDriver(pin)) { if (network_->isDriver(pin)) {

View File

@ -44,16 +44,16 @@ Path Type: max
0.00 510.00 ^ u1/A (BUFx2_ASAP7_75t_R) 0.00 510.00 ^ u1/A (BUFx2_ASAP7_75t_R)
510.00 data arrival time 510.00 data arrival time
250.00 250.00 clock clk (fall edge) 750.00 750.00 clock clk (fall edge)
0.00 250.00 clock network delay (propagated) 0.00 750.00 clock network delay (propagated)
0.00 250.00 clock reconvergence pessimism 0.00 750.00 clock reconvergence pessimism
250.00 v clk (in) 750.00 v clk (in)
-10.00 240.00 data check setup time -10.00 740.00 data check setup time
240.00 data required time 740.00 data required time
--------------------------------------------------------- ---------------------------------------------------------
240.00 data required time 740.00 data required time
-510.00 data arrival time -510.00 data arrival time
--------------------------------------------------------- ---------------------------------------------------------
-270.00 slack (VIOLATED) 230.00 slack (MET)