From aca993e9eee97732fcc7222d64b8e12ed9acd009 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 17 Feb 2026 11:03:05 -0700 Subject: [PATCH] Sta::clearNonSdc clear sim resolves #382 Signed-off-by: James Cherry --- search/SearchPred.cc | 2 +- search/Sta.cc | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/search/SearchPred.cc b/search/SearchPred.cc index e2654efd..d9e829cd 100644 --- a/search/SearchPred.cc +++ b/search/SearchPred.cc @@ -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); } diff --git a/search/Sta.cc b/search/Sta.cc index 2257e95f..450a6130 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -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;