Sta::clearNonSdc clear sim resolves #382

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2026-02-17 11:03:05 -07:00
parent 54a3cc0721
commit aca993e9ee
2 changed files with 8 additions and 6 deletions

View File

@ -135,7 +135,7 @@ SearchPred0::searchThru(Edge *edge,
bool
SearchPred0::searchTo(const Vertex *to_vertex,
const Mode *mode) const
const Mode *mode) const
{
return !mode->sim()->isConstant(to_vertex);
}

View File

@ -173,9 +173,9 @@ StaSimObserver::valueChangeAfter(const Pin *pin)
{
Vertex *vertex = graph_->pinDrvrVertex(pin);
if (vertex) {
search_->arrivalInvalid(vertex);
search_->requiredInvalid(vertex);
search_->endpointInvalid(vertex);
search_->arrivalInvalid(vertex);
search_->requiredInvalid(vertex);
search_->endpointInvalid(vertex);
}
}
@ -545,7 +545,6 @@ void
Sta::clearNonSdc()
{
// Sdc holds search filter, so clear search first.
search_->clear();
levelize_->clear();
deleteParasitics();
graph_delay_calc_->clear();
@ -557,8 +556,11 @@ Sta::clearNonSdc()
clk_skews_->clear();
// scenes are NOT cleared because they are used to index liberty files.
for (Mode *mode : modes_)
for (Mode *mode : modes_) {
mode->clkNetwork()->clkPinsInvalid();
mode->sim()->clear();
}
search_->clear();
delete graph_;
graph_ = nullptr;