From 41a3d86d8cd8cb65b43f72324454d4b5d5ae32b7 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 27 May 2026 10:50:44 -0700 Subject: [PATCH] Sta::unsetAnnotatedSlew Signed-off-by: James Cherry --- include/sta/Sta.hh | 4 ++++ search/Sta.cc | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index 6bc3c8eb..913608aa 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -899,6 +899,10 @@ public: const MinMaxAll *min_max, const RiseFallBoth *rf, float slew); + void unsetAnnotatedSlew(Vertex *vertex, + const Scene *scene, + const MinMaxAll *min_max, + const RiseFallBoth *rf); void writeSdf(std::string_view filename, const Scene *scene, char divider, diff --git a/search/Sta.cc b/search/Sta.cc index 320e0178..27b2119b 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -3875,7 +3875,6 @@ Sta::setAnnotatedSlew(Vertex *vertex, const RiseFallBoth *rf, float slew) { - ensureGraph(); for (const MinMax *mm : min_max->range()) { DcalcAPIndex ap_index = scene->dcalcAnalysisPtIndex(mm); for (const RiseFall *rf1 : rf->range()) { @@ -3887,6 +3886,24 @@ Sta::setAnnotatedSlew(Vertex *vertex, graph_delay_calc_->delayInvalid(vertex); } +void +Sta::unsetAnnotatedSlew(Vertex *vertex, + const Scene *scene, + const MinMaxAll *min_max, + const RiseFallBoth *rf) +{ + for (const MinMax *mm : min_max->range()) { + DcalcAPIndex ap_index = scene->dcalcAnalysisPtIndex(mm); + for (const RiseFall *rf1 : rf->range()) { + vertex->setSlewAnnotated(false, rf1, ap_index); + } + } + if (vertex->isDriver(network_)) + graph_delay_calc_->delayInvalid(vertex); + else + delaysInvalidFromFanin(vertex); +} + void Sta::writeSdf(std::string_view filename, const Scene *scene,