From 5dbc473186c614931d11989a3acaa5e5f481433e Mon Sep 17 00:00:00 2001 From: Deepashree Sengupta Date: Wed, 20 May 2026 16:55:02 -0400 Subject: [PATCH 01/61] fix makeConcreteParasitics leak+testcase (#439) * fix makeConcreteParasitics leak Signed-off-by: dsengupta0628 * simplify test, update the address review comment Signed-off-by: dsengupta0628 * reduce test verbosity Signed-off-by: dsengupta0628 --------- Signed-off-by: dsengupta0628 --- search/Sta.cc | 9 ++++++++- test/make_concrete_parasitics_leak.ok | 0 test/make_concrete_parasitics_leak.tcl | 9 +++++++++ test/regression_vars.tcl | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 test/make_concrete_parasitics_leak.ok create mode 100644 test/make_concrete_parasitics_leak.tcl diff --git a/search/Sta.cc b/search/Sta.cc index bdbf6e93..320e0178 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -4291,8 +4291,15 @@ Parasitics * Sta::makeConcreteParasitics(std::string_view name, std::string_view filename) { + // Free the prior entry to avoid leaking it on overwrite. + std::string key(name); + auto it = parasitics_name_map_.find(key); + if (it != parasitics_name_map_.end()) { + delete it->second; + parasitics_name_map_.erase(it); + } Parasitics *parasitics = new ConcreteParasitics(name, filename, this); - parasitics_name_map_[std::string(name)] = parasitics; + parasitics_name_map_[key] = parasitics; return parasitics; } diff --git a/test/make_concrete_parasitics_leak.ok b/test/make_concrete_parasitics_leak.ok new file mode 100644 index 00000000..e69de29b diff --git a/test/make_concrete_parasitics_leak.tcl b/test/make_concrete_parasitics_leak.tcl new file mode 100644 index 00000000..51629d45 --- /dev/null +++ b/test/make_concrete_parasitics_leak.tcl @@ -0,0 +1,9 @@ +# Sta::makeConcreteParasitics map-overwrite leak repro. +# Run under -fsanitize=address to verify no leak after the fix. +read_liberty asap7_small.lib.gz +read_verilog reg1_asap7.v +link_design top +# 1st read_spef +read_spef -min reg1_asap7.spef +# 2nd read_spef +read_spef -min reg1_asap7.spef diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index b0cab790..ce037eff 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -154,6 +154,7 @@ record_public_tests { liberty_ccsn liberty_float_as_str liberty_latch3 + make_concrete_parasitics_leak package_require path_group_names power_json From 4b4f382506dfd2911f1ad683565d0cbd5006c7b9 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 21 May 2026 19:56:10 -0700 Subject: [PATCH 02/61] tcl 8.6.18 Signed-off-by: James Cherry --- cmake/FindTCL.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/FindTCL.cmake b/cmake/FindTCL.cmake index 7df9b71d..26d6d7ce 100644 --- a/cmake/FindTCL.cmake +++ b/cmake/FindTCL.cmake @@ -34,6 +34,7 @@ if (NOT TCL_LIB_PATHS) if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(TCL_LIB_PATHS #/opt/homebrew/Cellar/tcl-tk/9.0.3/lib + /opt/homebrew/Cellar/tcl-tk@8/8.6.18/lib /opt/homebrew/Cellar/tcl-tk@8/8.6.17/lib /opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib /opt/homebrew/opt/tcl-tk/lib /usr/local/lib) From 224907d153a04bf89781c1058d14c19958415dd1 Mon Sep 17 00:00:00 2001 From: Henner Zeller Date: Mon, 25 May 2026 19:21:05 +0200 Subject: [PATCH 03/61] Explicitly mark dependencies as keep for bracket-headers used. This project uses bracket includes for dependencies that are actually vendored via the MODULE.bazel. So they should use `"zlib.h"`, `"tcl.h"` etc, but here they use ``, `` which makes them look like system headers. They are meant to be using the vendored headers, to explicitly tell build_cleaner (`bant`) that the dependencies should be kept. (ideally, we fix the includes, but since this is a fork, this might be harder to maintain). Also keeps `@openmp` for now, but see #364 if this is actually needed. Signed-off-by: Henner Zeller --- BUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BUILD b/BUILD index 1c493f06..5d867b50 100644 --- a/BUILD +++ b/BUILD @@ -396,11 +396,11 @@ cc_library( visibility = ["//:__subpackages__"], deps = [ "@cudd", - "@eigen", - "@openmp", + "@eigen", # keep. Is used, but with <>-includes + "@openmp", # keep. Is needed ? Nobody includes omp.h "@rules_flex//flex:current_flex_toolchain", - "@tcl_lang//:tcl", - "@zlib", + "@tcl_lang//:tcl", # keep. Is used, but with <>-includes + "@zlib", # keep. Is used, but with <>-includes ], ) From de65ba62b42101787121b61118728f3cfaf10520 Mon Sep 17 00:00:00 2001 From: Masanori Ogino <167209+omasanori@users.noreply.github.com> Date: Wed, 27 May 2026 03:43:49 +0900 Subject: [PATCH 04/61] Update CUDD upstream URL in README (#440) Signed-off-by: Masanori Ogino --- README.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index e30b1051..ea9262cf 100644 --- a/README.md +++ b/README.md @@ -125,18 +125,16 @@ if { ![catch {package require tclreadline}] } { The Zlib library is an optional. If CMake finds libz, OpenSTA can read Liberty, Verilog, SDF, SPF, and SPEF files compressed with gzip. -CUDD is a binary decision diageram (BDD) package that is used to -improve conditional timing arc handling, constant propagation, power -activity propagation and spice netlist generation. +[CUDD](https://github.com/cuddorg/cudd) is a binary decision diagram (BDD) +package that is used to improve conditional timing arc handling, constant +propagation, power activity propagation and spice netlist generation. -CUDD is available -[here](https://github.com/davidkebo/cudd/blob/main/cudd_versions/cudd-3.0.0.tar.gz). - -Unpack and build CUDD. +Download and build CUDD: ``` -tar xvfz cudd-3.0.0.tar.gz -cd cudd-3.0.0 +git clone https://github.com/cuddorg/cudd.git +cd cudd +git checkout 3.0.0 ./configure make ``` From 8f5b4814954c76f944fc207dfc3cedc0e51a83e3 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 26 May 2026 19:17:29 -0700 Subject: [PATCH 05/61] ReportPath set field order/user defined field Signed-off-by: James Cherry --- search/ReportPath.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/search/ReportPath.cc b/search/ReportPath.cc index 4b99f4a9..1bfcdfc6 100644 --- a/search/ReportPath.cc +++ b/search/ReportPath.cc @@ -3252,9 +3252,9 @@ ReportPath::reportLine(std::string_view what, reportFieldBlank(field, line); } else if (field == field_case_) - line += line_case; + reportField(line_case, field, line); else if (field->getValue()) - line += field->value(path, this); + reportField(field->value(path, this), field, line); first_field = false; } From 38442a61a757d587a8b478c149c56a2e47050dad Mon Sep 17 00:00:00 2001 From: Vitor Bandeira Date: Wed, 27 May 2026 14:34:50 -0300 Subject: [PATCH 06/61] gha: use commit sha instead of version/tag Using commit sha helps prevent chain attacks that have become common. Signed-off-by: Vitor Bandeira --- .github/workflows/buildifier.yaml | 4 ++-- .github/workflows/ci.yml | 6 +++--- .github/workflows/github-actions-are-differences-found.yml | 2 +- .github/workflows/on-push.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/buildifier.yaml b/.github/workflows/buildifier.yaml index 1f00a3a8..cbadadf6 100644 --- a/.github/workflows/buildifier.yaml +++ b/.github/workflows/buildifier.yaml @@ -25,11 +25,11 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Cache buildifier id: cache-buildifier - uses: actions/cache@v5 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ./buildifier key: ${{ runner.os }}-buildifier-${{ env.BUILDIFIER_VERSION }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62c82e2b..51ea44a6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: submodules: true @@ -48,7 +48,7 @@ jobs: ./regression - name: Upload Artifacts - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: ${{ !cancelled() }} with: name: artifact @@ -57,7 +57,7 @@ jobs: retention-days: 1 - name: Upload Test Result - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: ${{ !cancelled() }} with: name: result diff --git a/.github/workflows/github-actions-are-differences-found.yml b/.github/workflows/github-actions-are-differences-found.yml index 45436800..19b8b3ba 100644 --- a/.github/workflows/github-actions-are-differences-found.yml +++ b/.github/workflows/github-actions-are-differences-found.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ vars.USE_SELF_HOSTED == 'true' && 'self-hosted' || 'ubuntu-latest' }} steps: - name: Check out repository code - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Check ok files diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml index 2452422a..1d1c064f 100644 --- a/.github/workflows/on-push.yml +++ b/.github/workflows/on-push.yml @@ -11,6 +11,6 @@ jobs: runs-on: ${{ vars.USE_SELF_HOSTED == 'true' && 'self-hosted' || 'ubuntu-latest' }} steps: - name: Check out repository code - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: run security_scan_on_push uses: The-OpenROAD-Project/actions/security_scan_on_push@main From ffd54f38b11323d7a90473889f2786150749fb5b Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 27 May 2026 10:44:55 -0700 Subject: [PATCH 07/61] rm hashPtr Signed-off-by: James Cherry --- include/sta/Hash.hh | 9 --------- 1 file changed, 9 deletions(-) diff --git a/include/sta/Hash.hh b/include/sta/Hash.hh index 5cfd423d..579b31ca 100644 --- a/include/sta/Hash.hh +++ b/include/sta/Hash.hh @@ -25,7 +25,6 @@ #pragma once #include -#include #include namespace sta { @@ -59,12 +58,4 @@ nextMersenne(size_t n) size_t hashString(std::string_view str); -// Pointer hashing is strongly discouraged because it causes results to change -// from run to run. Use Network::id functions instead. -#if __WORDSIZE == 64 - #define hashPtr(ptr) (reinterpret_cast(ptr) >> 3) -#else - #define hashPtr(ptr) (reinterpret_cast(ptr) >> 2) -#endif - } // namespace sta From 41a3d86d8cd8cb65b43f72324454d4b5d5ae32b7 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 27 May 2026 10:50:44 -0700 Subject: [PATCH 08/61] 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, From 0c243b564b6feb002f0ab8f15cb205c43e6219eb Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 28 May 2026 09:31:24 -0700 Subject: [PATCH 09/61] Dockerfile.ubuntu24.04 Signed-off-by: James Cherry --- Dockerfile.ubuntu24.04 | 46 ++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.ubuntu24.04 diff --git a/Dockerfile.ubuntu24.04 b/Dockerfile.ubuntu24.04 new file mode 100644 index 00000000..d08688f5 --- /dev/null +++ b/Dockerfile.ubuntu24.04 @@ -0,0 +1,46 @@ +FROM ubuntu:24.04 +LABEL author="James Cherry" +LABEL maintainer="James Cherry " + +# Install basics +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && \ + apt-get install -y \ + git \ + wget \ + cmake \ + gcc \ + gdb \ + tcl-dev \ + tcl-tclreadline \ + swig \ + bison \ + flex \ + automake \ + autotools-dev \ + libeigen3-dev \ + libfmt-dev + +# Download CUDD +RUN wget https://raw.githubusercontent.com/davidkebo/cudd/main/cudd_versions/cudd-3.0.0.tar.gz && \ + tar -xvf cudd-3.0.0.tar.gz && \ + rm cudd-3.0.0.tar.gz + +# Build CUDD +RUN cd cudd-3.0.0 && \ + mkdir ../cudd && \ + ./configure && \ + make -j`nproc` + +# Copy files and install OpenSTA +RUN mkdir OpenSTA +COPY . OpenSTA +RUN cd OpenSTA && \ + rm -rf build && \ + mkdir build && \ + cd build && \ + cmake -DCUDD_DIR=../cudd-3.0.0 .. && \ + make -j`nproc` + +# Run sta on entry +ENTRYPOINT ["OpenSTA/build/sta"] diff --git a/README.md b/README.md index ea9262cf..b1eb59bc 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ following command builds a Docker image. ``` cd OpenSTA -docker build --file Dockerfile.ubuntu22.04 --tag opensta_ubuntu22.04 . +docker build --file Dockerfile.ubuntu24.04 --tag opensta_ubuntu24.04 . or docker build --file Dockerfile.centos7 --tag opensta_centos7 . ``` From 8f84d721f3fd7148f1bb9b20b94ef40ee90dda95 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 28 May 2026 12:43:10 -0700 Subject: [PATCH 10/61] report_tag_arrivals Signed-off-by: James Cherry --- include/sta/Search.hh | 3 ++- search/Search.cc | 7 ++++--- search/Search.i | 5 +++-- search/Search.tcl | 15 ++++++++++++--- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 841dbe6b..4dc40efe 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -353,7 +353,8 @@ public: TagGroup *tagGroup(const Vertex *vertex) const; TagGroup *tagGroup(TagGroupIndex index) const; void reportArrivals(Vertex *vertex, - bool report_tag_index) const; + bool report_tag_index, + int digits) const; Slack wnsSlack(Vertex *vertex, PathAPIndex path_ap_index); void levelsChangedBefore(); diff --git a/search/Search.cc b/search/Search.cc index ee735a0c..1ab8c639 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -2754,7 +2754,8 @@ ReportPathLess::operator()(const Path *path1, void Search::reportArrivals(Vertex *vertex, - bool report_tag_index) const + bool report_tag_index, + int digits) const { report_->report("Vertex {}", vertex->to_string(this)); TagGroup *tag_group = tagGroup(vertex); @@ -2771,7 +2772,6 @@ Search::reportArrivals(Vertex *vertex, for (const Path *path : paths) { const Tag *tag = path->tag(this); const RiseFall *rf = tag->transition(); - std::string req = delayAsString(path->required(), this); bool report_prev = false; std::string prev_str; if (report_prev) { @@ -2791,7 +2791,8 @@ Search::reportArrivals(Vertex *vertex, } report_->report(" {} {} {} / {} {}{}", rf->shortName(), path->minMax(this)->to_string(), - delayAsString(path->arrival(), this), req, + delayAsString(path->arrival(), digits, this), + delayAsString(path->required(), digits, this), tag->to_string(report_tag_index, false, this), prev_str); } } diff --git a/search/Search.i b/search/Search.i index dbf3dc0f..6f0376de 100644 --- a/search/Search.i +++ b/search/Search.i @@ -269,9 +269,10 @@ report_tag_groups() void report_tag_arrivals_cmd(Vertex *vertex, - bool report_tag_index) + bool report_tag_index, + int digits) { - Sta::sta()->search()->reportArrivals(vertex, report_tag_index); + Sta::sta()->search()->reportArrivals(vertex, report_tag_index, digits); } void diff --git a/search/Search.tcl b/search/Search.tcl index 6d3c7223..066b922b 100644 --- a/search/Search.tcl +++ b/search/Search.tcl @@ -805,10 +805,19 @@ proc report_slack { args } { ################################################################ # Internal debugging command. -proc report_tag_arrivals { pin } { - set pin [get_port_pin_error "pin" $pin] +proc report_tag_arrivals { args } { + global sta_report_default_digits + + parse_key_args "report_tag_arrivals" args keys {-digits} flags {} + set pin [get_port_pin_error "pin" [lindex $args 0]] + if [info exists keys(-digits)] { + set digits $keys(-digits) + check_positive_integer "-digits" $digits + } else { + set digits $sta_report_default_digits + } foreach vertex [$pin vertices] { - report_tag_arrivals_cmd $vertex 1 + report_tag_arrivals_cmd $vertex 1 $digits } } From 4239842d34903532534eff98913560508a89a9da Mon Sep 17 00:00:00 2001 From: James Cherry Date: Fri, 29 May 2026 09:49:12 -0700 Subject: [PATCH 11/61] FindTCL.cmake Signed-off-by: James Cherry --- cmake/FindTCL.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/FindTCL.cmake b/cmake/FindTCL.cmake index 26d6d7ce..a5978b8a 100644 --- a/cmake/FindTCL.cmake +++ b/cmake/FindTCL.cmake @@ -29,14 +29,14 @@ set(TCL_POSSIBLE_NAMES tcl85 tcl8.5 ) -# tcl lib path guesses. +# TCL lib path guesses. if (NOT TCL_LIB_PATHS) if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") + file(GLOB tcl_homebrew_libs + /opt/homebrew/Cellar/tcl-tk@8/*/lib + ) set(TCL_LIB_PATHS - #/opt/homebrew/Cellar/tcl-tk/9.0.3/lib - /opt/homebrew/Cellar/tcl-tk@8/8.6.18/lib - /opt/homebrew/Cellar/tcl-tk@8/8.6.17/lib - /opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib + ${tcl_homebrew_libs} /opt/homebrew/opt/tcl-tk/lib /usr/local/lib) set(TCL_NO_DEFAULT_PATH TRUE) elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux") From 13cd475ffa9a03f8a476b89035970226bc5b34ea Mon Sep 17 00:00:00 2001 From: James Cherry Date: Fri, 29 May 2026 16:32:47 -0700 Subject: [PATCH 12/61] make_net/make_port bus bit without bus dcl pr441 Signed-off-by: James Cherry --- include/sta/Network.hh | 4 ++-- include/sta/ParseBus.hh | 3 ++- include/sta/SdcNetwork.hh | 8 ++++++++ liberty/LibertyReader.cc | 3 ++- network/ParseBus.cc | 9 +++++---- network/SdcNetwork.cc | 31 +++++++++++++++++++++++++++---- search/Sta.cc | 6 ++++-- 7 files changed, 50 insertions(+), 14 deletions(-) diff --git a/include/sta/Network.hh b/include/sta/Network.hh index 70580e90..9c45f095 100644 --- a/include/sta/Network.hh +++ b/include/sta/Network.hh @@ -502,6 +502,8 @@ class NetworkEdit : public Network public: NetworkEdit() = default; bool isEditable() const override { return true; } + virtual Port *makePort(Cell *cell, + std::string_view name) = 0; virtual Instance *makeInstance(LibertyCell *cell, std::string_view name, Instance *parent) = 0; @@ -556,8 +558,6 @@ public: virtual void setAttribute(Instance *instance, std::string_view key, std::string_view value) = 0; - virtual Port *makePort(Cell *cell, - std::string_view name) = 0; virtual Port *makeBusPort(Cell *cell, std::string_view name, int from_index, diff --git a/include/sta/ParseBus.hh b/include/sta/ParseBus.hh index e6236fa8..aa0b67d3 100644 --- a/include/sta/ParseBus.hh +++ b/include/sta/ParseBus.hh @@ -94,11 +94,12 @@ parseBusName(std::string_view name, int &to, bool &subscript_wild); -// Insert escapes before ch1 and ch2 in token. +// Insert escapes before ch1, ch2 or ch3 in token. std::string escapeChars(std::string_view token, char ch1, char ch2, + char ch3, char escape); } // namespace sta diff --git a/include/sta/SdcNetwork.hh b/include/sta/SdcNetwork.hh index ea4c8304..52192abd 100644 --- a/include/sta/SdcNetwork.hh +++ b/include/sta/SdcNetwork.hh @@ -92,6 +92,8 @@ public: int index) const override; PortMemberIterator *memberIterator(const Port *port) const override; bool hasMembers(const Port *port) const override; + Port *makePort(Cell *cell, + std::string_view name) override; ObjectId id(const Instance *instance) const override; std::string getAttribute(const Instance *inst, @@ -146,6 +148,7 @@ public: char pathEscape() const override; void setPathEscape(char escape) override; + // NetworkEdit bool isEditable() const override; LibertyLibrary *makeLibertyLibrary(std::string_view name, std::string_view filename) override; @@ -202,6 +205,8 @@ public: const PatternMatch *pattern) const override; std::string name(const Port *port) const override; std::string busName(const Port *port) const override; + Port *makePort(Cell *cell, + std::string_view name) override; std::string name(const Instance *instance) const override; std::string pathName(const Instance *instance) const override; @@ -289,5 +294,8 @@ escapeDividers(std::string_view name, std::string escapeBrackets(std::string_view name, const Network *network); +std::string +escapeDividerBrackets(std::string_view name, + const Network *network); } // namespace sta diff --git a/liberty/LibertyReader.cc b/liberty/LibertyReader.cc index 56d64408..09733ca8 100644 --- a/liberty/LibertyReader.cc +++ b/liberty/LibertyReader.cc @@ -3081,7 +3081,8 @@ libertyReaderFindPort(const LibertyCell *cell, char brkt_right = library->busBrktRight(); const char escape = '\\'; // Pins at top level with bus names have escaped brackets. - std::string escaped_port_name = escapeChars(port_name, brkt_left, brkt_right, escape); + std::string escaped_port_name = escapeChars(port_name, brkt_left, brkt_right, + '\0', escape); port = cell->findLibertyPort(escaped_port_name); } return port; diff --git a/network/ParseBus.cc b/network/ParseBus.cc index 8205dead..11c66138 100644 --- a/network/ParseBus.cc +++ b/network/ParseBus.cc @@ -163,9 +163,10 @@ parseBusName(std::string_view name, std::string escapeChars(std::string_view token, - const char ch1, - const char ch2, - const char escape) + char ch1, + char ch2, + char ch3, + char escape) { std::string escaped; escaped.reserve(token.size()); @@ -180,7 +181,7 @@ escapeChars(std::string_view token, else escaped += ch; } - else if (ch == ch1 || ch == ch2) { + else if (ch == ch1 || ch == ch2 || ch == ch3) { escaped += escape; escaped += ch; } diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index 0542f95a..50bc533d 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -330,6 +330,13 @@ NetworkNameAdapter::memberIterator(const Port *port) const return network_->memberIterator(port); } +Port * +NetworkNameAdapter::makePort(Cell *cell, + std::string_view name) +{ + return network_edit_->makePort(cell, name); +} + //////////////////////////////////////////////////////////////// ObjectId @@ -736,6 +743,14 @@ SdcNetwork::busName(const Port *port) const return staToSdc(network_->busName(port)); } +Port * +SdcNetwork::makePort(Cell *cell, + std::string_view name) +{ + std::string escaped_name = escapeDividerBrackets(name, network_edit_); + return network_edit_->makePort(cell, escaped_name); +} + std::string SdcNetwork::name(const Instance *instance) const { @@ -1073,7 +1088,7 @@ SdcNetwork::makeInstance(LibertyCell *cell, std::string_view name, Instance *parent) { - std::string escaped_name = escapeDividers(std::string(name), this); + std::string escaped_name = escapeDividerBrackets(name, this); return network_edit_->makeInstance(cell, escaped_name, parent); } @@ -1081,7 +1096,7 @@ Net * SdcNetwork::makeNet(std::string_view name, Instance *parent) { - std::string escaped_name = escapeDividers(std::string(name), this); + std::string escaped_name = escapeDividerBrackets(name, this); return network_edit_->makeNet(escaped_name, parent); } @@ -1254,11 +1269,19 @@ SdcNetwork::visitMatches(const Instance *parent, //////////////////////////////////////////////////////////////// +std::string +escapeDividerBrackets(std::string_view name, + const Network *network) +{ + return escapeChars(name, network->pathDivider(), '[', ']', + network->pathEscape()); +} + std::string escapeDividers(std::string_view name, const Network *network) { - return escapeChars(name, network->pathDivider(), '\0', + return escapeChars(name, network->pathDivider(), '\0', '\0', network->pathEscape()); } @@ -1266,7 +1289,7 @@ std::string escapeBrackets(std::string_view name, const Network *network) { - return escapeChars(name, '[', ']', network->pathEscape()); + return escapeChars(name, '[', ']', '\0', network->pathEscape()); } } // namespace sta diff --git a/search/Sta.cc b/search/Sta.cc index 27b2119b..ba98b3f6 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -4412,7 +4412,8 @@ Sta::makeNet(const char *name, Instance *parent) { NetworkEdit *network = networkCmdEdit(); - Net *net = network->makeNet(name, parent); + std::string escaped = escapeBrackets(name, network); + Net *net = network->makeNet(escaped, parent); // Sta notification unnecessary. return net; } @@ -4460,8 +4461,9 @@ Sta::makePortPin(const char *port_name, ensureLinked(); NetworkReader *network = dynamic_cast(network_); Instance *top_inst = network->topInstance(); + std::string escaped = escapeBrackets(port_name, network); Cell *top_cell = network->cell(top_inst); - Port *port = network->makePort(top_cell, port_name); + Port *port = network->makePort(top_cell, escaped); network->setDirection(port, dir); Pin *pin = network->makePin(top_inst, port, nullptr); makePortPinAfter(pin); From 452f0bf772eda0f4a983d8154e28c921274fa252 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Tue, 2 Jun 2026 15:21:11 +0000 Subject: [PATCH 13/61] enforce sta assump by error instead of seg fault Signed-off-by: dsengupta0628 --- include/sta/Search.hh | 13 +++++++++++++ search/Search.cc | 16 ++++++++++++++++ search/Search.i | 28 ++++++++++++++++++++++++++++ test/stale_path_uaf.ok | 2 ++ test/stale_path_uaf.tcl | 21 +++++++++++++++++++++ 5 files changed, 80 insertions(+) create mode 100644 test/stale_path_uaf.ok create mode 100644 test/stale_path_uaf.tcl diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 841dbe6b..13352846 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -179,6 +179,16 @@ public: void deleteFilter(); void deleteFilteredArrivals(); + // Stale path-handle guard (OpenROAD #10210). PathEnds are freed when path + // groups are deleted, so a handle held across a search update dangles. These + // track the currently-valid PathEnds so the Tcl accessors report a clean + // error instead of crashing (best-effort: a reused address is not detected). + // The Tcl-only guard does not cover C++ callers holding a Path*/PathEnd* + // directly; the contract is that a path is valid only until the next search + // update, so copy stable fields out first (cf. the rsz Path::prevArc() fix). + void registerValidPathEnds(const PathEndSeq &ends); + bool pathEndValid(const PathEnd *path_end) const; + VertexSet &endpoints(); void endpointsInvalid(); @@ -671,6 +681,9 @@ protected: bool postpone_latch_outputs_{false}; std::vector enum_paths_; + // Currently-valid PathEnds returned to external callers (see guard methods). + std::unordered_set valid_path_ends_; + VisitPathEnds *visit_path_ends_; GatedClk *gated_clk_; CheckCrpr *check_crpr_; diff --git a/search/Search.cc b/search/Search.cc index ee735a0c..cd5e0d70 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -334,10 +334,26 @@ Search::clear() void Search::deletePathGroups() { + // PathEnds (including any handed to external callers) are destroyed here, so + // clear the stale-handle guard set at this free site. + valid_path_ends_.clear(); for (Mode *mode : modes_) mode->deletePathGroups(); } +// Stale path-handle guard. +void +Search::registerValidPathEnds(const PathEndSeq &ends) +{ + valid_path_ends_.insert(ends.begin(), ends.end()); +} + +bool +Search::pathEndValid(const PathEnd *path_end) const +{ + return valid_path_ends_.contains(path_end); +} + bool Search::crprPathPruningEnabled() const { diff --git a/search/Search.i b/search/Search.i index 538b320b..fd4ba946 100644 --- a/search/Search.i +++ b/search/Search.i @@ -44,6 +44,31 @@ using namespace sta; %} +// Stale path-handle guard. One typemap validates every +// PathEnd* crossing the Tcl boundary -- all %extend accessors (the self arg), +// report_path_end, and any future ones. Declared before the PathEnd class so it +// applies to the %extend methods below. +%typemap(check) PathEnd * { + if (!Sta::sta()->search()->pathEndValid($1)) { + // A check typemap runs outside the global %exception try/catch + // (tcl/Exception.i), so catch report_'s ExceptionMsg locally and convert it + // to a Tcl error the same way -- giving the usual "Error: ..." output. + try { + Sta::sta()->report()->error(2310, + "path end used after a timing search update;" + " a path object is only valid until the next" + " search update."); + } + catch (ExceptionMsg &excp) { + if (!excp.suppressed()) { + Tcl_ResetResult(interp); + Tcl_AppendResult(interp, "Error: ", excp.what(), nullptr); + } + SWIG_fail; + } + } +} + //////////////////////////////////////////////////////////////// // // Empty class definitions to make swig happy. @@ -383,6 +408,9 @@ find_path_ends(ExceptionFrom *from, setup, hold, recovery, removal, clk_gating_setup, clk_gating_hold); + // Register for the Tcl stale-handle guard. Tcl-only: + // internal C++ Sta::findPathEnds callers do not register and pay no cost. + sta->search()->registerValidPathEnds(ends); return ends; } diff --git a/test/stale_path_uaf.ok b/test/stale_path_uaf.ok new file mode 100644 index 00000000..2c6296da --- /dev/null +++ b/test/stale_path_uaf.ok @@ -0,0 +1,2 @@ +Error: 2310 path end used after a timing search update; a path object is only valid until the next search update. +Error: 2310 path end used after a timing search update; a path object is only valid until the next search update. diff --git a/test/stale_path_uaf.tcl b/test/stale_path_uaf.tcl new file mode 100644 index 00000000..6fa9083a --- /dev/null +++ b/test/stale_path_uaf.tcl @@ -0,0 +1,21 @@ +# Guard for stale path handles across a search update (OpenROAD #10210). +# Holding a PathEnd past the next query must error cleanly, not crash. +read_liberty ../examples/nangate45_typ.lib.gz +read_verilog ../examples/example1.v +link_design top +create_clock -name clk -period 10 {clk1 clk2 clk3} +set_input_delay -clock clk 0 {in1 in2} + +# Second query = find_timing_paths. +set ends [find_timing_paths -through u1/Z] +set pe [lindex $ends 0] +set junk [find_timing_paths -through u2/ZN] +catch { puts "stale : slack=[$pe slack] arrival=[[$pe path] arrival]" } msg +puts $msg + +# Second query = report_checks. +set ends [find_timing_paths -through u1/Z] +set pe [lindex $ends 0] +report_checks -path_delay max +catch { puts "stale : slack=[$pe slack] arrival=[[$pe path] arrival]" } msg +puts $msg From b0869d521cfdd84761a398515888f7064fab65b8 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 4 Jun 2026 08:54:28 -0700 Subject: [PATCH 14/61] comment Signed-off-by: James Cherry --- verilog/VerilogParse.yy | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/verilog/VerilogParse.yy b/verilog/VerilogParse.yy index 3103c3be..c19c2ea8 100644 --- a/verilog/VerilogParse.yy +++ b/verilog/VerilogParse.yy @@ -242,13 +242,8 @@ stmt_seq: continuous_assign ; -/* specify blocks are used by some comercial tools to convey macro timing - * and other metadata. - * Their presence is not forbidden in structural verilog, this is a placeholder - * that just ignores them and allows verilog processing to proceed - * <> if someone in the future wants implement support for timing info - * via specify blocks, implement proper parsing here - */ +// Specify blocks are used by some comercial tools to convey macro timing +// and other metadata. specify_block: SPECIFY specify_stmts ENDSPECIFY { $$ = nullptr; } From ffe126af2af0536bdb2715f196387e6de6f272e5 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 6 Jun 2026 11:55:51 -0700 Subject: [PATCH 15/61] PathGroups::inPathGroupNamed Signed-off-by: James Cherry --- include/sta/PathGroup.hh | 5 +++-- search/PathGroup.cc | 36 +++++++++++++++++------------------- search/Sta.cc | 14 +++++--------- 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/include/sta/PathGroup.hh b/include/sta/PathGroup.hh index df180016..46b4c9b1 100644 --- a/include/sta/PathGroup.hh +++ b/include/sta/PathGroup.hh @@ -146,8 +146,9 @@ public: PathGroup *findPathGroup(const Clock *clock, const MinMax *min_max) const; PathGroupSeq pathGroups(const PathEnd *path_end) const; - static StringSeq pathGroupNames(const PathEnd *path_end, - const StaState *sta); + static bool inPathGroupNamed(const PathEnd *path_end, + std::string_view path_group_name, + const StaState *sta); static std::string_view asyncPathGroupName() { return async_group_name_; } static std::string_view pathDelayGroupName() { return path_delay_group_name_; } static std::string_view gatedClkGroupName() { return gated_clk_group_name_; } diff --git a/search/PathGroup.cc b/search/PathGroup.cc index 725b52c7..ee10bd6e 100644 --- a/search/PathGroup.cc +++ b/search/PathGroup.cc @@ -474,23 +474,23 @@ PathGroups::pathGroups(const PathEnd *path_end) const } // Mirrors PathGroups::pathGroup. -StringSeq -PathGroups::pathGroupNames(const PathEnd *path_end, - const StaState *sta) +bool +PathGroups::inPathGroupNamed(const PathEnd *path_end, + std::string_view path_group_name, + const StaState *sta) { - StringSeq group_names; - std::string group_name; const Search *search = sta->search(); ExceptionPathSeq group_paths = search->groupPathsTo(path_end); if (path_end->isUnconstrained()) - group_name = unconstrained_group_name_; + return path_group_name == unconstrained_group_name_; else if (!group_paths.empty()) { // GroupPaths have precedence. for (ExceptionPath *group_path : group_paths) { - if (group_path->isDefault()) - group_names.emplace_back(path_delay_group_name_); - else - group_names.emplace_back(group_path->name()); + std::string_view group_name = group_path->isDefault() + ? path_delay_group_name_ + : group_path->name(); + if (path_group_name == group_name) + return true;; } } else if (path_end->isCheck() || path_end->isLatchCheck()) { @@ -498,18 +498,18 @@ PathGroups::pathGroupNames(const PathEnd *path_end, const Clock *tgt_clk = path_end->targetClk(sta); if (check_role == TimingRole::removal() || check_role == TimingRole::recovery()) - group_name = async_group_name_; + return path_group_name == async_group_name_; else - group_name = tgt_clk->name(); + return path_group_name == tgt_clk->name(); } else if (path_end->isOutputDelay() || path_end->isDataCheck()) { const Clock *tgt_clk = path_end->targetClk(sta); if (tgt_clk) - group_name = tgt_clk->name(); + return path_group_name == tgt_clk->name(); } else if (path_end->isGatedClock()) - group_name = gated_clk_group_name_; + return path_group_name == gated_clk_group_name_; else if (path_end->isPathDelay()) { // Path delays that end at timing checks are part of the target clk group // unless -ignore_clock_latency is true. @@ -517,13 +517,11 @@ PathGroups::pathGroupNames(const PathEnd *path_end, const Clock *tgt_clk = path_end->targetClk(sta); if (tgt_clk && !path_delay->ignoreClkLatency()) - group_name = tgt_clk->name(); + return path_group_name == tgt_clk->name(); else - group_name = path_delay_group_name_; + return path_group_name == path_delay_group_name_; } - if (!group_name.empty()) - group_names.push_back(group_name); - return group_names; + return false; } GroupPath * diff --git a/search/Sta.cc b/search/Sta.cc index ba98b3f6..9599d824 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -3279,15 +3279,11 @@ EndpointPathEndVisitor::copy() const void EndpointPathEndVisitor::visit(PathEnd *path_end) { - if (path_end->minMax(sta_) == min_max_) { - StringSeq group_names = PathGroups::pathGroupNames(path_end, sta_); - for (std::string &group_name : group_names) { - if (group_name == path_group_name_) { - Slack end_slack = path_end->slack(sta_); - if (delayLess(end_slack, slack_, sta_)) - slack_ = end_slack; - } - } + if (path_end->minMax(sta_) == min_max_ + && PathGroups::inPathGroupNamed(path_end, path_group_name_, sta_)) { + Slack end_slack = path_end->slack(sta_); + if (delayLess(end_slack, slack_, sta_)) + slack_ = end_slack; } } From b3458485ba97a79b58e907b19837953b4f35d9e0 Mon Sep 17 00:00:00 2001 From: Drew Lewis Date: Sat, 6 Jun 2026 19:45:46 -0400 Subject: [PATCH 16/61] Dont spin main for queue (#443) * Use DynamicLatch in DispatchQueue to avoid main thread spinning Replace the busy-yielding pending_task_count_ loop in DispatchQueue::finishTasks with a blocking DynamicLatch. This avoids having the main thread consume CPU cycles while waiting for dispatched tasks to complete. The DynamicLatch implementation uses C++20 std::atomic::wait/notify_all for efficient blocking and wakeup, with proper release-acquire semantics to ensure task results are visible to the waiting thread. * Reformat DynamicLatch to match DispatchQueue style * Update attribution headers in DispatchQueue files to note modifications --- include/sta/DispatchQueue.hh | 54 +++++++++++++++++++++++++++++++++--- util/DispatchQueue.cc | 20 ++++++------- 2 files changed, 60 insertions(+), 14 deletions(-) diff --git a/include/sta/DispatchQueue.hh b/include/sta/DispatchQueue.hh index ceda2e78..e30f9d70 100644 --- a/include/sta/DispatchQueue.hh +++ b/include/sta/DispatchQueue.hh @@ -1,11 +1,14 @@ -// Author Phillip Johnston +// Original Author: Phillip Johnston // Licensed under CC0 1.0 Universal -// https://github.com/embeddedartistry/embedded-resources/blob/master/examples/cpp/dispatch.cpp -// https://embeddedartistry.com/blog/2017/2/1/dispatch-queues?rq=dispatch +// Original source: https://github.com/embeddedartistry/embedded-resources/blob/master/examples/cpp/dispatch.cpp +// Original article: https://embeddedartistry.com/blog/2017/2/1/dispatch-queues?rq=dispatch +// +// Modified for OpenSTA to use C++20 non-spinning DynamicLatch for synchronization. #pragma once #include +#include #include #include #include @@ -16,6 +19,49 @@ namespace sta { +class DynamicLatch +{ +public: + explicit DynamicLatch(std::ptrdiff_t initial_count = 0) : + count_(initial_count) + { + } + + // Delete copy/move constructors to prevent accidental slicing/copying of atomics + DynamicLatch(const DynamicLatch&) = delete; + DynamicLatch& operator=(const DynamicLatch&) = delete; + + // Increases the latch count (used when a new task is dispatched) + void + countUp() + { + count_.fetch_add(1, std::memory_order_release); + } + + // Decreases the latch count and wakes waiting threads if it hits zero + void + countDown(std::ptrdiff_t n = 1) + { + if (count_.fetch_sub(n, std::memory_order_release) == n) { + count_.notify_all(); + } + } + + // Blocks until the count reaches zero + void + wait() const + { + std::ptrdiff_t current = count_.load(std::memory_order_acquire); + while (current != 0) { + count_.wait(current, std::memory_order_acquire); + current = count_.load(std::memory_order_acquire); + } + } + +private: + mutable std::atomic count_{0}; +}; + class DispatchQueue { using fp_t = std::function; @@ -45,7 +91,7 @@ private: std::vector threads_; std::queue q_; std::condition_variable cv_; - std::atomic pending_task_count_; + DynamicLatch pending_task_count_latch_; bool quit_ = false; }; diff --git a/util/DispatchQueue.cc b/util/DispatchQueue.cc index 5347a07a..c1cd11f7 100644 --- a/util/DispatchQueue.cc +++ b/util/DispatchQueue.cc @@ -1,15 +1,16 @@ -// Author Phillip Johnston +// Original Author: Phillip Johnston // Licensed under CC0 1.0 Universal -// https://github.com/embeddedartistry/embedded-resources/blob/master/examples/cpp/dispatch.cpp -// https://embeddedartistry.com/blog/2017/2/1/dispatch-queues?rq=dispatch +// Original source: https://github.com/embeddedartistry/embedded-resources/blob/master/examples/cpp/dispatch.cpp +// Original article: https://embeddedartistry.com/blog/2017/2/1/dispatch-queues?rq=dispatch +// +// Modified for OpenSTA to use C++20 non-spinning DynamicLatch for synchronization. #include "DispatchQueue.hh" namespace sta { DispatchQueue::DispatchQueue(size_t thread_count) : - threads_(thread_count), - pending_task_count_(0) + threads_(thread_count) { for(size_t i = 0; i < thread_count; i++) threads_[i] = std::thread(&DispatchQueue::dispatch_thread_handler, this, i); @@ -58,8 +59,7 @@ DispatchQueue::getThreadCount() const void DispatchQueue::finishTasks() { - while (pending_task_count_.load(std::memory_order_acquire) != 0) - std::this_thread::yield(); + pending_task_count_latch_.wait(); } void @@ -67,7 +67,7 @@ DispatchQueue::dispatch(const fp_t& op) { std::unique_lock lock(lock_); q_.push(op); - pending_task_count_++; + pending_task_count_latch_.countUp(); // Manual unlocking is done before notifying, to avoid waking up // the waiting thread only to block again (see notify_one for details) @@ -80,7 +80,7 @@ DispatchQueue::dispatch(fp_t&& op) { std::unique_lock lock(lock_); q_.push(std::move(op)); - pending_task_count_++; + pending_task_count_latch_.countUp(); // Manual unlocking is done before notifying, to avoid waking up // the waiting thread only to block again (see notify_one for details) @@ -106,7 +106,7 @@ DispatchQueue::dispatch_thread_handler(size_t i) op(i); - pending_task_count_--; + pending_task_count_latch_.countDown(); lock.lock(); } } while (!quit_); From 014678a4f832aa2e1140fbaabe79234586eaf65e Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 6 Jun 2026 20:12:33 -0700 Subject: [PATCH 17/61] cursor Signed-off-by: James Cherry --- .cursor/rules/cpp-coding-standards.mdc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.cursor/rules/cpp-coding-standards.mdc b/.cursor/rules/cpp-coding-standards.mdc index 538991fb..fc06afdf 100644 --- a/.cursor/rules/cpp-coding-standards.mdc +++ b/.cursor/rules/cpp-coding-standards.mdc @@ -1,15 +1,22 @@ --- description: C++ coding standards and formatting for OpenSTA globs: ["**/*.cc", "**/*.hh", "**/*.h"] -alwaysApply: false +alwaysApply: true --- # C++ Coding Standards +## File-internal helpers (translation-unit local) + +- For helpers used only in one `.cc` file, put them in the **same namespace** as the rest of the implementation (e.g. `namespace sta { ... }`). +- Mark them **`static`** at namespace scope so they have internal linkage. +- **Do not** wrap them in an **anonymous namespace** in this project (no `namespace { ... }` file-static helpers). The user preference is `static` inside the real namespace, not a nested anonymous namespace inside `sta` or at file scope before `sta`. + ## Line Width - **Keep lines under 90 characters** to match `.clang-format` (ColumnLimit: 90). -- Break long lines at logical points: after commas, before operators, after opening parens. +- Only break a line when it would exceed 90 characters. Do not introduce unnecessary line breaks when the expression fits on one line. +- When a break is needed, break at logical points: after commas, before operators. Keep the first argument on the same line as the opening paren (do not break immediately after an opening paren). ## Naming Conventions From 7c2f746185742c95950eb78280ca831ec1d94ca6 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Tue, 9 Jun 2026 17:43:53 +0000 Subject: [PATCH 18/61] latest from 06/09 codes parallaxsw/OpensSTA Signed-off-by: dsengupta0628 --- search/test/cpp/TestSearchStaDesign.cc | 6 +++--- search/test/search_network_sta_deep.tcl | 4 ++-- search/test/search_search_arrival_required.tcl | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/search/test/cpp/TestSearchStaDesign.cc b/search/test/cpp/TestSearchStaDesign.cc index 81476113..32199c1d 100644 --- a/search/test/cpp/TestSearchStaDesign.cc +++ b/search/test/cpp/TestSearchStaDesign.cc @@ -1838,7 +1838,7 @@ TEST_F(StaDesignTest, SearchReportArrivals) { Search *search = sta_->search(); Vertex *v = findVertex("r1/Q"); ASSERT_NE(v, nullptr); - search->reportArrivals(v, false); + search->reportArrivals(v, false, 3); } // --- Search: reportPathCountHistogram --- @@ -4143,8 +4143,8 @@ TEST_F(StaDesignTest, SearchReportArrivals2) { Search *search = sta_->search(); Vertex *v = findVertex("r1/Q"); ASSERT_NE(v, nullptr); - search->reportArrivals(v, false); - search->reportArrivals(v, true); + search->reportArrivals(v, false, 3); + search->reportArrivals(v, true, 3); } TEST_F(StaDesignTest, SearchSeedArrival) { diff --git a/search/test/search_network_sta_deep.tcl b/search/test/search_network_sta_deep.tcl index 45968570..395ab230 100644 --- a/search/test/search_network_sta_deep.tcl +++ b/search/test/search_network_sta_deep.tcl @@ -97,8 +97,8 @@ puts "paths: [sta::path_count]" puts "--- report_tag_arrivals ---" set v [sta::worst_slack_vertex max] if { $v != "NULL" } { - sta::report_tag_arrivals_cmd $v 1 - sta::report_tag_arrivals_cmd $v 0 + sta::report_tag_arrivals_cmd $v 1 3 + sta::report_tag_arrivals_cmd $v 0 3 } ############################################################ diff --git a/search/test/search_search_arrival_required.tcl b/search/test/search_search_arrival_required.tcl index abaa16ed..c0300a9d 100644 --- a/search/test/search_search_arrival_required.tcl +++ b/search/test/search_search_arrival_required.tcl @@ -86,8 +86,8 @@ if { $wv != "NULL" } { } # report_tag_arrivals - sta::report_tag_arrivals_cmd $wv 1 - sta::report_tag_arrivals_cmd $wv 0 + sta::report_tag_arrivals_cmd $wv 1 3 + sta::report_tag_arrivals_cmd $wv 0 3 } puts "--- worst_slack_vertex min ---" From 7e8f01616c722a5b235b92e0499497ea39a39855 Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Tue, 9 Jun 2026 17:59:23 +0000 Subject: [PATCH 19/61] Revert "enforce sta assump by error instead of seg fault" This reverts commit 452f0bf772eda0f4a983d8154e28c921274fa252. --- include/sta/Search.hh | 13 ------------- search/Search.cc | 16 ---------------- search/Search.i | 28 ---------------------------- test/stale_path_uaf.ok | 2 -- test/stale_path_uaf.tcl | 21 --------------------- 5 files changed, 80 deletions(-) delete mode 100644 test/stale_path_uaf.ok delete mode 100644 test/stale_path_uaf.tcl diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 628e9a68..4dc40efe 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -179,16 +179,6 @@ public: void deleteFilter(); void deleteFilteredArrivals(); - // Stale path-handle guard (OpenROAD #10210). PathEnds are freed when path - // groups are deleted, so a handle held across a search update dangles. These - // track the currently-valid PathEnds so the Tcl accessors report a clean - // error instead of crashing (best-effort: a reused address is not detected). - // The Tcl-only guard does not cover C++ callers holding a Path*/PathEnd* - // directly; the contract is that a path is valid only until the next search - // update, so copy stable fields out first (cf. the rsz Path::prevArc() fix). - void registerValidPathEnds(const PathEndSeq &ends); - bool pathEndValid(const PathEnd *path_end) const; - VertexSet &endpoints(); void endpointsInvalid(); @@ -682,9 +672,6 @@ protected: bool postpone_latch_outputs_{false}; std::vector enum_paths_; - // Currently-valid PathEnds returned to external callers (see guard methods). - std::unordered_set valid_path_ends_; - VisitPathEnds *visit_path_ends_; GatedClk *gated_clk_; CheckCrpr *check_crpr_; diff --git a/search/Search.cc b/search/Search.cc index 4076b91b..1ab8c639 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -334,26 +334,10 @@ Search::clear() void Search::deletePathGroups() { - // PathEnds (including any handed to external callers) are destroyed here, so - // clear the stale-handle guard set at this free site. - valid_path_ends_.clear(); for (Mode *mode : modes_) mode->deletePathGroups(); } -// Stale path-handle guard. -void -Search::registerValidPathEnds(const PathEndSeq &ends) -{ - valid_path_ends_.insert(ends.begin(), ends.end()); -} - -bool -Search::pathEndValid(const PathEnd *path_end) const -{ - return valid_path_ends_.contains(path_end); -} - bool Search::crprPathPruningEnabled() const { diff --git a/search/Search.i b/search/Search.i index 785ad2ba..c9295d98 100644 --- a/search/Search.i +++ b/search/Search.i @@ -44,31 +44,6 @@ using namespace sta; %} -// Stale path-handle guard. One typemap validates every -// PathEnd* crossing the Tcl boundary -- all %extend accessors (the self arg), -// report_path_end, and any future ones. Declared before the PathEnd class so it -// applies to the %extend methods below. -%typemap(check) PathEnd * { - if (!Sta::sta()->search()->pathEndValid($1)) { - // A check typemap runs outside the global %exception try/catch - // (tcl/Exception.i), so catch report_'s ExceptionMsg locally and convert it - // to a Tcl error the same way -- giving the usual "Error: ..." output. - try { - Sta::sta()->report()->error(2310, - "path end used after a timing search update;" - " a path object is only valid until the next" - " search update."); - } - catch (ExceptionMsg &excp) { - if (!excp.suppressed()) { - Tcl_ResetResult(interp); - Tcl_AppendResult(interp, "Error: ", excp.what(), nullptr); - } - SWIG_fail; - } - } -} - //////////////////////////////////////////////////////////////// // // Empty class definitions to make swig happy. @@ -409,9 +384,6 @@ find_path_ends(ExceptionFrom *from, setup, hold, recovery, removal, clk_gating_setup, clk_gating_hold); - // Register for the Tcl stale-handle guard. Tcl-only: - // internal C++ Sta::findPathEnds callers do not register and pay no cost. - sta->search()->registerValidPathEnds(ends); return ends; } diff --git a/test/stale_path_uaf.ok b/test/stale_path_uaf.ok deleted file mode 100644 index 2c6296da..00000000 --- a/test/stale_path_uaf.ok +++ /dev/null @@ -1,2 +0,0 @@ -Error: 2310 path end used after a timing search update; a path object is only valid until the next search update. -Error: 2310 path end used after a timing search update; a path object is only valid until the next search update. diff --git a/test/stale_path_uaf.tcl b/test/stale_path_uaf.tcl deleted file mode 100644 index 6fa9083a..00000000 --- a/test/stale_path_uaf.tcl +++ /dev/null @@ -1,21 +0,0 @@ -# Guard for stale path handles across a search update (OpenROAD #10210). -# Holding a PathEnd past the next query must error cleanly, not crash. -read_liberty ../examples/nangate45_typ.lib.gz -read_verilog ../examples/example1.v -link_design top -create_clock -name clk -period 10 {clk1 clk2 clk3} -set_input_delay -clock clk 0 {in1 in2} - -# Second query = find_timing_paths. -set ends [find_timing_paths -through u1/Z] -set pe [lindex $ends 0] -set junk [find_timing_paths -through u2/ZN] -catch { puts "stale : slack=[$pe slack] arrival=[[$pe path] arrival]" } msg -puts $msg - -# Second query = report_checks. -set ends [find_timing_paths -through u1/Z] -set pe [lindex $ends 0] -report_checks -path_delay max -catch { puts "stale : slack=[$pe slack] arrival=[[$pe path] arrival]" } msg -puts $msg From 65deb11d64e26e63803bfa7e75faacdc2622be4f Mon Sep 17 00:00:00 2001 From: Deepashree Sengupta Date: Tue, 9 Jun 2026 23:55:27 -0400 Subject: [PATCH 20/61] Address a few typos in docs related to SSTA (#447) * Address a few typos in docs Signed-off-by: dsengupta0628 * update help string for report_checks to reflect variation Signed-off-by: dsengupta0628 --------- Signed-off-by: dsengupta0628 --- doc/ChangeLog.txt | 10 +++++----- doc/OpenSTA.fodt | 14 +++++++------- doc/OpenSTA.pdf | Bin 1443585 -> 1440224 bytes search/Search.tcl | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/doc/ChangeLog.txt b/doc/ChangeLog.txt index f4ab5751..c30947f8 100644 --- a/doc/ChangeLog.txt +++ b/doc/ChangeLog.txt @@ -22,13 +22,13 @@ Release 3.0.1 2026/03/12 ------------------------ Statistical timing (SSTA) with Liberty LVF (Liberty Variation Format) -models is now supported. Statistical timing uses a probaility -distribution to represent a delay or slew ranther than a single +models is now supported. Statistical timing uses a probability +distribution to represent a delay or slew rather than a single number. Normal and skew normal probability distributions are supported. -SSTA is enabled with the sta_pocv_mode variaable. +SSTA is enabled with the sta_pocv_mode variable. set sta_pocv_mode scalar|normal|skew_normal @@ -43,10 +43,10 @@ set with the sta_pocv_quantile variable. The default value is 3 standard deviations, or sigma. -Use the variance field with report_checks or report_check_types to see +Use the variation field with report_checks or report_check_types to see distribution parameters in timing reports. -A command file for analyzing a design with statisical timing with an +A command file for analyzing a design with statistical timing with an LVF library is shown below. read_liberty lvf_library.lib.gz diff --git a/doc/OpenSTA.fodt b/doc/OpenSTA.fodt index e0d25e48..318b70a0 100644 --- a/doc/OpenSTA.fodt +++ b/doc/OpenSTA.fodt @@ -6639,15 +6639,15 @@ This example can be found in examples/mcmm3.tcl.In the example show above the SDC for the modes is in separate files. Alternatively, the SDC can be defined in the command file using the set_mode command between SDC command groups. set_mode mode1create_clock -name m1_clk -period 1000 {clk1 clk2 clk3}set_input_delay -clock m1_clk 100 {in1 in2}set_mode mode2create_clock -name m2_clk -period 500 {clk1 clk3}set_output_delay -clock m2_clk 100 out Statistical Timing Analysis - OpenSTA also supports statistical timing .anallysis with Liberty Variation Format (LVF) libraries. Statistical timing uses a probaility distribution to represent a delay or slew ranther than a single number. - Normal and skew normal probability distributions are supported. SSTA is enabled with the sta_pocv_mode variaable. + OpenSTA also supports statistical timing analysis with Liberty Variation Format (LVF) libraries. Statistical timing uses a probability distribution to represent a delay or slew rather than a single number. + Normal and skew normal probability distributions are supported. SSTA is enabled with the sta_pocv_mode variable. set sta_pocv_mode scalar|normal|skew_normalscalar mode is for non-SSTA analysisnormal mode uses gaussian normal distributionsskew_normal mode is for skew normal LVF moment based distributions The target quantile of a delay probability distribution (confidence level) is set with the sta_pocv_quantile variable. set sta_pocv_quantile <float> The default value is 3 standard deviations, or sigma. - Use the variance field with the report_checks and report_check_types commands to see distribution parameters in timing reports. - A command file for analyzing a design with statisical timing is shown below. - read_liberty lvf_library.lib.gzread_verilog design.vlink_design topcreate_clock -period 50 clkset_input_delay -clock clk 1 {in1 in2}set sta_pocv_mode skew_normalreport_checks -fields {slew variation input_pin variation} -digits 3 + Use the variation field with the report_checks and report_check_types commands to see distribution parameters in timing reports. + A command file for analyzing a design with statistical timing is shown below. + read_liberty lvf_library.lib.gzread_verilog design.vlink_design topcreate_clock -period 50 clkset_input_delay -clock clk 1 {in1 in2}set sta_pocv_mode skew_normalreport_checks -fields {slew variation input_pin} -digits 3 Startpoint: r2 (rising edge-triggered flip-flop clocked by clk)Endpoint: r3 (rising edge-triggered flip-flop clocked by clk)Path Group: clkPath Type: max Slew Delay Variation Time Description--------------------------------------------------------------------------- 0.000 0.000 0.000 clock clk (rise edge) 0.000 0.000 clock network delay (ideal) 0.000 0.000 0.000 ^ r2/CK (FDPQ1) 12.026 mean 0.017 mean_shift 0.366 std_dev 0.000 skewness 4.648 12.409 12.409 v r2/Q (FFQ1) 4.648 0.000 12.409 v u1/A (BUF1) 6.084 mean 0.007 mean_shift 0.188 std_dev 0.000 skewness 2.513 6.137 18.546 v u1/X (BUF1) 2.513 0.000 18.546 v u2/A2 (AN21) 6.447 mean 0.008 mean_shift 0.191 std_dev 0.000 skewness 2.565 6.497 25.043 v u2/X (AN21) 2.565 0.000 25.043 v r3/D (FFQ1) 25.043 data arrival time 0.000 50.000 50.000 clock clk (rise edge) 0.000 50.000 clock network delay (ideal) 0.000 50.000 clock reconvergence pessimism 50.000 ^ r3/CK (FFQ1) -9.376 40.624 library setup time 40.624 data required time--------------------------------------------------------------------------- 40.624 data required time -25.043 data arrival time--------------------------------------------------------------------------- 15.581 slack (MET) The standard deviation for normal distributions is specified with the following liberty timing groups. ocv_sigma_cell_riseocv_sigma_cell_fallocv_sigma_rise_transitionocv_sigma_fall_transitionocv_sigma_rise_constraintocv_sigma_fall_constraint @@ -9532,7 +9532,7 @@ fields - List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variance + List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variation @@ -9611,7 +9611,7 @@ fields - List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variance + List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variation diff --git a/doc/OpenSTA.pdf b/doc/OpenSTA.pdf index 745f20950d59779ddffb08b816a402366c796db9..dceb4a4f125ba093799b4b48ff2875dd4ccfd41b 100644 GIT binary patch literal 1440224 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 z%0A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�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 literal 1443585 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 o`e;l`$YZsAgra==XDDU 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⪙D#? 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

;m-N8zDjG_}q?KTG5%=%z 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�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

vXDtfG%ix(~<^a$Q9 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 JUF|;ZhreNmA#(r# diff --git a/search/Search.tcl b/search/Search.tcl index 066b922b..a57b109b 100644 --- a/search/Search.tcl +++ b/search/Search.tcl @@ -333,7 +333,7 @@ define_cmd_args "report_checks" \ [-sort_by_slack]\ [-path_group group_name]\ [-format full|full_clock|full_clock_expanded|short|end|slack_only|summary|json]\ - [-fields capacitance|slew|fanout|input_pin|net|src_attr]\ + [-fields capacitance|slew|fanout|input_pin|net|src_attr|variation]\ [-digits digits]\ [-no_line_splits]\ [> filename] [>> filename]} From 424cb1dff1ec264b662c91f60a1fba9d13243eed Mon Sep 17 00:00:00 2001 From: Drew Lewis Date: Wed, 10 Jun 2026 12:12:19 -0400 Subject: [PATCH 21/61] Add native gzip compression support to write_verilog (#448) --- test/regression_vars.tcl | 1 + test/verilog_write_gzip.ok | 33 +++++++++++++++++++++++++++++++++ test/verilog_write_gzip.tcl | 8 ++++++++ verilog/VerilogWriter.cc | 12 +++++++----- 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 test/verilog_write_gzip.ok create mode 100644 test/verilog_write_gzip.tcl diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index ce037eff..bf7e9faa 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -169,6 +169,7 @@ record_public_tests { verilog_well_supplies verilog_specify verilog_write_escape + verilog_write_gzip verilog_unconnected_hpin } diff --git a/test/verilog_write_gzip.ok b/test/verilog_write_gzip.ok new file mode 100644 index 00000000..bb976236 --- /dev/null +++ b/test/verilog_write_gzip.ok @@ -0,0 +1,33 @@ +module top (in1, + in2, + clk1, + clk2, + clk3, + out); + input in1; + input in2; + input clk1; + input clk2; + input clk3; + output out; + + wire r1q; + wire r2q; + wire u1z; + wire u2z; + + DFFHQx4_ASAP7_75t_R r1 (.Q(r1q), + .CLK(clk1), + .D(in1)); + DFFHQx4_ASAP7_75t_R r2 (.Q(r2q), + .CLK(clk2), + .D(in2)); + DFFHQx4_ASAP7_75t_R r3 (.Q(out), + .CLK(clk3), + .D(u2z)); + BUFx2_ASAP7_75t_R u1 (.Y(u1z), + .A(r2q)); + AND2x2_ASAP7_75t_R u2 (.Y(u2z), + .A(r1q), + .B(u1z)); +endmodule diff --git a/test/verilog_write_gzip.tcl b/test/verilog_write_gzip.tcl new file mode 100644 index 00000000..a2b442ef --- /dev/null +++ b/test/verilog_write_gzip.tcl @@ -0,0 +1,8 @@ +# Check that write_verilog supports gzip compression natively if .gz extension is provided. +source helpers.tcl +read_liberty asap7_small.lib.gz +read_verilog reg1_asap7.v +link_design top +set verilog_file [make_result_file "verilog_write_gzip.v.gz"] +write_verilog $verilog_file +report_file $verilog_file diff --git a/verilog/VerilogWriter.cc b/verilog/VerilogWriter.cc index c5d3fe7a..9f299122 100644 --- a/verilog/VerilogWriter.cc +++ b/verilog/VerilogWriter.cc @@ -33,6 +33,7 @@ #include "Error.hh" #include "Format.hh" #include "Liberty.hh" +#include "Zlib.hh" #include "Network.hh" #include "NetworkCmp.hh" #include "ParseBus.hh" @@ -47,7 +48,7 @@ public: VerilogWriter(const char *filename, bool include_pwr_gnd, CellSeq *remove_cells, - FILE *stream, + gzFile stream, Network *network); void writeModules(); @@ -82,7 +83,7 @@ protected: const char *filename_; bool include_pwr_gnd_; CellSet remove_cells_; - FILE *stream_; + gzFile stream_; Network *network_; int unconnected_net_index_{1}; }; @@ -94,12 +95,13 @@ writeVerilog(const char *filename, Network *network) { if (network->topInstance()) { - FILE *stream = fopen(filename, "w"); + bool gzip = std::string_view(filename).ends_with(".gz"); + gzFile stream = gzopen(filename, gzip ? "wb" : "wT"); if (stream) { VerilogWriter writer(filename, include_pwr_gnd, remove_cells, stream, network); writer.writeModules(); - fclose(stream); + gzclose(stream); } else throw FileNotWritable(filename); @@ -109,7 +111,7 @@ writeVerilog(const char *filename, VerilogWriter::VerilogWriter(const char *filename, bool include_pwr_gnd, CellSeq *remove_cells, - FILE *stream, + gzFile stream, Network *network) : filename_(filename), include_pwr_gnd_(include_pwr_gnd), From 4249ab7b98246180db361b340b43ccfe2053054a Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 10 Jun 2026 10:38:15 -0700 Subject: [PATCH 22/61] set sta_pocv_mode update delays/slews Signed-off-by: James Cherry --- graph/Graph.cc | 21 +++++---------------- include/sta/Graph.hh | 4 +--- search/Sta.cc | 8 +++++--- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/graph/Graph.cc b/graph/Graph.cc index 74996842..f19927ff 100644 --- a/graph/Graph.cc +++ b/graph/Graph.cc @@ -384,13 +384,6 @@ Graph::makeWireEdge(const Pin *from_pin, } } -void -Graph::makeSceneAfter() -{ - ap_count_ = dcalcAnalysisPtCount(); - initSlews(); -} - //////////////////////////////////////////////////////////////// Vertex * @@ -782,17 +775,13 @@ Graph::removeDelayAnnotated(Edge *edge) //////////////////////////////////////////////////////////////// -// This only gets called if the analysis type changes from single -// to bc_wc/ocv or visa versa. void -Graph::setDelayCount(DcalcAPIndex ap_count) +Graph::delayCountChanged() { - if (ap_count != ap_count_) { - // Discard any existing delays. - removePeriodCheckAnnotations(); - ap_count_ = ap_count; - initSlews(); - } + ap_count_ = dcalcAnalysisPtCount(); + // Discard any existing delays. + removePeriodCheckAnnotations(); + initSlews(); } void diff --git a/include/sta/Graph.hh b/include/sta/Graph.hh index a3553048..572d95a7 100644 --- a/include/sta/Graph.hh +++ b/include/sta/Graph.hh @@ -63,8 +63,7 @@ public: void makeGraph(); ~Graph() override; - // Number of arc delays and slews from sdf or delay calculation. - void setDelayCount(DcalcAPIndex ap_count); + void delayCountChanged(); size_t slewCount(); // Vertex functions. @@ -178,7 +177,6 @@ public: // Remove all delay and slew annotations. void removeDelaySlewAnnotations(); VertexSet ®ClkVertices() { return reg_clk_vertices_; } - void makeSceneAfter(); static constexpr int vertex_level_bits = 24; static constexpr int vertex_level_max = (1<deletePathGroups(); if (graph_) - graph_->setDelayCount(dcalcAnalysisPtCount()); + graph_->delayCountChanged(); } } @@ -2311,6 +2311,8 @@ Sta::setPocvMode(PocvMode mode) } updateComponentsState(); delaysInvalid(); + if (graph_) + graph_->delayCountChanged(); } } @@ -2554,7 +2556,7 @@ Sta::makeScenes(const StringSeq &scene_names) cmd_scene_ = scenes_[0]; updateComponentsState(); if (graph_) - graph_->makeSceneAfter(); + graph_->delayCountChanged(); } void @@ -2583,7 +2585,7 @@ Sta::makeScene(const std::string &name, Scene *scene = makeScene(name, mode, parasitics_min, parasitics_max); updateComponentsState(); if (graph_) - graph_->makeSceneAfter(); + graph_->delayCountChanged(); updateSceneLiberty(scene, liberty_min_files, liberty_max_files); cmd_scene_ = scene; } From 740fa7d16ce72bb241a8583ff94b693aa96f17f0 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 13 Jun 2026 16:31:24 -0700 Subject: [PATCH 23/61] input ref pin graph edges Signed-off-by: James Cherry --- include/sta/PortDelay.hh | 3 +++ include/sta/Sdc.hh | 6 ++++-- include/sta/Search.hh | 2 -- include/sta/TimingArc.hh | 4 ++++ include/sta/TimingRole.hh | 3 +++ liberty/TimingArc.cc | 4 ++++ liberty/TimingRole.cc | 2 ++ sdc/PortDelay.cc | 10 ++++++++++ sdc/Sdc.cc | 42 +++++++++++++++++++++------------------ search/Levelize.cc | 3 +++ search/Search.cc | 22 -------------------- 11 files changed, 56 insertions(+), 45 deletions(-) diff --git a/include/sta/PortDelay.hh b/include/sta/PortDelay.hh index ab71151a..7d4a3897 100644 --- a/include/sta/PortDelay.hh +++ b/include/sta/PortDelay.hh @@ -51,6 +51,8 @@ public: const Pin *refPin() const { return ref_pin_; } void setRefPin(const Pin *ref_pin); const RiseFall *refTransition() const; + bool refPinEdgesExist() const { return ref_pin_edges_exist_; } + void setRefPinEdgesExist(bool exists); protected: PortDelay(const Pin *pin, @@ -62,6 +64,7 @@ protected: bool source_latency_included_{false}; bool network_latency_included_{false}; const Pin *ref_pin_{nullptr}; + bool ref_pin_edges_exist_{false}; RiseFallMinMax delays_; PinSet leaf_pins_; }; diff --git a/include/sta/Sdc.hh b/include/sta/Sdc.hh index 3f7cd8e4..557beaa6 100644 --- a/include/sta/Sdc.hh +++ b/include/sta/Sdc.hh @@ -576,6 +576,7 @@ public: const Clock *clk, const RiseFall *clk_rf, const MinMaxAll *min_max); + void ensureInputDelayRefPinEdges(); void setOutputDelay(const Pin *pin, const RiseFallBoth *rf, const Clock *clk, @@ -806,7 +807,6 @@ public: const MinMaxAll *min_max); // STA interface. - InputDelaySet *refPinInputDelays(const Pin *ref_pin) const; const LogicValueMap &logicValues() const { return logic_value_map_; } const LogicValueMap &caseLogicValues() const { return case_value_map_; } // Returns nullptr if set_operating_conditions has not been called. @@ -1217,6 +1217,7 @@ protected: InputDelay *except); void deleteInputDelaysReferencing(const Clock *clk); void deleteInputDelay(InputDelay *input_delay); + OutputDelay *findOutputDelay(const Pin *pin, const ClockEdge *clk_edge); OutputDelay *makeOutputDelay(const Pin *pin, @@ -1225,6 +1226,7 @@ protected: OutputDelay *except); void deleteOutputDelaysReferencing(const Clock *clk); void deleteOutputDelay(OutputDelay *output_delay); + void deleteClockInsertion(ClockInsertion *insertion); void deleteClockInsertionsReferencing(Clock *clk); void deleteInterClockUncertainty(InterClockUncertainty *uncertainties); @@ -1330,7 +1332,7 @@ protected: InputDelaySet input_delays_; InputDelaysPinMap input_delay_pin_map_; - InputDelaysPinMap input_delay_ref_pin_map_; + bool have_input_delay_ref_pins_{false}; // Input delays on hierarchical pins are indexed by the load pins. InputDelaysPinMap input_delay_leaf_pin_map_; InputDelaysPinMap input_delay_internal_pin_map_; diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 4dc40efe..d6db126e 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -800,8 +800,6 @@ public: protected: void init0(); - void enqueueRefPinInputDelays(const Pin *ref_pin, - const Sdc *sdc); void seedArrivals(Vertex *vertex); void pruneCrprArrivals(); void constrainedRequiredsInvalid(Vertex *vertex, diff --git a/include/sta/TimingArc.hh b/include/sta/TimingArc.hh index b2f56230..158caec3 100644 --- a/include/sta/TimingArc.hh +++ b/include/sta/TimingArc.hh @@ -204,6 +204,9 @@ public: static int wireArcIndex(const RiseFall *rf); static int wireArcCount() { return 2; } + // Psuedo definition for port ref_pin arcs. + static TimingArcSet *portRefPinTimingArcSet() { return port_refpin_timing_arc_set_; } + protected: TimingArcSet(const TimingRole *role, TimingArcAttrsPtr attrs); @@ -230,6 +233,7 @@ protected: static TimingArcAttrsPtr wire_timing_arc_attrs_; static TimingArcSet *wire_timing_arc_set_; + static TimingArcSet *port_refpin_timing_arc_set_; }; // A timing arc is a single from/to transition between two ports. diff --git a/include/sta/TimingRole.hh b/include/sta/TimingRole.hh index f07d6ed6..99a39e45 100644 --- a/include/sta/TimingRole.hh +++ b/include/sta/TimingRole.hh @@ -68,6 +68,7 @@ public: static const TimingRole *nonSeqHold() { return &non_seq_hold_; } static const TimingRole *clockTreePathMin() { return &clock_tree_path_min_; } static const TimingRole *clockTreePathMax() { return &clock_tree_path_max_; } + static const TimingRole *portDelayRefPin() { return &port_delay_ref_pin_; } const std::string &to_string() const { return name_; } int index() const { return index_; } bool isWire() const; @@ -139,6 +140,8 @@ private: static const TimingRole non_seq_hold_; static const TimingRole clock_tree_path_min_; static const TimingRole clock_tree_path_max_; + // Artificial timing from input/output_delay ref_pin to the input/output. + static const TimingRole port_delay_ref_pin_; static TimingRoleMap timing_roles_; friend class TimingRoleLess; diff --git a/liberty/TimingArc.cc b/liberty/TimingArc.cc index dd1694bd..a8ec5516 100644 --- a/liberty/TimingArc.cc +++ b/liberty/TimingArc.cc @@ -175,6 +175,7 @@ TimingArc::intrinsicDelay() const TimingArcAttrsPtr TimingArcSet::wire_timing_arc_attrs_ = nullptr; TimingArcSet *TimingArcSet::wire_timing_arc_set_ = nullptr; +TimingArcSet *TimingArcSet::port_refpin_timing_arc_set_ = nullptr; TimingArcSet::TimingArcSet(LibertyCell *, LibertyPort *from, @@ -524,6 +525,9 @@ TimingArcSet::init() Transition::rise(), nullptr); new TimingArc(wire_timing_arc_set_, Transition::fall(), Transition::fall(), nullptr); + + port_refpin_timing_arc_set_ = new TimingArcSet(TimingRole::portDelayRefPin(), + wire_timing_arc_attrs_); } void diff --git a/liberty/TimingRole.cc b/liberty/TimingRole.cc index 672a6498..abc8c127 100644 --- a/liberty/TimingRole.cc +++ b/liberty/TimingRole.cc @@ -90,6 +90,8 @@ const TimingRole TimingRole::clock_tree_path_min_("min clock tree path", false, false, MinMax::min(), nullptr, 27); const TimingRole TimingRole::clock_tree_path_max_("max clock tree path", false, false, false, MinMax::max(), nullptr, 28); +const TimingRole TimingRole::port_delay_ref_pin_("port delay ref pin", false, false, + false, nullptr, nullptr, 29); TimingRole::TimingRole(const char *name, bool is_sdf_iopath, diff --git a/sdc/PortDelay.cc b/sdc/PortDelay.cc index 94d3bbb2..6fa0f1c9 100644 --- a/sdc/PortDelay.cc +++ b/sdc/PortDelay.cc @@ -87,6 +87,14 @@ PortDelay::refTransition() const return RiseFall::rise(); } +void +PortDelay::setRefPinEdgesExist(bool exists) +{ + ref_pin_edges_exist_ = exists; +} + +//////////////////////////////////////////////////////////////// + InputDelay::InputDelay(const Pin *pin, const ClockEdge *clk_edge, int index, @@ -97,6 +105,8 @@ InputDelay::InputDelay(const Pin *pin, findLeafLoadPins(pin, network, &leaf_pins_); } +//////////////////////////////////////////////////////////////// + OutputDelay::OutputDelay(const Pin *pin, const ClockEdge *clk_edge, const Network *network) : diff --git a/sdc/Sdc.cc b/sdc/Sdc.cc index fb9b9c75..aa6bb723 100644 --- a/sdc/Sdc.cc +++ b/sdc/Sdc.cc @@ -115,7 +115,6 @@ Sdc::Sdc(Mode *mode, cycle_acctings_(this), input_delay_pin_map_(PinIdLess(network_)), - input_delay_ref_pin_map_(PinIdLess(network_)), input_delay_leaf_pin_map_(PinIdLess(network_)), input_delay_internal_pin_map_(PinIdLess(network_)), @@ -191,9 +190,9 @@ Sdc::clear() input_delays_.clear(); input_delay_pin_map_.clear(); input_delay_index_ = 0; - input_delay_ref_pin_map_.clear(); input_delay_leaf_pin_map_.clear(); input_delay_internal_pin_map_.clear(); + have_input_delay_ref_pins_ = false; output_delays_.clear(); output_delay_pin_map_.clear(); @@ -287,7 +286,6 @@ Sdc::deleteConstraints() deleteContents(input_delays_); deleteContents(input_delay_pin_map_); deleteContents(input_delay_leaf_pin_map_); - deleteContents(input_delay_ref_pin_map_); deleteContents(input_delay_internal_pin_map_); deleteContents(output_delays_); @@ -2671,16 +2669,9 @@ Sdc::setInputDelay(const Pin *pin, delays->setValue(rf, min_max, delay); } - if (ref_pin) { - InputDelaySet *ref_inputs = findKey(input_delay_ref_pin_map_, ref_pin); - if (ref_inputs == nullptr) { - ref_inputs = new InputDelaySet; - input_delay_ref_pin_map_[ref_pin] = ref_inputs; - } - ref_inputs->insert(input_delay); - } input_delay->setRefPin(ref_pin); - + if (ref_pin) + have_input_delay_ref_pins_ = true; input_delay->setSourceLatencyIncluded(source_latency_included); input_delay->setNetworkLatencyIncluded(network_latency_included); } @@ -2766,12 +2757,6 @@ Sdc::deleteInputDelays(const Pin *pin, } } -InputDelaySet * -Sdc::refPinInputDelays(const Pin *ref_pin) const -{ - return findKey(input_delay_ref_pin_map_, ref_pin); -} - InputDelaySet * Sdc::inputDelaysLeafPin(const Pin *leaf_pin) const { @@ -2828,7 +2813,6 @@ Sdc::swapPortDelays(Sdc *sdc1, { std::swap(sdc1->input_delays_, sdc2->input_delays_); std::swap(sdc1->input_delay_pin_map_, sdc2->input_delay_pin_map_); - std::swap(sdc1->input_delay_ref_pin_map_, sdc2->input_delay_ref_pin_map_); std::swap(sdc1->input_delay_leaf_pin_map_, sdc2->input_delay_leaf_pin_map_); std::swap(sdc1->input_delay_internal_pin_map_, sdc2->input_delay_internal_pin_map_); std::swap(sdc1->input_delay_index_, sdc2->input_delay_index_); @@ -2839,6 +2823,26 @@ Sdc::swapPortDelays(Sdc *sdc1, std::swap(sdc1->output_delay_leaf_pin_map_, sdc2->output_delay_leaf_pin_map_); } +void +Sdc::ensureInputDelayRefPinEdges() +{ + if (have_input_delay_ref_pins_) { + for (InputDelay *input_delay : input_delays_) { + const Pin *ref_pin = input_delay->refPin(); + if (ref_pin + && !input_delay->refPinEdgesExist()) { + Vertex *ref_pin_vertex = graph_->pinLoadVertex(ref_pin); + for (const Pin *pin : input_delay->leafPins()) { + Vertex *input_vertex = graph_->pinDrvrVertex(pin); + graph_->makeEdge(ref_pin_vertex, input_vertex, + TimingArcSet::portRefPinTimingArcSet()); + } + input_delay->setRefPinEdgesExist(true); + } + } + } +} + //////////////////////////////////////////////////////////////// void diff --git a/search/Levelize.cc b/search/Levelize.cc index 2219a91d..f6deee0a 100644 --- a/search/Levelize.cc +++ b/search/Levelize.cc @@ -117,6 +117,9 @@ Levelize::findLevels() if (observer_) observer_->levelsChangedBefore(); + for (const Mode *mode : modes_) + mode->sdc()->ensureInputDelayRefPinEdges(); + VertexIterator vertex_iter(graph_); while (vertex_iter.hasNext()) { Vertex *vertex = vertex_iter.next(); diff --git a/search/Search.cc b/search/Search.cc index 1ab8c639..7868108d 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -1226,7 +1226,6 @@ ArrivalVisitor::seedArrivals(Vertex *vertex) network_->pathName(pin)); search_->makeUnclkedPaths(vertex, true, false, tag_bldr_, mode); } - enqueueRefPinInputDelays(pin, sdc); } } @@ -1387,27 +1386,6 @@ ArrivalVisitor::pruneCrprArrivals() } } -// Enqueue pins with input delays that use ref_pin as the clock -// reference pin as if there is a timing arc from the reference pin to -// the input delay pin. -void -ArrivalVisitor::enqueueRefPinInputDelays(const Pin *ref_pin, - const Sdc *sdc) -{ - InputDelaySet *input_delays = sdc->refPinInputDelays(ref_pin); - if (input_delays) { - BfsFwdIterator *arrival_iter = search_->arrivalIterator(); - for (InputDelay *input_delay : *input_delays) { - const Pin *pin = input_delay->pin(); - Vertex *vertex, *bidirect_drvr_vertex; - graph_->pinVertices(pin, vertex, bidirect_drvr_vertex); - arrival_iter->enqueue(vertex); - if (bidirect_drvr_vertex) - arrival_iter->enqueue(bidirect_drvr_vertex); - } - } -} - void Search::enqueueLatchDataOutputs(Vertex *vertex) { From 376d86bbce84fb395b11d46f6ccd0caab99fc678 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 13 Jun 2026 16:45:23 -0700 Subject: [PATCH 24/61] rm Sdc::output_delay_ref_pin_map_ Signed-off-by: James Cherry --- include/sta/Sdc.hh | 1 - sdc/Sdc.cc | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/include/sta/Sdc.hh b/include/sta/Sdc.hh index 557beaa6..1ba41f91 100644 --- a/include/sta/Sdc.hh +++ b/include/sta/Sdc.hh @@ -1340,7 +1340,6 @@ protected: OutputDelaySet output_delays_; OutputDelaysPinMap output_delay_pin_map_; - OutputDelaysPinMap output_delay_ref_pin_map_; // Output delays on hierarchical pins are indexed by the load pins. OutputDelaysPinMap output_delay_leaf_pin_map_; diff --git a/sdc/Sdc.cc b/sdc/Sdc.cc index aa6bb723..088cc967 100644 --- a/sdc/Sdc.cc +++ b/sdc/Sdc.cc @@ -119,7 +119,6 @@ Sdc::Sdc(Mode *mode, input_delay_internal_pin_map_(PinIdLess(network_)), output_delay_pin_map_(PinIdLess(network_)), - output_delay_ref_pin_map_(PinIdLess(network_)), output_delay_leaf_pin_map_(PinIdLess(network_)), port_ext_cap_map_(network_), @@ -290,7 +289,6 @@ Sdc::deleteConstraints() deleteContents(output_delays_); deleteContents(output_delay_pin_map_); - deleteContents(output_delay_ref_pin_map_); deleteContents(output_delay_leaf_pin_map_); deleteContents(clk_hpin_disables_); @@ -2819,7 +2817,6 @@ Sdc::swapPortDelays(Sdc *sdc1, std::swap(sdc1->output_delays_, sdc2->output_delays_); std::swap(sdc1->output_delay_pin_map_, sdc2->output_delay_pin_map_); - std::swap(sdc1->output_delay_ref_pin_map_, sdc2->output_delay_ref_pin_map_); std::swap(sdc1->output_delay_leaf_pin_map_, sdc2->output_delay_leaf_pin_map_); } @@ -2871,16 +2868,7 @@ Sdc::setOutputDelay(const Pin *pin, delays->setValue(rf, min_max, delay); } - if (ref_pin) { - OutputDelaySet *ref_outputs = findKey(output_delay_ref_pin_map_, ref_pin); - if (ref_outputs == nullptr) { - ref_outputs = new OutputDelaySet; - output_delay_ref_pin_map_[ref_pin] = ref_outputs; - } - ref_outputs->insert(output_delay); - } output_delay->setRefPin(ref_pin); - output_delay->setSourceLatencyIncluded(source_latency_included); output_delay->setNetworkLatencyIncluded(network_latency_included); } From 0fe167a80dd32c3fce0bc7f4c4cb85dc2a1eced1 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 15 Jun 2026 17:02:58 -0700 Subject: [PATCH 25/61] sta_internal_bidirect_instance_paths_enabled use load->driver edges Signed-off-by: James Cherry --- dcalc/GraphDelayCalc.cc | 15 +++++++-------- graph/Graph.cc | 14 ++++++++++++++ graph/Graph.i | 1 + include/sta/Graph.hh | 5 +++++ include/sta/Sta.hh | 2 -- include/sta/StaState.hh | 2 ++ search/Levelize.cc | 12 +++++++----- search/Search.cc | 21 ++++++++++++--------- search/SearchPred.cc | 1 + search/Sta.cc | 18 ++++++++---------- search/StaState.cc | 9 +++++++++ 11 files changed, 66 insertions(+), 34 deletions(-) diff --git a/dcalc/GraphDelayCalc.cc b/dcalc/GraphDelayCalc.cc index 3bf51343..c61ebfed 100644 --- a/dcalc/GraphDelayCalc.cc +++ b/dcalc/GraphDelayCalc.cc @@ -107,8 +107,7 @@ DcalcPred::searchThru(Edge *edge, || edge->isDisabledLoop() || sdc->isDisabledConstraint(edge) || sdc->isDisabledCondDefault(edge) - || (edge->isBidirectInstPath() - && !variables->bidirectInstPathsEnabled())); + || sta_->isDisabledBidirectInstPath(edge)); } bool @@ -1011,13 +1010,13 @@ GraphDelayCalc::findDriverEdgeDelays(Vertex *drvr_vertex, if (search_pred_->searchFrom(from_vertex, mode) && search_pred_->searchThru(edge, mode)) { for (const MinMax *min_max : MinMax::range()) { - for (const TimingArc *arc : arc_set->arcs()) { - delay_changed |= findDriverArcDelays(drvr_vertex, multi_drvr, edge, arc, + for (const TimingArc *arc : arc_set->arcs()) { + delay_changed |= findDriverArcDelays(drvr_vertex, multi_drvr, edge, arc, scene, min_max, arc_delay_calc, - load_pin_index_map); - delay_exists[arc->toEdge()->asRiseFall()->index()] = true; - } - } + load_pin_index_map); + delay_exists[arc->toEdge()->asRiseFall()->index()] = true; + } + } } } if (delay_changed && observer_) { diff --git a/graph/Graph.cc b/graph/Graph.cc index f19927ff..6c9d47e8 100644 --- a/graph/Graph.cc +++ b/graph/Graph.cc @@ -250,6 +250,13 @@ Graph::makeInstDrvrWireEdges(const Instance *inst, if (network_->isDriver(pin) && !visited_drvrs.contains(pin)) makeWireEdgesFromPin(pin, visited_drvrs); + if (network_->isTopInstance(inst) + && network_->direction(pin)->isBidirect()) { + Vertex *bidir_load, *bidir_drvr; + pinVertices(pin, bidir_load, bidir_drvr); + Edge *edge = makeEdge(bidir_load, bidir_drvr, TimingArcSet::wireTimingArcSet()); + edge->setIsBidirectPortPath(true); + } } delete pin_iter; } @@ -1211,6 +1218,7 @@ Edge::init(VertexId from, vertex_out_prev_ = edge_id_null; is_bidirect_inst_path_ = false; is_bidirect_net_path_ = false; + is_bidirect_port_path_ = false; arc_delays_ = nullptr; arc_delay_annotated_is_bits_ = true; @@ -1368,6 +1376,12 @@ Edge::setIsBidirectNetPath(bool is_bidir) is_bidirect_net_path_ = is_bidir; } +void +Edge::setIsBidirectPortPath(bool is_bidir) +{ + is_bidirect_port_path_ = is_bidir; +} + void Edge::setHasSimSense(bool has_sense) { diff --git a/graph/Graph.i b/graph/Graph.i index d6fb1769..9c41e431 100644 --- a/graph/Graph.i +++ b/graph/Graph.i @@ -128,6 +128,7 @@ remove_delay_slew_annotations() Pin *pin() { return self->pin(); } bool is_bidirect_driver() { return self->isBidirectDriver(); } int level() { return Sta::sta()->vertexLevel(self); } +bool is_root() { return self->isRoot(); } int tag_group_index() { return self->tagGroupIndex(); } float diff --git a/include/sta/Graph.hh b/include/sta/Graph.hh index 572d95a7..1f6e7ce2 100644 --- a/include/sta/Graph.hh +++ b/include/sta/Graph.hh @@ -364,6 +364,9 @@ public: void setIsBidirectInstPath(bool is_bidir); bool isBidirectNetPath() const { return is_bidirect_net_path_; } void setIsBidirectNetPath(bool is_bidir); + bool isBidirectPortPath() const { return is_bidirect_port_path_; } + void setIsBidirectPortPath(bool is_bidir); + void removeDelayAnnotated(); [[nodiscard]] bool hasSimSense() const { return has_sim_sense_; } void setHasSimSense(bool has_sense); @@ -403,6 +406,8 @@ protected: bool delay_annotation_is_incremental_:1; bool is_bidirect_inst_path_:1; bool is_bidirect_net_path_:1; + // Bidirect load -> driver edge. + bool is_bidirect_port_path_:1; bool is_disabled_loop_:1; bool has_sim_sense_:1; bool has_disabled_cond_:1; diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index 913608aa..4f0701ff 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -567,8 +567,6 @@ public: const Sdc *sdc); // Edge is disabled to break combinational loops. [[nodiscard]] bool isDisabledLoop(Edge *edge) const; - // Edge is disabled internal bidirect output path. - [[nodiscard]] bool isDisabledBidirectInstPath(Edge *edge) const; // Edge is disabled bidirect net path. [[nodiscard]] bool isDisabledBidirectNetPath(Edge *edge) const; [[nodiscard]] bool isDisabledPresetClr(Edge *edge) const; diff --git a/include/sta/StaState.hh b/include/sta/StaState.hh index c0da5998..d0062d7c 100644 --- a/include/sta/StaState.hh +++ b/include/sta/StaState.hh @@ -106,6 +106,8 @@ public: const Variables *variables() const { return variables_; } // Edge is default cond disabled by timing_disable_cond_default_arcs var. [[nodiscard]] bool isDisabledCondDefault(const Edge *edge) const; + // Edge is disabled internal bidirect output path. + [[nodiscard]] bool isDisabledBidirectInstPath(Edge *edge) const; const SceneSeq &scenes() { return scenes_; } const SceneSeq &scenes() const { return scenes_; } diff --git a/search/Levelize.cc b/search/Levelize.cc index f6deee0a..baacfdb3 100644 --- a/search/Levelize.cc +++ b/search/Levelize.cc @@ -196,11 +196,13 @@ bool Levelize::searchThru(Edge *edge) { const TimingRole *role = edge->role(); - return !role->isTimingCheck() && role != TimingRole::latchDtoQ() - && !edge->isDisabledLoop() - // Register/latch preset/clr edges are disabled by default. - && !(role == TimingRole::regSetClr() && !variables_->presetClrArcsEnabled()) - && !(edge->isBidirectInstPath() && !variables_->bidirectInstPathsEnabled()); + return !(role->isTimingCheck() + || role == TimingRole::latchDtoQ() + || edge->isDisabledLoop() + // Register/latch preset/clr edges are disabled by default. + || (role == TimingRole::regSetClr() + && !variables_->presetClrArcsEnabled()) + || isDisabledBidirectInstPath(edge)); } bool diff --git a/search/Search.cc b/search/Search.cc index 7868108d..8e78f358 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -184,13 +184,14 @@ SearchAdj::searchThru(Edge *edge, { const TimingRole *role = edge->role(); const Variables *variables = sta_->variables(); - return !role->isTimingCheck() - && !role->isLatchDtoQ() - // Register/latch preset/clr edges are disabled by default. - && !(role == TimingRole::regSetClr() && !variables->presetClrArcsEnabled()) - && !(edge->isBidirectInstPath() && !variables->bidirectInstPathsEnabled()) - && (!edge->isDisabledLoop() - || (variables->dynamicLoopBreaking() && hasPendingLoopPaths(edge))); + return !(role->isTimingCheck() + || role->isLatchDtoQ() + // Register/latch preset/clr edges are disabled by default. + || (role == TimingRole::regSetClr() + && !variables->presetClrArcsEnabled()) + || sta_->isDisabledBidirectInstPath(edge) + || (edge->isDisabledLoop() + && !(variables->dynamicLoopBreaking() && hasPendingLoopPaths(edge)))); } bool @@ -3228,8 +3229,10 @@ Search::isEndpoint(Vertex *vertex, const Pin *pin = vertex->pin(); const Sdc *sdc = mode->sdc(); return hasFanin(vertex, pred, graph_, mode) - && ((vertex->hasChecks() && hasEnabledChecks(vertex, mode)) - || sdc->isConstrainedEnd(pin) || !hasFanout(vertex, pred, graph_, mode) + && ((vertex->hasChecks() + && hasEnabledChecks(vertex, mode)) + || sdc->isConstrainedEnd(pin) + || !hasFanout(vertex, pred, graph_, mode) || sdc->isPathDelayInternalTo(pin) // Unconstrained paths at register clk pins. || (unconstrained_paths_ && vertex->isRegClk()) diff --git a/search/SearchPred.cc b/search/SearchPred.cc index 77279374..4a0a8304 100644 --- a/search/SearchPred.cc +++ b/search/SearchPred.cc @@ -184,6 +184,7 @@ ClkTreeSearchPred::searchThru(Edge *edge, || sdc->isDisabledConstraint(edge) || sdc->isDisabledCondDefault(edge) || edge->isBidirectInstPath() + || edge->isBidirectPortPath() || edge->isDisabledLoop()); } diff --git a/search/Sta.cc b/search/Sta.cc index 75d3d730..87a3f7d1 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -1702,8 +1702,10 @@ Sta::disabledEdges(const Mode *mode) VertexOutEdgeIterator edge_iter(vertex, graph_); while (edge_iter.hasNext()) { Edge *edge = edge_iter.next(); - if (isDisabledConstant(edge, mode) || isDisabledCondDefault(edge) - || isDisabledConstraint(edge, sdc) || edge->isDisabledLoop() + if (isDisabledConstant(edge, mode) + || isDisabledCondDefault(edge) + || isDisabledConstraint(edge, sdc) + || edge->isDisabledLoop() || isDisabledPresetClr(edge)) disabled_edges.push_back(edge); } @@ -1841,12 +1843,6 @@ Sta::exprConstantPins(FuncExpr *expr, } } -bool -Sta::isDisabledBidirectInstPath(Edge *edge) const -{ - return !variables_->bidirectInstPathsEnabled() && edge->isBidirectInstPath(); -} - bool Sta::isDisabledPresetClr(Edge *edge) const { @@ -5217,8 +5213,10 @@ FanInOutSrchPred::searchThru(Edge *edge, const Sim *sim = mode->sim(); return searchThruRole(edge) && (thru_disabled_ - || !(sdc->isDisabledConstraint(edge) || sim->isDisabledCond(edge) - || sta_->isDisabledCondDefault(edge))) + || !(sdc->isDisabledConstraint(edge) + || sim->isDisabledCond(edge) + || sta_->isDisabledCondDefault(edge) + || sta_->isDisabledBidirectInstPath(edge))) && (thru_constants_ || sim->simTimingSense(edge) != TimingSense::none); } diff --git a/search/StaState.cc b/search/StaState.cc index ea673b38..95d33060 100644 --- a/search/StaState.cc +++ b/search/StaState.cc @@ -31,6 +31,7 @@ #include "Graph.hh" #include "Mode.hh" #include "Network.hh" +#include "PortDirection.hh" #include "Scene.hh" #include "Sdc.hh" #include "TimingArc.hh" @@ -124,6 +125,14 @@ StaState::isDisabledCondDefault(const Edge *edge) const && edge->timingArcSet()->isCondDefault(); } +bool +StaState::isDisabledBidirectInstPath(Edge *edge) const +{ + return (edge->isBidirectInstPath() + || edge->isBidirectPortPath()) + && !variables_->bidirectInstPathsEnabled(); +} + //////////////////////////////////////////////////////////////// size_t From 133580eeae424af876c3732a16a366c6957ddaa5 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 16 Jun 2026 12:00:17 -0700 Subject: [PATCH 26/61] Sta::findRequired(vertex) public Signed-off-by: James Cherry --- include/sta/Sta.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index 4f0701ff..da5da08b 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -1042,6 +1042,7 @@ public: int endpointViolationCount(const MinMax *min_max); // Find all required times after updateTiming(). void findRequireds(); + void findRequired(Vertex *vertex); std::string reportDelayCalc(Edge *edge, TimingArc *arc, const Scene *scene, @@ -1525,7 +1526,6 @@ protected: const Mode *mode, // Return value. PinSet &pins); - void findRequired(Vertex *vertex); void reportDelaysWrtClks(const Pin *pin, const Scene *scene, From 832c62b57952637b5f6959ca9a8c513524481723 Mon Sep 17 00:00:00 2001 From: Drew Lewis Date: Thu, 18 Jun 2026 16:52:14 -0400 Subject: [PATCH 27/61] Refactor DMP solver to use Eigen and implement Determinant Guarded solver (#450) This commit refactors the Dartu-Menezes-Pileggi (DMP) effective capacitance algorithm solver to use the Eigen library, and implements a Determinant Guarded solver to handle singular and near-singular Jacobians safely and efficiently. Key changes: 1. Refactored the DMP solver to use Eigen stack-based data structures, replacing the custom Crout LU decomposition and solver. 2. Extracted the linear solver logic into a dedicated helper function DmpAlg::solveNewtonStep. 3. Implemented a "Determinant Guarded" solver: - Manually checks the determinant of the Jacobian (safety guard). - Throws a DmpError if the determinant is dangerously close to zero (|det| < 1e-12), safely triggering the lumped capacitance fallback. - Otherwise, solves using Eigen's highly optimized analytical inverse (fast path). 4. Added documentation in the comments on how to easily swap back to LU decomposition with partial pivoting (PartialPivLU) if any numerical precision issues arise in the future. Benchmark Results (Optimized Release Build, 5,288 DMP calls): | Test Case | Calls | 1. Original (Crout LU) | 2. Eigen (PartialPivLU) | 3. Eigen (Determinant Guarded) | Speedup (3 vs 1) | Speedup (3 vs 2) | | :--- | :---: | :---: | :---: | :---: | :---: | :---: | | power | 2,608 | 1.8822 ms | 1.6791 ms | 1.2702 ms | +32.5% | +24.4% | | power_vcd | 2,608 | 1.8729 ms | 1.6704 ms | 1.2768 ms | +31.8% | +23.6% | | spef_parasitics | 24 | 0.0193 ms | 0.0187 ms | 0.0140 ms | +27.5% | +25.1% | | mcmm3 | 48 | 0.0728 ms | 0.0756 ms | 0.0817 ms | -12.2% | -8.1% | | Total DMP Time | 5,288 | 3.8472 ms | 3.4438 ms | 2.6427 ms | +31.3% | +23.3% | --- dcalc/DmpCeff.cc | 350 ++++++++++++++++++++++------------------------- dcalc/DmpCeff.hh | 46 ++++--- 2 files changed, 194 insertions(+), 202 deletions(-) diff --git a/dcalc/DmpCeff.cc b/dcalc/DmpCeff.cc index 5d0aef1d..6a37f348 100644 --- a/dcalc/DmpCeff.cc +++ b/dcalc/DmpCeff.cc @@ -31,6 +31,7 @@ // slew voltage is matched instead of y20 in eqn 12. #include "DmpCeff.hh" +#include #include #include @@ -137,20 +138,23 @@ DmpAlg::init(const LibertyLibrary *drvr_library, void DmpAlg::findDriverParams(double ceff) { + Eigen::Vector3d x = Eigen::Vector3d::Zero(); if (nr_order_ == 3) - x_[DmpParam::ceff] = ceff; + x[DmpParam::ceff] = ceff; auto [t_vth, t_vl, slew] = gateDelays(ceff); // Scale slew to 0-100% double dt = slew / (vh_ - vl_); double t0 = t_vth + std::log(1.0 - vth_) * rd_ * ceff - vth_ * dt; - x_[DmpParam::dt] = dt; - x_[DmpParam::t0] = t0; - newtonRaphson(); - t0_ = x_[DmpParam::t0]; - dt_ = x_[DmpParam::dt]; + x[DmpParam::dt] = dt; + x[DmpParam::t0] = t0; + newtonRaphson(x); + t0_ = x[DmpParam::t0]; + dt_ = x[DmpParam::dt]; + if (nr_order_ == 3) + ceff_ = x[DmpParam::ceff]; debugPrint(debug_, "dmp_ceff", 3, " t0 = {} dt = {} ceff = {}", units_->timeUnit()->asString(t0_), units_->timeUnit()->asString(dt_), - units_->capacitanceUnit()->asString(x_[DmpParam::ceff])); + units_->capacitanceUnit()->asString(ceff_)); if (debug_->check("dmp_ceff", 4)) showVo(); } @@ -241,21 +245,21 @@ DmpAlg::y0dcl(double t, } void -DmpAlg::showX() +DmpAlg::showX(const Eigen::Vector3d &x) { for (int i = 0; i < nr_order_; i++) - report_->report("{:4} {:12.3e}", dmp_param_index_strings[i], x_[i]); + report_->report("{:4} {:12.3e}", dmp_param_index_strings[i], x[i]); } void -DmpAlg::showFvec() +DmpAlg::showFvec(const Eigen::Vector3d &fvec) { for (int i = 0; i < nr_order_; i++) - report_->report("{:4} {:12.3e}", dmp_func_index_strings[i], fvec_[i]); + report_->report("{:4} {:12.3e}", dmp_func_index_strings[i], fvec[i]); } void -DmpAlg::showJacobian() +DmpAlg::showJacobian(const Eigen::Matrix3d &fjac) { std::string line = " "; for (int j = 0; j < nr_order_; j++) @@ -265,7 +269,7 @@ DmpAlg::showJacobian() line.clear(); line += sta::format("{:4} ", dmp_func_index_strings[i]); for (int j = 0; j < nr_order_; j++) - line += sta::format("{:12.3e} ", fjac_[i][j]); + line += sta::format("{:12.3e} ", fjac(i, j)); report_->reportLine(line); } } @@ -505,7 +509,9 @@ DmpCap::loadDelaySlew(const Pin *, } void -DmpCap::evalDmpEqns() +DmpCap::evalDmpEqns(Eigen::Vector3d &, + Eigen::Vector3d &, + Eigen::Matrix3d &) { } @@ -584,7 +590,6 @@ DmpPi::gateDelaySlew() double slew = 0.0; try { findDriverParamsPi(); - ceff_ = x_[DmpParam::ceff]; auto [table_delay, table_slew] = gateCapDelaySlew(ceff_); delay = table_delay; // slew = table_slew; @@ -623,60 +628,85 @@ DmpPi::findDriverParamsPi() // Given x_ as a vector of input parameters, fill fvec_ with the // equations evaluated at x_ and fjac_ with the jacobian evaluated at x_. void -DmpPi::evalDmpEqns() +DmpPi::evalDmpEqns(Eigen::Vector3d &x, + Eigen::Vector3d &fvec, + Eigen::Matrix3d &fjac) { - double t0 = x_[DmpParam::t0]; - double dt = x_[DmpParam::dt]; - double ceff = x_[DmpParam::ceff]; + const double t0 = x[DmpParam::t0]; + const double dt = x[DmpParam::dt]; + const double ceff = x[DmpParam::ceff]; - if (ceff < 0.0) + // Validate bounds to prevent mathematical domain errors. + if (ceff < 0.0) { throw DmpError("eqn eval failed: ceff < 0"); - if (ceff > (c1_ + c2_)) + } + if (ceff > (c1_ + c2_)) { throw DmpError("eqn eval failed: ceff > c2 + c1"); + } + if (dt <= 0.0) { + throw DmpError("eqn eval failed: dt < 0"); + } auto [t_vth, t_vl, slew] = gateDelays(ceff); - if (slew == 0.0) + if (slew == 0.0) { throw DmpError("eqn eval failed: slew = 0"); + } - double ceff_time = slew / (vh_ - vl_); - ceff_time = std::min(ceff_time, 1.4 * dt); + // ceff_time is bounded by 1.4 * dt. + const double ceff_time = std::min(slew / (vh_ - vl_), 1.4 * dt); - if (dt <= 0.0) - throw DmpError("eqn eval failed: dt < 0"); + // Pre-calculate exponential terms to avoid redundant calls to + // transcendental functions. + const double exp_p1_dt = exp2(-p1_ * dt); + const double exp_p2_dt = exp2(-p2_ * dt); + const double exp_dt_rd_ceff = exp2(-dt / (rd_ * ceff)); - double exp_p1_dt = exp2(-p1_ * dt); - double exp_p2_dt = exp2(-p2_ * dt); - double exp_dt_rd_ceff = exp2(-dt / (rd_ * ceff)); + // Evaluate function values (residuals). + const double y50 = y(t_vth, t0, dt, ceff).first; + const double y20 = y(t_vl, t0, dt, ceff).first; - double y50 = y(t_vth, t0, dt, ceff).first; - // Match Vl. - double y20 = y(t_vl, t0, dt, ceff).first; - fvec_[DmpFunc::ipi] = ipiIceff(t0, dt, ceff_time, ceff); - fvec_[DmpFunc::y50] = y50 - vth_; - fvec_[DmpFunc::y20] = y20 - vl_; - fjac_[DmpFunc::ipi][DmpParam::t0] = 0.0; - fjac_[DmpFunc::ipi][DmpParam::dt] = - (-A_ * dt + B_ * dt * exp_p1_dt - (2 * B_ / p1_) * (1.0 - exp_p1_dt) - + D_ * dt * exp_p2_dt - (2 * D_ / p2_) * (1.0 - exp_p2_dt) - + rd_ * ceff - * (dt + dt * exp_dt_rd_ceff - 2 * rd_ * ceff * (1.0 - exp_dt_rd_ceff))) - / (rd_ * dt * dt * dt); - fjac_[DmpFunc::ipi][DmpParam::ceff] = - (2 * rd_ * ceff - dt - (2 * rd_ * ceff + dt) * exp2(-dt / (rd_ * ceff))) - / (dt * dt); + fvec[DmpFunc::ipi] = ipiIceff(t0, dt, ceff_time, ceff); + fvec[DmpFunc::y50] = y50 - vth_; + fvec[DmpFunc::y20] = y20 - vl_; - std::tie(fjac_[DmpFunc::y20][DmpParam::t0], - fjac_[DmpFunc::y20][DmpParam::dt], - fjac_[DmpFunc::y20][DmpParam::ceff]) = dy(t_vl, t0, dt, ceff); + // Pre-calculate common sub-expressions for the Jacobian derivatives. + const double b_div_p1 = B_ / p1_; + const double d_div_p2 = D_ / p2_; + const double rd_ceff = rd_ * ceff; - std::tie(fjac_[DmpFunc::y50][DmpParam::t0], - fjac_[DmpFunc::y50][DmpParam::dt], - fjac_[DmpFunc::y50][DmpParam::ceff]) = dy(t_vth, t0, dt, ceff); + // Row 1 (Ipi derivatives). + fjac(DmpFunc::ipi, DmpParam::t0) = 0.0; + + // Derivative w.r.t dt (broken down into physical terms). + const double term_a = -A_ * dt; + const double term_b = + B_ * dt * exp_p1_dt - 2.0 * b_div_p1 * (1.0 - exp_p1_dt); + const double term_d = + D_ * dt * exp_p2_dt - 2.0 * d_div_p2 * (1.0 - exp_p2_dt); + const double term_rd = rd_ceff + * (dt + dt * exp_dt_rd_ceff - 2.0 * rd_ceff * (1.0 - exp_dt_rd_ceff)); + + fjac(DmpFunc::ipi, DmpParam::dt) = + (term_a + term_b + term_d + term_rd) / (rd_ * dt * dt * dt); + + // Derivative w.r.t ceff (reusing exp_dt_rd_ceff). + const double two_rd_ceff = 2.0 * rd_ceff; + fjac(DmpFunc::ipi, DmpParam::ceff) = + (two_rd_ceff - dt - (two_rd_ceff + dt) * exp_dt_rd_ceff) / (dt * dt); + + // Rows 2 & 3 (y20 and y50 derivatives). + std::tie(fjac(DmpFunc::y20, DmpParam::t0), + fjac(DmpFunc::y20, DmpParam::dt), + fjac(DmpFunc::y20, DmpParam::ceff)) = dy(t_vl, t0, dt, ceff); + + std::tie(fjac(DmpFunc::y50, DmpParam::t0), + fjac(DmpFunc::y50, DmpParam::dt), + fjac(DmpFunc::y50, DmpParam::ceff)) = dy(t_vth, t0, dt, ceff); if (debug_->check("dmp_ceff", 4)) { - showX(); - showFvec(); - showJacobian(); + showX(x); + showFvec(fvec); + showJacobian(fjac); report_->report("................."); } } @@ -741,35 +771,37 @@ DmpOnePole::DmpOnePole(StaState *sta) : } void -DmpOnePole::evalDmpEqns() +DmpOnePole::evalDmpEqns(Eigen::Vector3d &x, + Eigen::Vector3d &fvec, + Eigen::Matrix3d &fjac) { - double t0 = x_[DmpParam::t0]; - double dt = x_[DmpParam::dt]; + double t0 = x[DmpParam::t0]; + double dt = x[DmpParam::dt]; auto [t_vth, t_vl, ignore1] = gateDelays(ceff_); double ignore2; if (dt <= 0.0) - dt = x_[DmpParam::dt] = (t_vl - t_vth) / 100; + dt = x[DmpParam::dt] = (t_vl - t_vth) / 100; - fvec_[DmpFunc::y50] = y(t_vth, t0, dt, ceff_).first - vth_; - fvec_[DmpFunc::y20] = y(t_vl, t0, dt, ceff_).first - vl_; + fvec[DmpFunc::y50] = y(t_vth, t0, dt, ceff_).first - vth_; + fvec[DmpFunc::y20] = y(t_vl, t0, dt, ceff_).first - vl_; if (debug_->check("dmp_ceff", 4)) { - showX(); - showFvec(); + showX(x); + showFvec(fvec); } - std::tie(fjac_[DmpFunc::y20][DmpParam::t0], - fjac_[DmpFunc::y20][DmpParam::dt], + std::tie(fjac(DmpFunc::y20, DmpParam::t0), + fjac(DmpFunc::y20, DmpParam::dt), ignore2) = dy(t_vl, t0, dt, ceff_); - std::tie(fjac_[DmpFunc::y50][DmpParam::t0], - fjac_[DmpFunc::y50][DmpParam::dt], + std::tie(fjac(DmpFunc::y50, DmpParam::t0), + fjac(DmpFunc::y50, DmpParam::dt), ignore2) = dy(t_vth, t0, dt, ceff_); if (debug_->check("dmp_ceff", 4)) { - showJacobian(); + showJacobian(fjac); report_->report("................."); } } @@ -870,136 +902,86 @@ DmpZeroC2::voCrossingUpperBound() // driver_param_tol_ is the scale that all changes in x must be under (1.0 = 100%). // evalDmpEqns() fills fvec_ and fjac_. void -DmpAlg::newtonRaphson() +DmpAlg::newtonRaphson(Eigen::Vector3d &x) { - for (int k = 0; k < newton_raphson_max_iter_; k++) { - evalDmpEqns(); - for (int i = 0; i < nr_order_; i++) - // Right-hand side of linear equations. - p_[i] = -fvec_[i]; - luDecomp(); - luSolve(); + Eigen::Vector3d fvec = Eigen::Vector3d::Zero(); + Eigen::Matrix3d fjac = Eigen::Matrix3d::Zero(); + Eigen::Vector3d p = Eigen::Vector3d::Zero(); + + for (int k = 0; k < newton_raphson_max_iter_; k++) { + evalDmpEqns(x, fvec, fjac); + + p = solveNewtonStep(fjac, fvec); + + // Note: 'auto' on Eigen expressions captures the expression template + // and doesn't form a temporary vector/matrix, avoiding extra + // allocations. + auto p_abs = p.head(nr_order_).array().abs(); + auto x_tol = x.head(nr_order_).array().abs() * driver_param_tol_; + bool all_under_x_tol = (p_abs <= x_tol).all(); + x.head(nr_order_) += p.head(nr_order_); - bool all_under_x_tol = true; - for (int i = 0; i < nr_order_; i++) { - if (std::abs(p_[i]) > std::abs(x_[i]) * driver_param_tol_) - all_under_x_tol = false; - x_[i] += p_[i]; - } if (all_under_x_tol) { - evalDmpEqns(); return; } } throw DmpError("Newton-Raphson max iterations exceeded"); } -// luDecomp, luSolve based on MatClass from C. R. Birchenhall, -// University of Manchester -// ftp://ftp.mcc.ac.uk/pub/matclass/libmat.tar.Z - -// Crout's Method of LU decomposition of square matrix, with implicit -// partial pivoting. fjac_ is overwritten. U is explicit in the upper -// triangle and L is in multiplier form in the subdiagionals i.e. subdiag -// a[i,j] is the multiplier used to eliminate the [i,j] term. +// Solves the linear system J * p = -f (Jacobian * step = -residuals) for the Newton step. // -// Replaces fjac_[0..nr_order_-1][*] by the LU decomposition. -// index_[0..nr_order_-1] is an output vector of the row permutations. -void -DmpAlg::luDecomp() +// This implementation uses a "Determinant Guarded" solver: +// 1. Manually computes/checks the determinant of the Jacobian (safety guard). +// 2. If the determinant is dangerously close to zero (< 1e-12), throws a DmpError. +// 3. Otherwise, uses Eigen's highly optimized analytical inverse (fast path). +// +// Performance Note: +// Analytical solvers are extremely fast for 2x2 and 3x3 matrices because they +// contain no loops or branching, allowing the compiler to unroll them and use +// SIMD instructions. This yields a ~23% speedup over LU decomposition in optimized builds. +// +// Numerical Stability Note: +// If this analytical approach ever causes numerical issues (e.g., in extremely +// ill-conditioned systems where the determinant is > 1e-12 but still causes loss +// of precision), it can be TRIVIALLY swapped back to a robust LU decomposition +// with partial pivoting by replacing the body of this function with: +// +// Eigen::Vector3d p = Eigen::Vector3d::Zero(); +// if (nr_order_ == 2) { +// auto lu = fjac.topLeftCorner<2, 2>().partialPivLu(); +// if (std::abs(lu.matrixLU().diagonal().prod()) < 1e-12) { +// throw DmpError("Jacobian is singular (order 2)"); +// } +// p.head<2>() = lu.solve(-fvec.head<2>()); +// return p; +// } +// auto lu = fjac.partialPivLu(); +// if (std::abs(lu.matrixLU().diagonal().prod()) < 1e-12) { +// throw DmpError("Jacobian is singular (order 3)"); +// } +// p = lu.solve(-fvec); +// return p; +// +Eigen::Vector3d +DmpAlg::solveNewtonStep(const Eigen::Matrix3d &fjac, + const Eigen::Vector3d &fvec) { - const int size = nr_order_; + Eigen::Vector3d p = Eigen::Vector3d::Zero(); + if (nr_order_ == 2) { + double det = fjac.topLeftCorner<2, 2>().determinant(); + if (std::abs(det) < 1e-12) { + throw DmpError("Jacobian is singular (order 2)"); + } + p.head<2>() = fjac.topLeftCorner<2, 2>().inverse() * -fvec.head<2>(); + return p; + } - // Find implicit scaling factors. - for (int i = 0; i < size; i++) { - double big = 0.0; - for (int j = 0; j < size; j++) { - double temp = std::abs(fjac_[i][j]); - big = std::max(temp, big); - } - if (big == 0.0) - throw DmpError("LU decomposition: no non-zero row element"); - scale_[i] = 1.0 / big; - } - int size_1 = size - 1; - for (int j = 0; j < size; j++) { - // Run down jth column from top to diag, to form the elements of U. - for (int i = 0; i < j; i++) { - double sum = fjac_[i][j]; - for (int k = 0; k < i; k++) - sum -= fjac_[i][k] * fjac_[k][j]; - fjac_[i][j] = sum; - } - // Run down jth subdiag to form the residuals after the elimination - // of the first j-1 subdiags. These residuals diviyded by the - // appropriate diagonal term will become the multipliers in the - // elimination of the jth. subdiag. Find index of largest scaled - // term in imax. - double big = 0.0; - int imax = 0; - for (int i = j; i < size; i++) { - double sum = fjac_[i][j]; - for (int k = 0; k < j; k++) - sum -= fjac_[i][k] * fjac_[k][j]; - fjac_[i][j] = sum; - double dum = scale_[i] * std::abs(sum); - if (dum >= big) { - big = dum; - imax = i; - } - } - // Permute current row with imax. - if (j != imax) { - // Yes, do so... - for (int k = 0; k < size; k++) { - double dum = fjac_[imax][k]; - fjac_[imax][k] = fjac_[j][k]; - fjac_[j][k] = dum; - } - scale_[imax] = scale_[j]; - } - index_[j] = imax; - // If diag term is not zero divide subdiag to form multipliers. - if (fjac_[j][j] == 0.0) - fjac_[j][j] = tiny_double_; - if (j != size_1) { - double pivot = 1.0 / fjac_[j][j]; - for (int i = j + 1; i < size; i++) - fjac_[i][j] *= pivot; - } - } -} - -// Solves fjac_ * x = p_ for x, assuming fjac_ is LU form from luDecomp. -// Solution overwrites p_. -void -DmpAlg::luSolve() -{ - const int size = nr_order_; - - // Transform p_ allowing for leading zeros. - int non_zero = -1; - for (int i = 0; i < size; i++) { - int iperm = index_[i]; - double sum = p_[iperm]; - p_[iperm] = p_[i]; - if (non_zero != -1) { - for (int j = non_zero; j <= i - 1; j++) - sum -= fjac_[i][j] * p_[j]; - } - else { - if (sum != 0.0) - non_zero = i; - } - p_[i] = sum; - } - // Backsubstitution. - for (int i = size - 1; i >= 0; i--) { - double sum = p_[i]; - for (int j = i + 1; j < size; j++) - sum -= fjac_[i][j] * p_[j]; - p_[i] = sum / fjac_[i][i]; + double det = fjac.determinant(); + if (std::abs(det) < 1e-12) { + throw DmpError("Jacobian is singular (order 3)"); } + p = fjac.inverse() * -fvec; + return p; } //////////////////////////////////////////////////////////////// diff --git a/dcalc/DmpCeff.hh b/dcalc/DmpCeff.hh index a2e8a144..6db5f338 100644 --- a/dcalc/DmpCeff.hh +++ b/dcalc/DmpCeff.hh @@ -27,6 +27,9 @@ #include #include +#include +#include + #include "LibertyClass.hh" #include "LumpedCapDelayCalc.hh" @@ -59,18 +62,21 @@ public: double elmore); double ceff() { return ceff_; } - // Given x_ as a vector of input parameters, fill fvec_ with the - // equations evaluated at x_ and fjac_ with the jabobian evaluated at x_. - virtual void evalDmpEqns() = 0; + virtual void + evalDmpEqns(Eigen::Vector3d &x, + Eigen::Vector3d &fvec, + Eigen::Matrix3d &fjac) = 0; // Output response to vs(t) ramp driving pi model load (vo, dvo_dt). std::pair Vo(double t); // Load response to driver waveform (vl, dvl/dt). std::pair Vl(double t); protected: - void luDecomp(); - void luSolve(); - void newtonRaphson(); + void newtonRaphson(Eigen::Vector3d &x); + // Solves J * p = -f using a fast analytical solver with singularity checks. + // Can be easily swapped to LU with partial pivoting if needed. + Eigen::Vector3d solveNewtonStep(const Eigen::Matrix3d &fjac, + const Eigen::Vector3d &fvec); // Find driver parameters t0, delta_t, Ceff. void findDriverParams(double ceff); std::pair gateCapDelaySlew(double ceff); @@ -84,9 +90,9 @@ protected: double cl); double y0dcl(double t, double cl); - void showX(); - void showFvec(); - void showJacobian(); + void showX(const Eigen::Vector3d &x); + void showFvec(const Eigen::Vector3d &fvec); + void showJacobian(const Eigen::Matrix3d &fjac); std::pair findDriverDelaySlew(); double findVoCrossing(double vth, double t_lower, @@ -148,12 +154,7 @@ protected: static constexpr int max_nr_order_ = 3; - std::array x_; - std::array fvec_; - std::array, max_nr_order_> fjac_; - std::array scale_; - std::array p_; - std::array index_; + // Driver slew used to check load delay. double drvr_slew_; @@ -194,7 +195,10 @@ public: std::pair gateDelaySlew() override; std::pair loadDelaySlew(const Pin *, double elmore) override; - void evalDmpEqns() override; + void + evalDmpEqns(Eigen::Vector3d &x, + Eigen::Vector3d &fvec, + Eigen::Matrix3d &fjac) override; protected: double voCrossingUpperBound() override; @@ -219,7 +223,10 @@ public: double rpi, double c1) override; std::pair gateDelaySlew() override; - void evalDmpEqns() override; + void + evalDmpEqns(Eigen::Vector3d &x, + Eigen::Vector3d &fvec, + Eigen::Matrix3d &fjac) override; protected: double voCrossingUpperBound() override; @@ -255,7 +262,10 @@ class DmpOnePole : public DmpAlg { public: DmpOnePole(StaState *sta); - void evalDmpEqns() override; + void + evalDmpEqns(Eigen::Vector3d &x, + Eigen::Vector3d &fvec, + Eigen::Matrix3d &fjac) override; protected: double voCrossingUpperBound() override; From 9a11f094b9e499d6989cf66cd458ea9d3537e6e2 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 17 Jun 2026 18:27:48 -0700 Subject: [PATCH 28/61] typos/format Signed-off-by: James Cherry --- search/Latches.cc | 4 ++-- search/PathEnum.cc | 3 ++- search/Search.cc | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/search/Latches.cc b/search/Latches.cc index f8d5b68e..73fc8929 100644 --- a/search/Latches.cc +++ b/search/Latches.cc @@ -359,7 +359,7 @@ Latches::latchOutArrival(const Path *data_path, arc_delay = search_->deratedDelay(data_vertex, d_q_arc, d_q_edge, false, min_max, dcalc_ap, sdc); q_arrival = delaySum(data_path->arrival(), arc_delay, this); - // Copy the data tag but remove the drprClkPath. + // Copy the data tag but remove the crprClkPath. // Levelization does not traverse latch D->Q edges, so in some cases // level(Q) < level(D) // Note that @@ -368,7 +368,7 @@ Latches::latchOutArrival(const Path *data_path, // level(crprClkPath(data)) == level(Q) // or some other downstream vertex. // This can lead to data races when finding arrivals at the same level - // use multiple threads. + // with multiple threads. // Kill the crprClklPath to be safe. const ClkInfo *data_clk_info = data_path->clkInfo(this); const ClkInfo *q_clk_info = diff --git a/search/PathEnum.cc b/search/PathEnum.cc index 7c65f26e..7abd4a80 100644 --- a/search/PathEnum.cc +++ b/search/PathEnum.cc @@ -381,7 +381,8 @@ PathEnumFaninVisitor::visitEdge(const Pin *from_pin, Path *from_path = from_iter.next(); const Mode *mode = from_path->mode(this); const Sdc *sdc = mode->sdc(); - if (pred_->searchFrom(from_vertex, mode) && pred_->searchThru(edge, mode) + if (pred_->searchFrom(from_vertex, mode) + && pred_->searchThru(edge, mode) && pred_->searchTo(to_vertex, mode) // Fanin paths are broken by path delay internal pin startpoints. && !sdc->isPathDelayInternalFromBreak(to_pin)) { diff --git a/search/Search.cc b/search/Search.cc index 8e78f358..28277d3e 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -95,9 +95,9 @@ EvalPred::searchThru(Edge *edge, { const TimingRole *role = edge->role(); return SearchPred0::searchThru(edge, mode) - && (sta_->variables()->dynamicLoopBreaking() || !edge->isDisabledLoop()) - && (search_thru_latches_ || role->isLatchDtoQ() - || sta_->latches()->latchDtoQState(edge, mode) == LatchEnableState::open); + && (sta_->variables()->dynamicLoopBreaking() || !edge->isDisabledLoop()) + && (search_thru_latches_ || role->isLatchDtoQ() + || sta_->latches()->latchDtoQState(edge, mode) == LatchEnableState::open); } bool From 1b71a26667a1d252ed3586f13aa383774d2d97c5 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 17 Jun 2026 18:29:15 -0700 Subject: [PATCH 29/61] Levelize::isRoot bidirect leftover Signed-off-by: James Cherry --- search/Levelize.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/search/Levelize.cc b/search/Levelize.cc index baacfdb3..76788b40 100644 --- a/search/Levelize.cc +++ b/search/Levelize.cc @@ -187,9 +187,7 @@ Levelize::isRoot(Vertex *vertex) if (searchThru(edge)) return false; } - // Levelize bidirect driver as if it was a fanout of the bidirect load. - return !(graph_delay_calc_->bidirectDrvrSlewFromLoad(vertex->pin()) - && vertex->isBidirectDriver()); + return true; } bool From 0e79e35d17556c0adfe17e2b4b2addc21a734e4d Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 17 Jun 2026 18:29:59 -0700 Subject: [PATCH 30/61] indent Signed-off-by: James Cherry --- dcalc/GraphDelayCalc.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dcalc/GraphDelayCalc.cc b/dcalc/GraphDelayCalc.cc index c61ebfed..6fac6faa 100644 --- a/dcalc/GraphDelayCalc.cc +++ b/dcalc/GraphDelayCalc.cc @@ -378,7 +378,7 @@ void GraphDelayCalc::seedInvalidDelays() { for (Vertex *vertex : invalid_delays_) - iter_->enqueue(vertex); + iter_->enqueue(vertex); invalid_delays_.clear(); } From 9e39e42703da2ffaa6d1b31f875fbfbf61f9e270 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 18 Jun 2026 13:38:47 -0700 Subject: [PATCH 31/61] comment Signed-off-by: James Cherry --- search/Search.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/search/Search.cc b/search/Search.cc index 28277d3e..22fe70b0 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -1388,9 +1388,9 @@ ArrivalVisitor::pruneCrprArrivals() } void -Search::enqueueLatchDataOutputs(Vertex *vertex) +Search::enqueueLatchDataOutputs(Vertex *latch_data) { - VertexOutEdgeIterator edge_iter(vertex, graph_); + VertexOutEdgeIterator edge_iter(latch_data, graph_); while (edge_iter.hasNext()) { Edge *edge = edge_iter.next(); if (edge->role() == TimingRole::latchDtoQ()) { @@ -2068,9 +2068,8 @@ PathVisitor::visitFromPath(const Pin *from_pin, if (gclk) { Genclks *genclks = mode->genclks(); VertexSet *fanins = genclks->fanins(gclk); - // Note: encountering a latch d->q edge means find the - // latch feedback edges, but they are referenced for - // other edges in the gen clk fanout. + // Note: encountering a latch d->q edge means we need to find + // latch feedback edges. if (role == TimingRole::latchDtoQ()) genclks->findLatchFdbkEdges(gclk); EdgeSet &fdbk_edges = genclks->latchFdbkEdges(gclk); From 1c6ab172e2870bee72127e330c1380e79199a8b7 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 17 Jun 2026 19:54:36 -0700 Subject: [PATCH 32/61] eval latches out of bfs Signed-off-by: James Cherry --- include/sta/Search.hh | 6 +-- search/PathEnum.cc | 10 +++++ search/Search.cc | 92 +++++++++++++++++-------------------------- 3 files changed, 49 insertions(+), 59 deletions(-) diff --git a/include/sta/Search.hh b/include/sta/Search.hh index d6db126e..364e6dfb 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -75,6 +75,8 @@ using ExceptionPathSeq = std::vector; class Search : public StaState { public: + bool postpone_latch_outputs_{false}; + Search(StaState *sta); ~Search() override; void copyState(const StaState *sta) override; @@ -530,9 +532,6 @@ protected: const MinMax *min_max) const; void seedRequireds(); void seedInvalidRequireds(); - [[nodiscard]] bool havePendingLatchOutputs(); - void clearPendingLatchOutputs(); - void enqueuePendingLatchOutputs(); void findFilteredArrivals(bool thru_latches); void findArrivalsSeed(); void seedFilterStarts(); @@ -669,7 +668,6 @@ protected: std::mutex filtered_arrivals_lock_; bool found_downstream_clk_pins_{false}; - bool postpone_latch_outputs_{false}; std::vector enum_paths_; VisitPathEnds *visit_path_ends_; diff --git a/search/PathEnum.cc b/search/PathEnum.cc index 7abd4a80..3be9e114 100644 --- a/search/PathEnum.cc +++ b/search/PathEnum.cc @@ -356,7 +356,9 @@ PathEnumFaninVisitor::visitFaninPathsThru(Path *before_div, prev_vertex_ = prev_vertex; visited_fanins_.clear(); unique_edge_divs_.clear(); + search_->postpone_latch_outputs_ = false; visitFaninPaths(before_div_->vertex(this)); + search_->postpone_latch_outputs_ = true; if (unique_edges_) { for (auto [vertex_edge, div] : unique_edge_divs_) @@ -422,6 +424,14 @@ PathEnumFaninVisitor::visitFromToPath(const Pin *, Arrival & /* to_arrival */, const MinMax *) { + debugPrint(debug_, "path_enum", 3, "visit fanin {} -> {} {} {}", + from_path->to_string(this), + to_vertex->to_string(this), to_rf->shortName(), + delayAsString( + search_->deratedDelay( + from_vertex, arc, edge, false, from_path->minMax(this), + from_path->dcalcAnalysisPtIndex(this), from_path->sdc(this)), + this)); // These paths fanin to before_div_ so we know to_vertex matches. if ((!unique_pins_ || from_vertex != prev_vertex_) && (!unique_edges_ || from_vertex != prev_vertex_ diff --git a/search/Search.cc b/search/Search.cc index 22fe70b0..d943d3fc 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -326,7 +326,7 @@ Search::clear() deletePathGroups(); deletePaths(); deleteTags(); - clearPendingLatchOutputs(); + pending_latch_outputs_.clear(); pending_clk_endpoints_.clear(); deleteFilter(); found_downstream_clk_pins_ = false; @@ -644,18 +644,26 @@ Search::findFilteredArrivals(bool thru_latches) // Search always_to_endpoint to search from exisiting arrivals at // fanin startpoints to reach -thru/-to endpoints. arrival_visitor_->init(true, false, eval_pred_); - // Iterate until data arrivals at all latches stop changing. - postpone_latch_outputs_ = true; enqueuePendingClkFanouts(); - for (int pass = 1; pass == 1 || (thru_latches && havePendingLatchOutputs()); + postpone_latch_outputs_ = true; + bool have_pending_latch_outputs = false; + // Iterate until data arrivals at all latches stop changing. + for (int pass = 1; + pass == 1 || (thru_latches && have_pending_latch_outputs); pass++) { - if (thru_latches) - enqueuePendingLatchOutputs(); debugPrint(debug_, "search", 1, "find arrivals pass {}", pass); + int arrival_count = arrival_iter_->visitParallel(max_level, arrival_visitor_); - deleteTagsPrev(); debugPrint(debug_, "search", 1, "found {} arrivals", arrival_count); + + have_pending_latch_outputs = !pending_latch_outputs_.empty(); postpone_latch_outputs_ = false; + for (Vertex *latch_vertex : pending_latch_outputs_) + arrival_visitor_->visit(latch_vertex); + pending_latch_outputs_.clear(); + postpone_latch_outputs_ = true; + + deleteTagsPrev(); } arrivals_exist_ = true; } @@ -983,41 +991,23 @@ Search::findAllArrivals(bool thru_latches, if (!clks_only) enqueuePendingClkFanouts(); arrival_visitor_->init(false, clks_only, eval_pred_); - // Iterate until data arrivals at all latches stop changing. postpone_latch_outputs_ = true; - for (int pass = 1; pass == 1 || (thru_latches && havePendingLatchOutputs()); + bool have_pending_latch_outputs = false; + // Iterate until data arrivals at all latches stop changing. + for (int pass = 1; pass == 1 || (thru_latches && have_pending_latch_outputs); pass++) { - enqueuePendingLatchOutputs(); debugPrint(debug_, "search", 1, "find arrivals pass {}", pass); findArrivals1(levelize_->maxLevel()); - if (pass > 2) - postpone_latch_outputs_ = false; + + have_pending_latch_outputs = !pending_latch_outputs_.empty(); + postpone_latch_outputs_ = false; + for (Vertex *latch_vertex : pending_latch_outputs_) + arrival_visitor_->visit(latch_vertex); + pending_latch_outputs_.clear(); + postpone_latch_outputs_ = true; } } -bool -Search::havePendingLatchOutputs() -{ - return !pending_latch_outputs_.empty(); -} - -void -Search::clearPendingLatchOutputs() -{ - pending_latch_outputs_.clear(); -} - -void -Search::enqueuePendingLatchOutputs() -{ - for (Vertex *latch_vertex : pending_latch_outputs_) { - debugPrint(debug_, "search", 2, "enqueue latch output {}", - latch_vertex->to_string(this)); - arrival_iter_->enqueue(latch_vertex); - } - clearPendingLatchOutputs(); -} - void Search::enqueuePendingClkFanouts() { @@ -1148,6 +1138,17 @@ ArrivalVisitor::visit(Vertex *vertex) { debugPrint(debug_, "search", 2, "find arrivals {}", vertex->to_string(this)); + + if (search_->postponeLatchOutputs()) { + VertexInEdgeIterator edge_iter(vertex, graph_); + while (edge_iter.hasNext()) { + Edge *edge = edge_iter.next(); + if (edge->role()->isLatchDtoQ()) { + search_->enqueueLatchOutput(edge->to(graph_)); + return; + } + } + } Pin *pin = vertex->pin(); tag_bldr_->init(vertex); has_fanin_one_ = graph_->hasFaninOne(vertex); @@ -2139,26 +2140,7 @@ PathVisitor::visitFromPath(const Pin *from_pin, } else if (edge->role() == TimingRole::latchDtoQ()) { if (min_max == MinMax::max() && clk) { - bool postponed = false; - if (search_->postponeLatchOutputs()) { - const Path *from_clk_path = from_clk_info->crprClkPath(this); - if (from_clk_path) { - Vertex *d_clk_vertex = from_clk_path->vertex(this); - Level d_clk_level = d_clk_vertex->level(); - Level q_level = to_vertex->level(); - if (d_clk_level >= q_level) { - // Crpr clk path on latch data input is required to find Q - // arrival. If the data clk path level is >= Q level the - // crpr clk path prev_path pointers are not complete. - debugPrint(debug_, "search", 3, "postponed latch eval {} {} -> {} {}", - d_clk_level, d_clk_vertex->to_string(this), - edge->to_string(this), q_level); - postponed = true; - search_->enqueueLatchOutput(to_vertex); - } - } - } - if (!postponed) { + if (!search_->postponeLatchOutputs()) { arc_delay = search_->deratedDelay(from_vertex, arc, edge, false, min_max, dcalc_ap, sdc); latches_->latchOutArrival(from_path, arc, edge, to_tag, arc_delay, From dea1ea2c133f2954b1b76f7eac084f94428ce1f3 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 17 Jun 2026 20:23:42 -0700 Subject: [PATCH 33/61] rm Search::postpone_latch_outputs_ Signed-off-by: James Cherry --- include/sta/Search.hh | 8 +++--- search/Genclks.cc | 2 +- search/PathEnum.cc | 4 +-- search/Search.cc | 67 ++++++++++++++++++++++--------------------- 4 files changed, 41 insertions(+), 40 deletions(-) diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 364e6dfb..8122752e 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -75,8 +75,6 @@ using ExceptionPathSeq = std::vector; class Search : public StaState { public: - bool postpone_latch_outputs_{false}; - Search(StaState *sta); ~Search() override; void copyState(const StaState *sta) override; @@ -408,7 +406,6 @@ public: void checkPrevPaths() const; void deletePaths(Vertex *vertex); void deleteTagGroup(TagGroup *group); - bool postponeLatchOutputs() const { return postpone_latch_outputs_; } void saveEnumPath(Path *path); bool isSrchRoot(Vertex *vertex, const Mode *mode) const; @@ -710,7 +707,8 @@ public: bool make_tag_cache, const StaState *sta); ~PathVisitor() override; - virtual void visitFaninPaths(Vertex *to_vertex); + virtual void visitFaninPaths(Vertex *to_vertex, + bool with_latch_edges); virtual void visitFanoutPaths(Vertex *from_vertex); // Return false to stop visiting. virtual bool visitFromToPath(const Pin *from_pin, @@ -777,6 +775,8 @@ public: SearchPred *pred); void copyState(const StaState *sta) override; void visit(Vertex *vertex) override; + void visit(Vertex *vertex, + bool with_latch_edges); VertexVisitor *copy() const override; // Return false to stop visiting. bool visitFromToPath(const Pin *from_pin, diff --git a/search/Genclks.cc b/search/Genclks.cc index 851a601a..acf801b7 100644 --- a/search/Genclks.cc +++ b/search/Genclks.cc @@ -748,7 +748,7 @@ GenclkSrcArrivalVisitor::visit(Vertex *vertex) tag_bldr_->init(vertex); has_fanin_one_ = graph_->hasFaninOne(vertex); genclks_->copyGenClkSrcPaths(vertex, tag_bldr_); - visitFaninPaths(vertex); + visitFaninPaths(vertex, true); // Propagate beyond the clock tree to reach generated clk roots. insert_iter_->enqueueAdjacentVertices(vertex, &srch_pred_, mode_); search_->setVertexArrivals(vertex, tag_bldr_); diff --git a/search/PathEnum.cc b/search/PathEnum.cc index 3be9e114..e433c703 100644 --- a/search/PathEnum.cc +++ b/search/PathEnum.cc @@ -356,9 +356,7 @@ PathEnumFaninVisitor::visitFaninPathsThru(Path *before_div, prev_vertex_ = prev_vertex; visited_fanins_.clear(); unique_edge_divs_.clear(); - search_->postpone_latch_outputs_ = false; - visitFaninPaths(before_div_->vertex(this)); - search_->postpone_latch_outputs_ = true; + visitFaninPaths(before_div_->vertex(this), true); if (unique_edges_) { for (auto [vertex_edge, div] : unique_edge_divs_) diff --git a/search/Search.cc b/search/Search.cc index d943d3fc..08829669 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -645,7 +645,6 @@ Search::findFilteredArrivals(bool thru_latches) // fanin startpoints to reach -thru/-to endpoints. arrival_visitor_->init(true, false, eval_pred_); enqueuePendingClkFanouts(); - postpone_latch_outputs_ = true; bool have_pending_latch_outputs = false; // Iterate until data arrivals at all latches stop changing. for (int pass = 1; @@ -657,11 +656,9 @@ Search::findFilteredArrivals(bool thru_latches) debugPrint(debug_, "search", 1, "found {} arrivals", arrival_count); have_pending_latch_outputs = !pending_latch_outputs_.empty(); - postpone_latch_outputs_ = false; - for (Vertex *latch_vertex : pending_latch_outputs_) - arrival_visitor_->visit(latch_vertex); + for (Vertex *latch_output : pending_latch_outputs_) + arrival_visitor_->visit(latch_output, true); pending_latch_outputs_.clear(); - postpone_latch_outputs_ = true; deleteTagsPrev(); } @@ -991,20 +988,19 @@ Search::findAllArrivals(bool thru_latches, if (!clks_only) enqueuePendingClkFanouts(); arrival_visitor_->init(false, clks_only, eval_pred_); - postpone_latch_outputs_ = true; bool have_pending_latch_outputs = false; // Iterate until data arrivals at all latches stop changing. - for (int pass = 1; pass == 1 || (thru_latches && have_pending_latch_outputs); + for (int pass = 1; + pass == 1 || (thru_latches && have_pending_latch_outputs); pass++) { debugPrint(debug_, "search", 1, "find arrivals pass {}", pass); + findArrivals1(levelize_->maxLevel()); have_pending_latch_outputs = !pending_latch_outputs_.empty(); - postpone_latch_outputs_ = false; - for (Vertex *latch_vertex : pending_latch_outputs_) - arrival_visitor_->visit(latch_vertex); + for (Vertex *latch_output : pending_latch_outputs_) + arrival_visitor_->visit(latch_output, true); pending_latch_outputs_.clear(); - postpone_latch_outputs_ = true; } } @@ -1135,27 +1131,32 @@ ArrivalVisitor::setAlwaysToEndpoints(bool to_endpoints) void ArrivalVisitor::visit(Vertex *vertex) +{ + VertexInEdgeIterator edge_iter(vertex, graph_); + while (edge_iter.hasNext()) { + Edge *edge = edge_iter.next(); + if (edge->role()->isLatchDtoQ()) { + search_->enqueueLatchOutput(vertex); + return; + } + } + visit(vertex, false); +} + +void +ArrivalVisitor::visit(Vertex *vertex, + bool with_latch_edges) { debugPrint(debug_, "search", 2, "find arrivals {}", vertex->to_string(this)); - if (search_->postponeLatchOutputs()) { - VertexInEdgeIterator edge_iter(vertex, graph_); - while (edge_iter.hasNext()) { - Edge *edge = edge_iter.next(); - if (edge->role()->isLatchDtoQ()) { - search_->enqueueLatchOutput(edge->to(graph_)); - return; - } - } - } Pin *pin = vertex->pin(); tag_bldr_->init(vertex); has_fanin_one_ = graph_->hasFaninOne(vertex); if (crpr_active_ && !has_fanin_one_) tag_bldr_no_crpr_->init(vertex); - visitFaninPaths(vertex); + visitFaninPaths(vertex, with_latch_edges); if (crpr_active_ && search_->crprPathPruningEnabled() // No crpr for ideal clocks. @@ -1949,12 +1950,16 @@ PathVisitor::~PathVisitor() } void -PathVisitor::visitFaninPaths(Vertex *to_vertex) +PathVisitor::visitFaninPaths(Vertex *to_vertex, + bool with_latch_edges) { VertexInEdgeIterator edge_iter(to_vertex, graph_); while (edge_iter.hasNext()) { Edge *edge = edge_iter.next(); - if (!edge->role()->isTimingCheck()) { + const TimingRole *role = edge->role(); + if (!(role->isTimingCheck() + || (role == TimingRole::latchDtoQ() + && !with_latch_edges))) { Vertex *from_vertex = edge->from(graph_); const Pin *from_pin = from_vertex->pin(); const Pin *to_pin = to_vertex->pin(); @@ -2140,14 +2145,12 @@ PathVisitor::visitFromPath(const Pin *from_pin, } else if (edge->role() == TimingRole::latchDtoQ()) { if (min_max == MinMax::max() && clk) { - if (!search_->postponeLatchOutputs()) { - arc_delay = search_->deratedDelay(from_vertex, arc, edge, false, min_max, - dcalc_ap, sdc); - latches_->latchOutArrival(from_path, arc, edge, to_tag, arc_delay, - to_arrival); - if (to_tag) - to_tag = search_->thruTag(to_tag, edge, to_rf, tag_cache_); - } + arc_delay = search_->deratedDelay(from_vertex, arc, edge, false, min_max, + dcalc_ap, sdc); + latches_->latchOutArrival(from_path, arc, edge, to_tag, arc_delay, + to_arrival); + if (to_tag) + to_tag = search_->thruTag(to_tag, edge, to_rf, tag_cache_); } } else if (from_tag->isClock()) { From 7a541edb708abf8194ef43398489521dd08227bb Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 18 Jun 2026 09:15:32 -0700 Subject: [PATCH 34/61] levelize rm latch d->q handling Signed-off-by: James Cherry --- search/Levelize.cc | 37 ------------------------------------- search/Levelize.hh | 2 -- 2 files changed, 39 deletions(-) diff --git a/search/Levelize.cc b/search/Levelize.cc index 76788b40..bc1b5609 100644 --- a/search/Levelize.cc +++ b/search/Levelize.cc @@ -134,7 +134,6 @@ Levelize::findLevels() findBackEdges(); VertexSeq topo_sorted = findTopologicalOrder(); assignLevels(topo_sorted); - ensureLatchLevels(); // Set level of stranded vertices (constants) to zero. VertexIterator vertex_iter2(graph_); @@ -354,8 +353,6 @@ Levelize::findTopologicalOrder() Vertex *to_vertex = edge->to(graph_); if (searchThru(edge)) in_degree[to_vertex] += 1; - if (edge->role() == TimingRole::latchDtoQ()) - latch_d_to_q_edges_.insert(edge); } // Levelize bidirect driver as if it was a fanout of the bidirect load. const Pin *pin = vertex->pin(); @@ -507,27 +504,6 @@ Levelize::assignLevels(VertexSeq &topo_sorted) //////////////////////////////////////////////////////////////// -// Make sure latch D input level is not the same as the Q level. -// This is because the Q arrival depends on the D arrival and -// to find them in parallel they have to be scheduled separately -// to avoid a race condition. -void -Levelize::ensureLatchLevels() -{ - for (Edge *edge : latch_d_to_q_edges_) { - Vertex *from = edge->from(graph_); - Vertex *to = edge->to(graph_); - if (from->level() == to->level()) { - Level adjusted_level = from->level() + level_space_; - debugPrint(debug_, "levelize", 2, "latch {} {} (adjusted {}) -> {} {}", - from->to_string(this), from->level(), adjusted_level, - to->to_string(this), to->level()); - setLevel(from, adjusted_level); - } - } - latch_d_to_q_edges_.clear(); -} - void Levelize::setLevel(Vertex *vertex, Level level) @@ -604,7 +580,6 @@ Levelize::relevelize() EdgeSeq path; visit(vertex, nullptr, vertex->level(), 1, path_vertices, path); } - ensureLatchLevels(); levels_valid_ = true; relevelize_from_.clear(); } @@ -635,18 +610,6 @@ Levelize::visit(Vertex *vertex, visit(to_vertex, edge, level + level_space, level_space, path_vertices, path); } - - const TimingRole *role = edge->role(); - if (role->isLatchDtoQ()) - latch_d_to_q_edges_.insert(edge); - if (role->isLatchEnToQ()) { - VertexInEdgeIterator edge_iter2(to_vertex, graph_); - while (edge_iter2.hasNext()) { - Edge *edge2 = edge_iter2.next(); - if (edge2->role()->isLatchDtoQ()) - latch_d_to_q_edges_.insert(edge2); - } - } } // Levelize bidirect driver as if it was a fanout of the bidirect load. diff --git a/search/Levelize.hh b/search/Levelize.hh index 094e3d47..22b268b8 100644 --- a/search/Levelize.hh +++ b/search/Levelize.hh @@ -83,7 +83,6 @@ protected: EdgeSeq &path); EdgeSeq *loopEdges(EdgeSeq &path, Edge *closing_edge); - void ensureLatchLevels(); void findBackEdges(); EdgeSet findBackEdges(EdgeSeq &path, FindBackEdgesStack &stack); @@ -113,7 +112,6 @@ protected: GraphLoopSeq loops_; EdgeSet loop_edges_; EdgeSet disabled_loop_edges_; - EdgeSet latch_d_to_q_edges_; LevelizeObserver *observer_{nullptr}; }; From 46d6ca9fc839f44fd65db4f24765d751e6c63066 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 18 Jun 2026 13:24:04 -0700 Subject: [PATCH 35/61] comment Signed-off-by: James Cherry --- search/Latches.cc | 9 --------- 1 file changed, 9 deletions(-) diff --git a/search/Latches.cc b/search/Latches.cc index 73fc8929..5dcf6957 100644 --- a/search/Latches.cc +++ b/search/Latches.cc @@ -360,15 +360,6 @@ Latches::latchOutArrival(const Path *data_path, false, min_max, dcalc_ap, sdc); q_arrival = delaySum(data_path->arrival(), arc_delay, this); // Copy the data tag but remove the crprClkPath. - // Levelization does not traverse latch D->Q edges, so in some cases - // level(Q) < level(D) - // Note that - // level(crprClkPath(data)) < level(D) - // The danger is that - // level(crprClkPath(data)) == level(Q) - // or some other downstream vertex. - // This can lead to data races when finding arrivals at the same level - // with multiple threads. // Kill the crprClklPath to be safe. const ClkInfo *data_clk_info = data_path->clkInfo(this); const ClkInfo *q_clk_info = From 63361465e2b34b25a4d8048a5cce55d1c8186161 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 18 Jun 2026 14:08:43 -0700 Subject: [PATCH 36/61] ChangeLog typo Signed-off-by: James Cherry --- doc/ChangeLog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/ChangeLog.txt b/doc/ChangeLog.txt index c30947f8..c456d0e0 100644 --- a/doc/ChangeLog.txt +++ b/doc/ChangeLog.txt @@ -55,7 +55,7 @@ link_design top create_clock -period 50 clk set_input_delay -clock clk 1 {in1 in2} set sta_pocv_mode skew_normal -report_checks -fields {slew variation input_pin variation} -digits 3 +report_checks -fields {slew variation input_pin} -digits 3 Startpoint: r2 (rising edge-triggered flip-flop clocked by clk) Endpoint: r3 (rising edge-triggered flip-flop clocked by clk) From 7ca079f3f6421e41bab12d8db5218c13c2683404 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 18 Jun 2026 14:42:12 -0700 Subject: [PATCH 37/61] LibertyPort::setIsLatchOutput Signed-off-by: James Cherry --- include/sta/Liberty.hh | 3 +++ include/sta/Network.hh | 1 + liberty/Liberty.cc | 8 ++++++++ network/Network.cc | 10 ++++++++++ search/Search.cc | 13 ++++--------- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/include/sta/Liberty.hh b/include/sta/Liberty.hh index 461166a1..f34d5e8f 100644 --- a/include/sta/Liberty.hh +++ b/include/sta/Liberty.hh @@ -861,6 +861,8 @@ public: void setIsRegOutput(bool is_reg_out); bool isLatchData() const { return is_latch_data_; } void setIsLatchData(bool is_latch_data); + bool isLatchOutput() const { return is_latch_output_; } + void setIsLatchOutput(bool is_latch_output); // Is the clock for timing checks. bool isCheckClk() const { return is_check_clk_; } void setIsCheckClk(bool is_clk); @@ -956,6 +958,7 @@ protected: bool is_reg_clk_:1 {false}; bool is_reg_output_:1 {false}; bool is_latch_data_: 1 {false}; + bool is_latch_output_:1 {false}; bool is_check_clk_:1 {false}; bool is_clk_gate_clk_:1 {false}; bool is_clk_gate_enable_:1 {false}; diff --git a/include/sta/Network.hh b/include/sta/Network.hh index 9c45f095..d07b3db3 100644 --- a/include/sta/Network.hh +++ b/include/sta/Network.hh @@ -319,6 +319,7 @@ public: // Pin clocks a timing check. [[nodiscard]] bool isCheckClk(const Pin *pin) const; [[nodiscard]] bool isLatchData(const Pin *pin) const; + [[nodiscard]] bool isLatchOutput(const Pin *pin) const; // Iterate over all of the pins connected to a pin and the parent // and child nets it is hierarchically connected to (port, leaf and diff --git a/liberty/Liberty.cc b/liberty/Liberty.cc index b63e56fa..09c92678 100644 --- a/liberty/Liberty.cc +++ b/liberty/Liberty.cc @@ -1769,6 +1769,7 @@ LibertyCell::makeLatchEnable(LibertyPort *d, latch_d_to_q_map_[d_to_q] = idx; latch_check_map_[setup_check] = idx; d->setIsLatchData(true); + q->setIsLatchOutput(true); debugPrint(debug, "liberty_latch", 1, "latch {} -> {} | {} {} -> {} | {} {} -> {} setup", d->name(), @@ -2434,6 +2435,13 @@ LibertyPort::setIsLatchData(bool is_latch_data) setMemberFlag(is_latch_data, &LibertyPort::setIsLatchData); } +void +LibertyPort::setIsLatchOutput(bool is_latch_output) +{ + is_latch_output_ = is_latch_output; + setMemberFlag(is_latch_output, &LibertyPort::setIsLatchOutput); +} + void LibertyPort::setIsCheckClk(bool is_clk) { diff --git a/network/Network.cc b/network/Network.cc index 3bf22cf6..373d52b7 100644 --- a/network/Network.cc +++ b/network/Network.cc @@ -636,6 +636,16 @@ Network::isLatchData(const Pin *pin) const return false; } +bool +Network::isLatchOutput(const Pin *pin) const +{ + LibertyPort *port = libertyPort(pin); + if (port) + return port->isLatchOutput(); + else + return false; +} + //////////////////////////////////////////////////////////////// std::string diff --git a/search/Search.cc b/search/Search.cc index 08829669..ae23c681 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -1132,15 +1132,10 @@ ArrivalVisitor::setAlwaysToEndpoints(bool to_endpoints) void ArrivalVisitor::visit(Vertex *vertex) { - VertexInEdgeIterator edge_iter(vertex, graph_); - while (edge_iter.hasNext()) { - Edge *edge = edge_iter.next(); - if (edge->role()->isLatchDtoQ()) { - search_->enqueueLatchOutput(vertex); - return; - } - } - visit(vertex, false); + if (network_->isLatchOutput(vertex->pin())) + search_->enqueueLatchOutput(vertex); + else + visit(vertex, false); } void From 8d7babf44ef4dca11f478207a39273969fc32bd1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 10:49:10 +0800 Subject: [PATCH 38/61] Bump actions/checkout from 6 to 7 (#451) Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65c53abb..d02e9616 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: submodules: true From 4f0c4c8bb33054ffb63b45eb16d153356a91c4a2 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 20 Jun 2026 10:05:07 -0700 Subject: [PATCH 39/61] gated clk activity use passes instead of enqueue Signed-off-by: James Cherry --- power/Power.cc | 33 +++++++++++++++++++++++++++------ power/Power.hh | 2 ++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/power/Power.cc b/power/Power.cc index c5075522..0d7a4848 100644 --- a/power/Power.cc +++ b/power/Power.cc @@ -701,10 +701,8 @@ PropActivityVisitor::visit(Vertex *vertex) if (cell->isClockGate()) { const Pin *enable, *clk, *gclk; power_->clockGatePins(inst, enable, clk, gclk); - if (gclk) { - Vertex *gclk_vertex = graph_->pinDrvrVertex(gclk); - bfs_->enqueue(gclk_vertex); - } + if (gclk) + visited_regs_.insert(inst); } } bfs_->enqueueAdjacentVertices(vertex, mode_); @@ -972,6 +970,8 @@ Power::seedRegOutputActivities(const Instance *inst, const SequentialSeq &seqs = test_cell->sequentials(); seedRegOutputActivities(inst, test_cell, seqs, bfs); } + else if (cell->isClockGate()) + seedClkGateOutputActivities(inst, bfs); } } @@ -1045,6 +1045,23 @@ Power::seedRegOutputActivities(const Instance *reg, } } +void +Power::seedClkGateOutputActivities(const Instance *inst, + BfsFwdIterator &bfs) +{ + InstancePinIterator *pin_iter = network_->pinIterator(inst); + while (pin_iter->hasNext()) { + Pin *pin = pin_iter->next(); + LibertyPort *port = network_->libertyPort(pin); + if (port && port->isClockGateOut()) { + Vertex *vertex = graph_->pinDrvrVertex(pin); + if (vertex) + bfs.enqueue(vertex); + } + } + delete pin_iter; +} + //////////////////////////////////////////////////////////////// void @@ -1566,8 +1583,12 @@ Power::findActivity(const Pin *pin) if (activity && activity->origin() != PwrActivityOrigin::unknown) return *activity; const Clock *clk = findClk(pin); - float duty = clockDuty(clk); - return PwrActivity(2.0 / clk->period(), duty, PwrActivityOrigin::clock); + if (clk) { + float duty = clockDuty(clk); + return PwrActivity(2.0 / clk->period(), duty, PwrActivityOrigin::clock); + } + else + return PwrActivity(); } else if (global_activity_.isSet()) return global_activity_; diff --git a/power/Power.hh b/power/Power.hh index 8a19f309..ccffea64 100644 --- a/power/Power.hh +++ b/power/Power.hh @@ -224,6 +224,8 @@ protected: const LibertyCell *test_cell, const SequentialSeq &seqs, BfsFwdIterator &bfs); + void seedClkGateOutputActivities(const Instance *inst, + BfsFwdIterator &bfs); PwrActivity evalActivity(FuncExpr *expr, const Instance *inst); PwrActivity evalActivity(FuncExpr *expr, From 70e8f9f4735d2a8fbabdb5a609d2487cb8d26a25 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sun, 21 Jun 2026 20:55:57 -0700 Subject: [PATCH 40/61] genclks use queue instead of bfs Signed-off-by: James Cherry --- search/Genclks.cc | 68 ++++++++++++++++++++++++++++++----------------- search/Genclks.hh | 14 +++++++--- 2 files changed, 55 insertions(+), 27 deletions(-) diff --git a/search/Genclks.cc b/search/Genclks.cc index acf801b7..5e71b207 100644 --- a/search/Genclks.cc +++ b/search/Genclks.cc @@ -457,11 +457,11 @@ Genclks::findInsertionDelays(Clock *gclk) debugPrint(debug_, "genclk", 2, "find gen clk {} insertion", gclk->name()); GenclkInfo *genclk_info = makeGenclkInfo(gclk); FilterPath *src_filter = genclk_info->srcFilter(); + VertexQueue insert_queue; GenClkInsertionSearchPred srch_pred(gclk, genclk_info, this); - BfsFwdIterator insert_iter(BfsIndex::other, &srch_pred, this); - seedSrcPins(gclk, src_filter, insert_iter); + seedSrcPins(gclk, src_filter, insert_queue, srch_pred); // Propagate arrivals to generated clk root pin level. - findSrcArrivals(gclk, insert_iter, genclk_info); + findSrcArrivals(gclk, genclk_info, insert_queue); // Unregister the filter so that it is not triggered by other searches. // The exception itself has to stick around because the source path // tags reference it. @@ -591,7 +591,8 @@ Genclks::makeSrcFilter(Clock *gclk, void Genclks::seedSrcPins(Clock *gclk, FilterPath *src_filter, - BfsFwdIterator &insert_iter) + VertexQueue &insert_queue, + SearchPred &srch_pred) { Clock *master_clk = gclk->masterClk(); for (const Pin *master_pin : master_clk->leafPins()) { @@ -613,13 +614,28 @@ Genclks::seedSrcPins(Clock *gclk, tag_bldr.setArrival(tag, insert); } } - search_->setVertexArrivals(vertex, &tag_bldr); - insert_iter.enqueueAdjacentVertices(vertex, mode_); } + search_->setVertexArrivals(vertex, &tag_bldr); + enqueueFanout(vertex, insert_queue, srch_pred); } } } +void +Genclks::enqueueFanout(Vertex *vertex, + VertexQueue &insert_queue, + SearchPred &srch_pred) +{ + VertexOutEdgeIterator edge_iter(vertex, graph_); + while (edge_iter.hasNext()) { + Edge *edge = edge_iter.next(); + Vertex *to_vertex = edge->to(graph_); + if (srch_pred.searchThru(edge, mode_) + && srch_pred.searchTo(to_vertex, mode_)) + insert_queue.push(to_vertex); + } +} + Tag * Genclks::makeTag(const Clock *gclk, const Clock *master_clk, @@ -690,8 +706,8 @@ class GenclkSrcArrivalVisitor : public ArrivalVisitor { public: GenclkSrcArrivalVisitor(Clock *gclk, - BfsFwdIterator *insert_iter, GenclkInfo *genclk_info, + VertexQueue &insert_queue, const Mode *mode); GenclkSrcArrivalVisitor(const GenclkSrcArrivalVisitor &visitor); VertexVisitor *copy() const override; @@ -699,7 +715,7 @@ public: protected: Clock *gclk_; - BfsFwdIterator *insert_iter_; + VertexQueue &insert_queue_; GenclkInfo *genclk_info_; GenClkInsertionSearchPred srch_pred_; const Mode *mode_; @@ -708,12 +724,12 @@ protected: }; GenclkSrcArrivalVisitor::GenclkSrcArrivalVisitor(Clock *gclk, - BfsFwdIterator *insert_iter, GenclkInfo *genclk_info, + VertexQueue &insert_queue, const Mode *mode) : ArrivalVisitor(mode->sta()), gclk_(gclk), - insert_iter_(insert_iter), + insert_queue_(insert_queue), genclk_info_(genclk_info), srch_pred_(gclk_, genclk_info, mode->sta()), mode_(mode), @@ -725,7 +741,7 @@ GenclkSrcArrivalVisitor::GenclkSrcArrivalVisitor(Clock *gclk, GenclkSrcArrivalVisitor::GenclkSrcArrivalVisitor(const GenclkSrcArrivalVisitor &visitor) : ArrivalVisitor(visitor), gclk_(visitor.gclk_), - insert_iter_(visitor.insert_iter_), + insert_queue_(visitor.insert_queue_), genclk_info_(visitor.genclk_info_), srch_pred_(visitor.gclk_, visitor.genclk_info_, this), mode_(visitor.mode_), @@ -749,23 +765,27 @@ GenclkSrcArrivalVisitor::visit(Vertex *vertex) has_fanin_one_ = graph_->hasFaninOne(vertex); genclks_->copyGenClkSrcPaths(vertex, tag_bldr_); visitFaninPaths(vertex, true); - // Propagate beyond the clock tree to reach generated clk roots. - insert_iter_->enqueueAdjacentVertices(vertex, &srch_pred_, mode_); search_->setVertexArrivals(vertex, tag_bldr_); + // Propagate beyond the clock tree to reach generated clk roots. + genclks_->enqueueFanout(vertex, insert_queue_, srch_pred_); } void Genclks::findSrcArrivals(Clock *gclk, - BfsFwdIterator &insert_iter, - GenclkInfo *genclk_info) + GenclkInfo *genclk_info, + VertexQueue &insert_queue) { GenClkArrivalSearchPred eval_pred(gclk, this); - GenclkSrcArrivalVisitor arrival_visitor(gclk, &insert_iter, genclk_info, mode_); + GenclkSrcArrivalVisitor arrival_visitor(gclk, genclk_info, insert_queue, mode_); arrival_visitor.init(true, false, &eval_pred); // This cannot restrict the search level because loops in the clock tree // can circle back to the generated clock src pin. // Parallel visit is slightly slower (at last check). - insert_iter.visit(levelize_->maxLevel(), &arrival_visitor); + while (!insert_queue.empty()) { + Vertex *vertex = insert_queue.front(); + insert_queue.pop(); + arrival_visitor.visit(vertex); + } } // Copy generated clock source paths to tag_bldr. @@ -886,15 +906,15 @@ void Genclks::deleteGenclkSrcPaths(Clock *gclk) { GenclkInfo *genclk_info = genclkInfo(gclk); - GenClkInsertionSearchPred srch_pred(gclk, genclk_info, mode_->sta()); - BfsFwdIterator insert_iter(BfsIndex::other, &srch_pred, this); + VertexQueue insert_queue; + GenClkInsertionSearchPred srch_pred(gclk, genclk_info, this); FilterPath *src_filter = genclk_info->srcFilter(); - seedSrcPins(gclk, src_filter, insert_iter); - GenClkArrivalSearchPred eval_pred(gclk, this); - while (insert_iter.hasNext()) { - Vertex *vertex = insert_iter.next(); + seedSrcPins(gclk, src_filter, insert_queue, srch_pred); + while (!insert_queue.empty()) { + Vertex *vertex = insert_queue.front(); + insert_queue.pop(); search_->deletePaths(vertex); - insert_iter.enqueueAdjacentVertices(vertex, &srch_pred, mode_); + enqueueFanout(vertex, insert_queue, srch_pred); } } diff --git a/search/Genclks.hh b/search/Genclks.hh index 67cc55de..500e58e9 100644 --- a/search/Genclks.hh +++ b/search/Genclks.hh @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -59,6 +60,7 @@ public: using GenclkInfoMap = std::map; using GenclkSrcPathMap = std::map, ClockPinPairLess>; using VertexGenclkSrcPathsMap = std::map, VertexIdLess>; +using VertexQueue = std::queue; class Genclks : public StaState { @@ -110,10 +112,11 @@ private: const Clock *gclk) const; void seedSrcPins(Clock *gclk, FilterPath *src_filter, - BfsFwdIterator &insert_iter); + VertexQueue &insert_queue, + SearchPred &srch_pred); void findSrcArrivals(Clock *gclk, - BfsFwdIterator &insert_iter, - GenclkInfo *genclk_info); + GenclkInfo *genclk_info, + VertexQueue &insert_queue); FilterPath *makeSrcFilter(Clock *gclk, Sdc *sdc); void deleteGenClkInfo(); @@ -128,6 +131,9 @@ private: void seedSrcPins(Clock *clk, BfsBkwdIterator &iter); void findInsertionDelay(Clock *gclk); + void enqueueFanout(Vertex *vertex, + VertexQueue &insert_queue, + SearchPred &srch_pred); GenclkInfo *makeGenclkInfo(Clock *gclk); FilterPath *srcFilter(Clock *gclk); void findFanin(Clock *gclk, @@ -147,6 +153,8 @@ private: GenclkSrcPathMap genclk_src_paths_; GenclkInfoMap genclk_info_map_; VertexGenclkSrcPathsMap vertex_src_paths_map_; + + friend class GenclkSrcArrivalVisitor; }; } // namespace sta From 266061fcee806fb48e64a4c4665b75d48a0fd8cd Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 22 Jun 2026 09:08:39 -0700 Subject: [PATCH 41/61] Genclks::ensureMaster use queue instead of BfsIterator Signed-off-by: James Cherry --- search/Genclks.cc | 75 ++++++++++++++++++++++++++++------------------- search/Genclks.hh | 5 ++-- 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/search/Genclks.cc b/search/Genclks.cc index 5e71b207..cf28ace3 100644 --- a/search/Genclks.cc +++ b/search/Genclks.cc @@ -270,30 +270,38 @@ Genclks::ensureMaster(Clock *gclk, } if (!found_master) { // Search backward from generated clock source pin to a clock pin. - GenClkMasterSearchPred pred(this); - BfsBkwdIterator iter(BfsIndex::other, &pred, this); - seedSrcPins(gclk, iter); - while (iter.hasNext()) { - Vertex *vertex = iter.next(); - Pin *pin = vertex->pin(); - if (sdc->isLeafPinClock(pin)) { - ClockSet *master_clks = sdc->findLeafPinClocks(pin); - if (master_clks) { - ClockSet::iterator master_iter = master_clks->begin(); - if (master_iter != master_clks->end()) { - master_clk = *master_iter++; - // Master source pin can actually be a clock source pin. - if (master_clk != gclk) { - gclk->setInferedMasterClk(master_clk); - debugPrint(debug_, "genclk", 2, " {} master clk {}", gclk->name(), - master_clk->name()); - master_clk_count++; - break; + GenClkMasterSearchPred srch_pred(this); + VertexQueue master_queue; + VertexSet visited = makeVertexSet(this); + VertexSet src_vertices = makeVertexSet(this); + gclk->srcPinVertices(src_vertices, network_, graph_); + for (Vertex *vertex : src_vertices) + master_queue.push(vertex); + while (!master_queue.empty()) { + Vertex *vertex = master_queue.front(); + master_queue.pop(); + if (!visited.contains(vertex)) { + visited.insert(vertex); + Pin *pin = vertex->pin(); + if (sdc->isLeafPinClock(pin)) { + ClockSet *master_clks = sdc->findLeafPinClocks(pin); + if (master_clks) { + ClockSet::iterator master_iter = master_clks->begin(); + if (master_iter != master_clks->end()) { + master_clk = *master_iter++; + // Master source pin can actually be a clock source pin. + if (master_clk != gclk) { + gclk->setInferedMasterClk(master_clk); + debugPrint(debug_, "genclk", 2, " {} master clk {}", gclk->name(), + master_clk->name()); + master_clk_count++; + break; + } } } } + enqueueFanin(vertex, master_queue, srch_pred); } - iter.enqueueAdjacentVertices(vertex, mode_); } } if (master_clk_count > 1) @@ -303,16 +311,6 @@ Genclks::ensureMaster(Clock *gclk, } } -void -Genclks::seedSrcPins(Clock *clk, - BfsBkwdIterator &iter) -{ - VertexSet src_vertices = makeVertexSet(this); - clk->srcPinVertices(src_vertices, network_, graph_); - for (Vertex *vertex : src_vertices) - iter.enqueue(vertex); -} - //////////////////////////////////////////////////////////////// // Similar to ClkTreeSearchPred but @@ -621,6 +619,23 @@ Genclks::seedSrcPins(Clock *gclk, } } +void +Genclks::enqueueFanin(Vertex *vertex, + VertexQueue &insert_queue, + SearchPred &srch_pred) +{ + if (srch_pred.searchTo(vertex, mode_)) { + VertexInEdgeIterator edge_iter(vertex, graph_); + while (edge_iter.hasNext()) { + Edge *edge = edge_iter.next(); + Vertex *from_vertex = edge->from(graph_); + if (srch_pred.searchFrom(from_vertex, mode_) + && srch_pred.searchThru(edge, mode_)) + insert_queue.push(from_vertex); + } + } +} + void Genclks::enqueueFanout(Vertex *vertex, VertexQueue &insert_queue, diff --git a/search/Genclks.hh b/search/Genclks.hh index 500e58e9..172ba789 100644 --- a/search/Genclks.hh +++ b/search/Genclks.hh @@ -128,9 +128,10 @@ private: Arrival insert, Scene *scene, const MinMax *min_max); - void seedSrcPins(Clock *clk, - BfsBkwdIterator &iter); void findInsertionDelay(Clock *gclk); + void enqueueFanin(Vertex *vertex, + VertexQueue &insert_queue, + SearchPred &srch_pred); void enqueueFanout(Vertex *vertex, VertexQueue &insert_queue, SearchPred &srch_pred); From 2349b76a9535db21076d24ec942c364db7e7ca53 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 22 Jun 2026 09:30:45 -0700 Subject: [PATCH 42/61] Genclks::findFanin use queue instead of BfsIterator Signed-off-by: James Cherry --- search/Genclks.cc | 21 +++++++++++---------- search/Genclks.hh | 7 +++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/search/Genclks.cc b/search/Genclks.cc index cf28ace3..caaee7ba 100644 --- a/search/Genclks.cc +++ b/search/Genclks.cc @@ -26,7 +26,6 @@ #include -#include "Bfs.hh" #include "Clock.hh" #include "ContainerHelpers.hh" #include "Debug.hh" @@ -347,32 +346,34 @@ Genclks::findFanin(Clock *gclk, { // Search backward from generated clock source pin to a clock pin. GenClkFaninSrchPred srch_pred(gclk, this); - BfsBkwdIterator iter(BfsIndex::other, &srch_pred, this); - seedClkVertices(gclk, iter, fanins); - while (iter.hasNext()) { - Vertex *vertex = iter.next(); + VertexQueue fanin_queue; + seedClkVertices(gclk, fanin_queue, fanins, srch_pred); + while (!fanin_queue.empty()) { + Vertex *vertex = fanin_queue.front(); + fanin_queue.pop(); if (!fanins.contains(vertex)) { fanins.insert(vertex); debugPrint(debug_, "genclk", 2, "gen clk {} fanin {}", gclk->name(), vertex->to_string(this)); - iter.enqueueAdjacentVertices(vertex, mode_); + enqueueFanin(vertex, fanin_queue, srch_pred); } } } void Genclks::seedClkVertices(Clock *clk, - BfsBkwdIterator &iter, - VertexSet &fanins) + VertexQueue &fanin_queue, + VertexSet &fanins, + SearchPred &srch_pred) { for (const Pin *pin : clk->leafPins()) { Vertex *vertex, *bidirect_drvr_vertex; graph_->pinVertices(pin, vertex, bidirect_drvr_vertex); fanins.insert(vertex); - iter.enqueueAdjacentVertices(vertex, mode_); + enqueueFanin(vertex, fanin_queue, srch_pred); if (bidirect_drvr_vertex) { fanins.insert(bidirect_drvr_vertex); - iter.enqueueAdjacentVertices(bidirect_drvr_vertex, mode_); + enqueueFanin(bidirect_drvr_vertex, fanin_queue, srch_pred); } } } diff --git a/search/Genclks.hh b/search/Genclks.hh index 172ba789..6ec66cee 100644 --- a/search/Genclks.hh +++ b/search/Genclks.hh @@ -43,8 +43,6 @@ namespace sta { class GenclkInfo; -class BfsFwdIterator; -class BfsBkwdIterator; class SearchPred; class TagGroupBldr; @@ -104,8 +102,9 @@ private: void recordSrcPaths(Clock *gclk); void findInsertionDelays(Clock *gclk); void seedClkVertices(Clock *clk, - BfsBkwdIterator &iter, - VertexSet &dfanins); + VertexQueue &fanin_queue, + VertexSet &fanins, + SearchPred &srch_pred); size_t srcPathIndex(const RiseFall *clk_rf, const MinMax *min_max) const; bool matchesSrcFilter(Path *path, From 0939625580bb752254f8ba778eb4409009e582c5 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 22 Jun 2026 09:31:54 -0700 Subject: [PATCH 43/61] .cursor Signed-off-by: James Cherry --- .cursor/rules/cpp-coding-standards.mdc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.cursor/rules/cpp-coding-standards.mdc b/.cursor/rules/cpp-coding-standards.mdc index fc06afdf..4589e5b3 100644 --- a/.cursor/rules/cpp-coding-standards.mdc +++ b/.cursor/rules/cpp-coding-standards.mdc @@ -34,6 +34,13 @@ alwaysApply: true - Prefer `std::string` over `char*` for string members. - Prefer pass-by-value and move for sink parameters (parameters that get stored). +## Control flow + +- Prefer positive `if` conditions that wrap the main logic instead of early + `continue` or `return` to skip work. +- Example: use `if (!visited.contains(vertex)) { ... }` rather than + `if (visited.contains(vertex)) continue;`. + ## File Extensions - C++ source: `.cc` From c81f0c169d15896eece4b1ecc9fd7dfba3fac041 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 22 Jun 2026 16:54:27 -0700 Subject: [PATCH 44/61] cleanup Signed-off-by: James Cherry --- dcalc/GraphDelayCalc.cc | 66 ++++++++++++++++++++--------------------- power/Power.cc | 28 ++++++++++------- search/Genclks.cc | 11 +++---- 3 files changed, 55 insertions(+), 50 deletions(-) diff --git a/dcalc/GraphDelayCalc.cc b/dcalc/GraphDelayCalc.cc index 6fac6faa..6c821dab 100644 --- a/dcalc/GraphDelayCalc.cc +++ b/dcalc/GraphDelayCalc.cc @@ -248,7 +248,7 @@ GraphDelayCalc::delayInvalid(Vertex *vertex) { debugPrint(debug_, "delay_calc", 2, "delay invalid {}", vertex->to_string(this)); - if (graph_ && incremental_) { + if (incremental_) { invalid_delays_.insert(vertex); // Invalidate driver that triggers dcalc for multi-driver nets. MultiDrvrNet *multi_drvr = multiDrvrNet(vertex); @@ -338,40 +338,38 @@ FindVertexDelays::visit(Vertex *vertex) void GraphDelayCalc::findDelays(Level level) { - if (arc_delay_calc_) { - Stats stats(debug_, report_); - int dcalc_count = 0; - debugPrint(debug_, "delay_calc", 1, "find delays to level {}", level); - if (!delays_seeded_) { - iter_->clear(); - seedRootSlews(); - delays_seeded_ = true; - } - else - iter_->ensureSize(); - if (incremental_) - seedInvalidDelays(); - - if (!iter_->empty()) { - FindVertexDelays visitor(this); - dcalc_count += iter_->visitParallel(level, &visitor); - } - - // Timing checks require slews at both ends of the arc, - // so find their delays after all slews are known. - for (Edge *check_edge : invalid_check_edges_) - findCheckEdgeDelays(check_edge, arc_delay_calc_); - invalid_check_edges_.clear(); - - for (Edge *latch_edge : invalid_latch_edges_) - findLatchEdgeDelays(latch_edge); - invalid_latch_edges_.clear(); - - delays_exist_ = true; - incremental_ = true; - debugPrint(debug_, "delay_calc", 1, "found {} delays", dcalc_count); - stats.report("Delay calc"); + Stats stats(debug_, report_); + int dcalc_count = 0; + debugPrint(debug_, "delay_calc", 1, "find delays to level {}", level); + if (!delays_seeded_) { + iter_->clear(); + seedRootSlews(); + delays_seeded_ = true; } + else + iter_->ensureSize(); + if (incremental_) + seedInvalidDelays(); + + if (!iter_->empty()) { + FindVertexDelays visitor(this); + dcalc_count += iter_->visitParallel(level, &visitor); + } + + // Timing checks require slews at both ends of the arc, + // so find their delays after all slews are known. + for (Edge *check_edge : invalid_check_edges_) + findCheckEdgeDelays(check_edge, arc_delay_calc_); + invalid_check_edges_.clear(); + + for (Edge *latch_edge : invalid_latch_edges_) + findLatchEdgeDelays(latch_edge); + invalid_latch_edges_.clear(); + + delays_exist_ = true; + incremental_ = true; + debugPrint(debug_, "delay_calc", 1, "found {} delays", dcalc_count); + stats.report("Delay calc"); } void diff --git a/power/Power.cc b/power/Power.cc index 0d7a4848..0296093e 100644 --- a/power/Power.cc +++ b/power/Power.cc @@ -554,9 +554,12 @@ ActivitySrchPred::searchThru(Edge *edge, { const Sdc *sdc = mode->sdc(); const TimingRole *role = edge->role(); - return !(edge->role()->isTimingCheck() || sdc->isDisabledConstraint(edge) - || sdc->isDisabledCondDefault(edge) || edge->isBidirectInstPath() - || edge->isDisabledLoop() || role == TimingRole::regClkToQ() + return !(edge->role()->isTimingCheck() + || sdc->isDisabledConstraint(edge) + || sdc->isDisabledCondDefault(edge) + || edge->isBidirectInstPath() + || edge->isDisabledLoop() + || role == TimingRole::regClkToQ() || role->isLatchDtoQ()); } @@ -744,9 +747,9 @@ PropActivityVisitor::setActivityCheck(const Pin *pin, max_change_ = duty_delta; max_change_pin_ = pin; } - bool changed = density_delta > change_tolerance_ || duty_delta > change_tolerance_ - || activity.origin() != prev_activity.origin(); - ; + bool changed = density_delta > change_tolerance_ + || duty_delta > change_tolerance_ + || activity.origin() != prev_activity.origin(); power_->setActivity(pin, activity); return changed; } @@ -903,8 +906,9 @@ Power::ensureActivities(const Scene *scene) // unless it has been set by command. if (input_activity_.origin() == PwrActivityOrigin::unknown) { float min_period = clockMinPeriod(scene_->mode()->sdc()); - float density = - 0.1 / (min_period != 0.0 ? min_period : units_->timeUnit()->scale()); + if (min_period == 0.0) + min_period = units_->timeUnit()->scale(); + float density = 0.1 / min_period; input_activity_.set(density, 0.5, PwrActivityOrigin::input); } ActivitySrchPred activity_srch_pred(this); @@ -916,7 +920,7 @@ Power::ensureActivities(const Scene *scene) // Propagate activiities through registers. InstanceSet regs = std::move(visitor.visitedRegs()); int pass = 1; - while (!regs.empty() && pass < max_activity_passes_) { + while (!regs.empty() && pass <= max_activity_passes_) { visitor.init(); for (const Instance *reg : regs) // Propagate activiities across register D->Q. @@ -925,8 +929,10 @@ Power::ensureActivities(const Scene *scene) // combinational logic. bfs.visit(levelize_->maxLevel(), &visitor); regs = std::move(visitor.visitedRegs()); - debugPrint(debug_, "power_activity", 1, "Pass {} change {:.2f} {}", pass, - visitor.maxChange(), network_->pathName(visitor.maxChangePin())); + debugPrint(debug_, "power_activity", 1, "Pass {} change {:.2f} {}", + pass, + visitor.maxChange(), + network_->pathName(visitor.maxChangePin())); pass++; } } diff --git a/search/Genclks.cc b/search/Genclks.cc index caaee7ba..03d53d74 100644 --- a/search/Genclks.cc +++ b/search/Genclks.cc @@ -669,11 +669,12 @@ Genclks::makeTag(const Clock *gclk, state = state->nextState(); ExceptionStateSet *states = new ExceptionStateSet(); states->insert(state); - const ClkInfo *clk_info = search_->findClkInfo( - scene, master_clk->edge(master_rf), master_pin, true, nullptr, true, nullptr, - insert, 0.0, nullptr, min_max, nullptr); - return search_->findTag(scene, master_rf, min_max, clk_info, false, nullptr, false, - states, true, nullptr); + const ClkInfo *clk_info = search_->findClkInfo(scene, master_clk->edge(master_rf), + master_pin, true, nullptr, true, + nullptr, insert, 0.0, nullptr, + min_max, nullptr); + return search_->findTag(scene, master_rf, min_max, clk_info, false, nullptr, + false, states, true, nullptr); } class GenClkArrivalSearchPred : public EvalPred From 458c277c8056bad59a69bcd821c7a4bee093cdc9 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 22 Jun 2026 19:14:30 -0700 Subject: [PATCH 45/61] Sta::delaysInvalidFromFanin Signed-off-by: James Cherry --- include/sta/Sta.hh | 1 - search/Sta.cc | 28 ++++++++-------------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index da5da08b..bded0b9a 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -1513,7 +1513,6 @@ protected: bool infer_latches); void delayCalcPreamble(); void delaysInvalidFrom(const Port *port); - void delaysInvalidFromFanin(const Port *port); void deleteEdge(Edge *edge); void netParasiticCaps(Net *net, const RiseFall *rf, diff --git a/search/Sta.cc b/search/Sta.cc index 87a3f7d1..e159c7be 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -3965,7 +3965,7 @@ Sta::setPortExtPinCap(const Port *port, for (const MinMax *mm : min_max->range()) sdc->setPortExtPinCap(port, rf1, mm, cap); } - delaysInvalidFromFanin(port); + delaysInvalidFrom(port); } void @@ -4020,7 +4020,7 @@ Sta::setPortExtWireCap(const Port *port, for (const MinMax *mm : min_max->range()) sdc->setPortExtWireCap(port, rf1, mm, cap); } - delaysInvalidFromFanin(port); + delaysInvalidFrom(port); } void @@ -4038,7 +4038,7 @@ Sta::setPortExtFanout(const Port *port, { for (const MinMax *mm : min_max->range()) sdc->setPortExtFanout(port, mm, fanout); - delaysInvalidFromFanin(port); + delaysInvalidFrom(port); } void @@ -5017,20 +5017,6 @@ Sta::delaysInvalidFrom(Vertex *vertex) graph_delay_calc_->delayInvalid(vertex); } -void -Sta::delaysInvalidFromFanin(const Port *port) -{ - if (graph_) { - Instance *top_inst = network_->topInstance(); - Pin *pin = network_->findPin(top_inst, port); - Vertex *vertex, *bidirect_drvr_vertex; - graph_->pinVertices(pin, vertex, bidirect_drvr_vertex); - delaysInvalidFromFanin(vertex); - if (bidirect_drvr_vertex) - delaysInvalidFromFanin(bidirect_drvr_vertex); - } -} - void Sta::delaysInvalidFromFanin(const Pin *pin) { @@ -5070,9 +5056,11 @@ Sta::delaysInvalidFromFanin(Vertex *vertex) VertexInEdgeIterator edge_iter(vertex, graph_); while (edge_iter.hasNext()) { Edge *edge = edge_iter.next(); - Vertex *from_vertex = edge->from(graph_); - delaysInvalidFrom(from_vertex); - search_->requiredInvalid(from_vertex); + if (edge->isWire()) { + Vertex *from_vertex = edge->from(graph_); + delaysInvalidFrom(from_vertex); + search_->requiredInvalid(from_vertex); + } } } From a456c352cf76612abb3cca2039e42b4da455a6c4 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Mon, 22 Jun 2026 19:20:39 -0700 Subject: [PATCH 46/61] rename LibertyCell::hasSequentials to isSequential Signed-off-by: James Cherry --- doc/ApiChanges.txt | 5 +++++ include/sta/Liberty.hh | 4 +++- liberty/Liberty.cc | 8 +++++++- power/Power.cc | 5 +++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/doc/ApiChanges.txt b/doc/ApiChanges.txt index 7b62f981..0aa3e9f6 100644 --- a/doc/ApiChanges.txt +++ b/doc/ApiChanges.txt @@ -24,6 +24,11 @@ This file summarizes STA API changes for each release. +2026/06/22 +---------- + +Liberty::hasSequentials has been renamed isSequential. + Release 3.1.0 2026/03/25 ------------------------ diff --git a/include/sta/Liberty.hh b/include/sta/Liberty.hh index f34d5e8f..10596472 100644 --- a/include/sta/Liberty.hh +++ b/include/sta/Liberty.hh @@ -536,7 +536,9 @@ public: bool leakagePowerExists() const { return leakage_power_exists_; } // Register, Latch or Statetable. - bool hasSequentials() const; + bool isSequential() const; + // deprecated 2026-06-22 (use isSequential) + bool hasSequentials() const __attribute__ ((deprecated)); const SequentialSeq &sequentials() const { return sequentials_; } // Find the sequential with the output connected to an (internal) port. Sequential *outputPortSequential(LibertyPort *port); diff --git a/liberty/Liberty.cc b/liberty/Liberty.cc index 09c92678..2ad71e12 100644 --- a/liberty/Liberty.cc +++ b/liberty/Liberty.cc @@ -1438,6 +1438,12 @@ LibertyCell::outputPortSequential(LibertyPort *port) return nullptr; } +bool +LibertyCell::isSequential() const +{ + return !sequentials_.empty() || statetable_ != nullptr; +} + bool LibertyCell::hasSequentials() const { @@ -1618,7 +1624,7 @@ void LibertyCell::makeLatchEnables(Report *report, Debug *debug) { - if (hasSequentials() + if (isSequential() || hasInferedRegTimingArcs()) { for (TimingArcSet *d_to_q : timing_arc_sets_) { if (d_to_q->role() == TimingRole::latchDtoQ()) { diff --git a/power/Power.cc b/power/Power.cc index 0296093e..689297f9 100644 --- a/power/Power.cc +++ b/power/Power.cc @@ -443,7 +443,7 @@ Power::power(const Scene *scene, pad.incr(inst_power); else if (inClockNetwork(inst, clk_network)) clock.incr(inst_power); - else if (cell->hasSequentials()) + else if (cell->isSequential()) sequential.incr(inst_power); else combinational.incr(inst_power); @@ -695,7 +695,8 @@ PropActivityVisitor::visit(Vertex *vertex) if (cell) { LibertyCell *test_cell = cell->libertyCell()->testCell(); if (network_->isLoad(pin)) { - if (cell->hasSequentials() || (test_cell && test_cell->hasSequentials())) { + if (cell->isSequential() + || (test_cell && test_cell->isSequential())) { debugPrint(debug_, "power_activity", 3, "pending seq {}", network_->pathName(inst)); visited_regs_.insert(inst); From f1adf5b26acd327cfc4b5950036b573ff2efb340 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 23 Jun 2026 15:09:08 -0700 Subject: [PATCH 47/61] Graph::visitFanouts, visitFanins Signed-off-by: James Cherry --- graph/Graph.cc | 85 +++++++++++++++++++++++++++++++++++---- include/sta/Graph.hh | 15 ++++++- include/sta/GraphClass.hh | 2 + search/Genclks.cc | 26 ++++-------- 4 files changed, 101 insertions(+), 27 deletions(-) diff --git a/graph/Graph.cc b/graph/Graph.cc index 6c9d47e8..92775d57 100644 --- a/graph/Graph.cc +++ b/graph/Graph.cc @@ -32,6 +32,7 @@ #include "Mutex.hh" #include "Network.hh" #include "PortDirection.hh" +#include "SearchPred.hh" #include "Stats.hh" #include "TimingArc.hh" #include "TimingRole.hh" @@ -487,7 +488,7 @@ Graph::deleteVertex(Vertex *vertex) EdgeId edge_id, next_id; for (edge_id = vertex->in_edges_; edge_id; edge_id = next_id) { Edge *edge = Graph::edge(edge_id); - next_id = edge->vertex_in_link_; + next_id = edge->vertex_in_next_; deleteOutEdge(edge->from(this), edge); edge->clear(); edges_->destroy(edge); @@ -508,7 +509,7 @@ bool Graph::hasFaninOne(Vertex *vertex) const { return vertex->in_edges_ - && edge(vertex->in_edges_)->vertex_in_link_ == 0; + && edge(vertex->in_edges_)->vertex_in_next_ == 0; } void @@ -519,12 +520,12 @@ Graph::deleteInEdge(Vertex *vertex, EdgeId prev = 0; for (EdgeId i = vertex->in_edges_; i && i != edge_id; - i = Graph::edge(i)->vertex_in_link_) + i = Graph::edge(i)->vertex_in_next_) prev = i; if (prev) - Graph::edge(prev)->vertex_in_link_ = edge->vertex_in_link_; + Graph::edge(prev)->vertex_in_next_ = edge->vertex_in_next_; else - vertex->in_edges_ = edge->vertex_in_link_; + vertex->in_edges_ = edge->vertex_in_next_; } void @@ -574,6 +575,72 @@ Graph::gateEdgeArc(const Pin *in_pin, //////////////////////////////////////////////////////////////// +void +Graph::visitFanouts(Vertex *vertex, + SearchPred *pred, + const VertexFn &fn) +{ + if (pred->searchFrom(vertex)) { + for (Edge *edge = this->edge(vertex->out_edges_); + edge; + edge = this->edge(edge->vertex_out_next_)) { + Vertex *to_vertex = this->vertex(edge->to_); + if (pred->searchThru(edge) && pred->searchTo(to_vertex)) + fn(to_vertex); + } + } +} + +void +Graph::visitFanoutEdges(Vertex *vertex, + SearchPred *pred, + const EdgeFn &fn) +{ + if (pred->searchFrom(vertex)) { + for (Edge *edge = this->edge(vertex->out_edges_); + edge; + edge = this->edge(edge->vertex_out_next_)) { + Vertex *to_vertex = this->vertex(edge->to_); + if (pred->searchThru(edge) && pred->searchTo(to_vertex)) + fn(edge, to_vertex); + } + } +} + +void +Graph::visitFanins(Vertex *vertex, + SearchPred *pred, + const VertexFn &fn) +{ + if (pred->searchFrom(vertex)) { + for (Edge *edge = this->edge(vertex->in_edges_); + edge; + edge = this->edge(edge->vertex_in_next_)) { + Vertex *from_vertex = this->vertex(edge->from_); + if (pred->searchThru(edge) && pred->searchFrom(from_vertex)) + fn(from_vertex); + } + } +} + +void +Graph::visitFaninEdges(Vertex *vertex, + SearchPred *pred, + const EdgeFn &fn) +{ + if (pred->searchFrom(vertex)) { + for (Edge *edge = this->edge(vertex->in_edges_); + edge; + edge = this->edge(edge->vertex_in_next_)) { + Vertex *from_vertex = this->vertex(edge->from_); + if (pred->searchThru(edge) && pred->searchFrom(from_vertex)) + fn(edge, from_vertex); + } + } +} + +//////////////////////////////////////////////////////////////// + Slew Graph::slew(const Vertex *vertex, const RiseFall *rf, @@ -650,7 +717,7 @@ Graph::makeEdge(Vertex *from, from->out_edges_ = edge_id; // Add in edge to to vertex. - edge->vertex_in_link_ = to->in_edges_; + edge->vertex_in_next_ = to->in_edges_; to->in_edges_ = edge_id; initArcDelays(edge); @@ -1213,7 +1280,7 @@ Edge::init(VertexId from, from_ = from; to_ = to; arc_set_ = arc_set; - vertex_in_link_ = edge_id_null; + vertex_in_next_ = edge_id_null; vertex_out_next_ = edge_id_null; vertex_out_prev_ = edge_id_null; is_bidirect_inst_path_ = false; @@ -1464,6 +1531,8 @@ VertexIterator::findNext() findNextPin(); } +//////////////////////////////////////////////////////////////// + VertexInEdgeIterator::VertexInEdgeIterator(Vertex *vertex, const Graph *graph) : next_(graph->edge(vertex->in_edges_)), @@ -1483,7 +1552,7 @@ VertexInEdgeIterator::next() { Edge *next = next_; if (next_) - next_ = graph_->edge(next_->vertex_in_link_); + next_ = graph_->edge(next_->vertex_in_next_); return next; } diff --git a/include/sta/Graph.hh b/include/sta/Graph.hh index 1f6e7ce2..abe38883 100644 --- a/include/sta/Graph.hh +++ b/include/sta/Graph.hh @@ -87,6 +87,19 @@ public: bool hasFaninOne(Vertex *vertex) const; VertexId vertexCount() { return vertices_->size(); } + void visitFanouts(Vertex *vertex, + SearchPred *pred, + const VertexFn &fn); + void visitFanins(Vertex *vertex, + SearchPred *pred, + const VertexFn &fn); + void visitFanoutEdges(Vertex *vertex, + SearchPred *pred, + const EdgeFn &fn); + void visitFaninEdges(Vertex *vertex, + SearchPred *pred, + const EdgeFn &fn); + // Reported slew are the same as those in the liberty tables. // reported_slews = measured_slews / slew_derate_from_library // Measured slews are between slew_lower_threshold and slew_upper_threshold. @@ -394,7 +407,7 @@ protected: TimingArcSet *arc_set_; VertexId from_; VertexId to_; - EdgeId vertex_in_link_; // Vertex in edges list. + EdgeId vertex_in_next_; // Vertex in edges list. EdgeId vertex_out_next_; // Vertex out edges doubly linked list. EdgeId vertex_out_prev_; float *arc_delays_; diff --git a/include/sta/GraphClass.hh b/include/sta/GraphClass.hh index cdf7539b..542f3ac0 100644 --- a/include/sta/GraphClass.hh +++ b/include/sta/GraphClass.hh @@ -65,6 +65,8 @@ using Level = int; using DcalcAPIndex = int; using TagGroupIndex = int; using SlewSeq = std::vector; +using VertexFn = std::function; +using EdgeFn = std::function; static constexpr int level_max = std::numeric_limits::max(); diff --git a/search/Genclks.cc b/search/Genclks.cc index 03d53d74..7b16a51f 100644 --- a/search/Genclks.cc +++ b/search/Genclks.cc @@ -625,16 +625,10 @@ Genclks::enqueueFanin(Vertex *vertex, VertexQueue &insert_queue, SearchPred &srch_pred) { - if (srch_pred.searchTo(vertex, mode_)) { - VertexInEdgeIterator edge_iter(vertex, graph_); - while (edge_iter.hasNext()) { - Edge *edge = edge_iter.next(); - Vertex *from_vertex = edge->from(graph_); - if (srch_pred.searchFrom(from_vertex, mode_) - && srch_pred.searchThru(edge, mode_)) - insert_queue.push(from_vertex); - } - } + graph_->visitFanins(vertex, &srch_pred, + [&insert_queue] (Vertex *fanin) { + insert_queue.push(fanin); + }); } void @@ -642,14 +636,10 @@ Genclks::enqueueFanout(Vertex *vertex, VertexQueue &insert_queue, SearchPred &srch_pred) { - VertexOutEdgeIterator edge_iter(vertex, graph_); - while (edge_iter.hasNext()) { - Edge *edge = edge_iter.next(); - Vertex *to_vertex = edge->to(graph_); - if (srch_pred.searchThru(edge, mode_) - && srch_pred.searchTo(to_vertex, mode_)) - insert_queue.push(to_vertex); - } + graph_->visitFanouts(vertex, &srch_pred, + [&insert_queue] (Vertex *fanout) { + insert_queue.push(fanout); + }); } Tag * From e603b7abe024fd478b7afc9332a8932439de0b4a Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 24 Jun 2026 16:55:51 -0700 Subject: [PATCH 48/61] dynamic loop do not use search pred Signed-off-by: James Cherry --- graph/Graph.cc | 12 ++- include/sta/Search.hh | 16 ++-- include/sta/SearchPred.hh | 8 +- search/PathEnum.cc | 38 +++++++-- search/Search.cc | 159 +++++++++++++++++++++----------------- 5 files changed, 140 insertions(+), 93 deletions(-) diff --git a/graph/Graph.cc b/graph/Graph.cc index 92775d57..e2123cf2 100644 --- a/graph/Graph.cc +++ b/graph/Graph.cc @@ -585,7 +585,8 @@ Graph::visitFanouts(Vertex *vertex, edge; edge = this->edge(edge->vertex_out_next_)) { Vertex *to_vertex = this->vertex(edge->to_); - if (pred->searchThru(edge) && pred->searchTo(to_vertex)) + if (pred->searchThru(edge) + && pred->searchTo(to_vertex)) fn(to_vertex); } } @@ -601,7 +602,8 @@ Graph::visitFanoutEdges(Vertex *vertex, edge; edge = this->edge(edge->vertex_out_next_)) { Vertex *to_vertex = this->vertex(edge->to_); - if (pred->searchThru(edge) && pred->searchTo(to_vertex)) + if (pred->searchThru(edge) + && pred->searchTo(to_vertex)) fn(edge, to_vertex); } } @@ -617,7 +619,8 @@ Graph::visitFanins(Vertex *vertex, edge; edge = this->edge(edge->vertex_in_next_)) { Vertex *from_vertex = this->vertex(edge->from_); - if (pred->searchThru(edge) && pred->searchFrom(from_vertex)) + if (pred->searchThru(edge) + && pred->searchFrom(from_vertex)) fn(from_vertex); } } @@ -633,7 +636,8 @@ Graph::visitFaninEdges(Vertex *vertex, edge; edge = this->edge(edge->vertex_in_next_)) { Vertex *from_vertex = this->vertex(edge->from_); - if (pred->searchThru(edge) && pred->searchFrom(from_vertex)) + if (pred->searchThru(edge) + && pred->searchFrom(from_vertex)) fn(edge, from_vertex); } } diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 8122752e..1fff5663 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -284,8 +284,8 @@ public: Vertex *vertex, const Mode *mode, TagGroupBldr *tag_bldr); - void enqueueLatchDataOutputs(Vertex *vertex); - void enqueueLatchOutput(Vertex *vertex); + void postponeLatchDataOutputs(Vertex *vertex); + void postponeArrivals(Vertex *vertex); void enqueuePendingClkFanouts(); void postponeClkFanouts(Vertex *vertex); void seedRequired(Vertex *vertex); @@ -590,7 +590,7 @@ protected: // Search predicates. SearchPred *search_thru_; - SearchAdj *search_adj_; + SearchPred *search_adj_; EvalPred *eval_pred_; // Some arrivals exist. @@ -647,11 +647,11 @@ protected: std::mutex tag_group_lock_; // Latches data outputs to queue on the next search pass. - VertexSet pending_latch_outputs_; - std::mutex pending_latch_outputs_lock_; + VertexSet postponed_arrivals_; + std::mutex postponed_arrivals_lock_; // Clock network endpoints where arrival search was suppended by findClkArrivals(). - VertexSet pending_clk_endpoints_; - std::mutex pending_clk_endpoints_lock_; + VertexSet postponed_clk_endpoints_; + std::mutex postponed_clk_endpoints_lock_; VertexSet endpoints_; bool endpoints_initialized_{false}; @@ -802,6 +802,8 @@ protected: void pruneCrprArrivals(); void constrainedRequiredsInvalid(Vertex *vertex, bool is_clk); + bool hasPendingLoopPaths(Edge *edge) const; + bool always_to_endpoints_; bool always_save_prev_paths_; bool clks_only_; diff --git a/include/sta/SearchPred.hh b/include/sta/SearchPred.hh index 9bcdf9b8..378e8655 100644 --- a/include/sta/SearchPred.hh +++ b/include/sta/SearchPred.hh @@ -51,19 +51,19 @@ public: // Search is allowed from from_vertex. virtual bool searchFrom(const Vertex *from_vertex, const Mode *mode) const = 0; - bool searchFrom(const Vertex *from_vertex) const; + virtual bool searchFrom(const Vertex *from_vertex) const; // Search is allowed through edge. // from/to pins are NOT checked. // inst can be either the from_pin or to_pin instance because it // is only referenced when they are the same (non-wire edge). virtual bool searchThru(Edge *edge, const Mode *mode) const = 0; - bool searchThru(Edge *edge) const; + virtual bool searchThru(Edge *edge) const; // Search is allowed to to_pin. virtual bool searchTo(const Vertex *to_vertex, const Mode *mode) const = 0; - bool searchTo(const Vertex *to_vertex) const; - void copyState(const StaState *sta); + virtual bool searchTo(const Vertex *to_vertex) const; + virtual void copyState(const StaState *sta); protected: const StaState *sta_; diff --git a/search/PathEnum.cc b/search/PathEnum.cc index e433c703..e0a3ec20 100644 --- a/search/PathEnum.cc +++ b/search/PathEnum.cc @@ -238,6 +238,28 @@ PathEnum::reportDiversionPath(Diversion *div) using VisitedFanins = std::set>; using VertexEdge = std::pair; +class EnumPred : public EvalPred +{ +public: + EnumPred(const StaState *sta); + bool searchThru(Edge *edge, + const Mode *mode) const override; +}; + +EnumPred::EnumPred(const StaState *sta) : + EvalPred(sta) +{ +} + +bool +EnumPred::searchThru(Edge *edge, + const Mode *mode) const +{ + // Do not enum paths across disabled loop edges. + return EvalPred::searchThru(edge, mode) + && !edge->isDisabledLoop(); +} + class PathEnumFaninVisitor : public PathVisitor { public: @@ -247,6 +269,7 @@ public: bool unique_edges, PathEnum *path_enum); PathEnumFaninVisitor(const PathEnumFaninVisitor &visitor); + virtual ~PathEnumFaninVisitor(); VertexVisitor *copy() const override; void visitFaninPathsThru(Path *before_div, Vertex *prev_vertex, @@ -311,7 +334,7 @@ PathEnumFaninVisitor::PathEnumFaninVisitor(PathEnd *path_end, bool unique_pins, bool unique_edges, PathEnum *path_enum) : - PathVisitor(path_enum), + PathVisitor(new EnumPred(path_enum), false, path_enum), path_end_(path_end), before_div_(before_div), unique_pins_(unique_pins), @@ -334,6 +357,11 @@ PathEnumFaninVisitor::PathEnumFaninVisitor(const PathEnumFaninVisitor &visitor) { } +PathEnumFaninVisitor::~PathEnumFaninVisitor() +{ + delete pred_; +} + VertexVisitor * PathEnumFaninVisitor::copy() const { @@ -655,10 +683,10 @@ PathEnum::makeDivertedPath(Path *path, Path *prev_copy = nullptr; while (p) { // prev_path made in next pass. - Path *copy = - new Path(p->vertex(this), p->tag(this), p->arrival(), - // Replaced on next pass. - p->prevPath(), p->prevEdge(this), p->prevArc(this), true, this); + Path *copy = new Path(p->vertex(this), p->tag(this), p->arrival(), + // Replaced on next pass. + p->prevPath(), p->prevEdge(this), p->prevArc(this), + true, this); search_->saveEnumPath(copy); if (prev_copy) prev_copy->setPrevPath(copy); diff --git a/search/Search.cc b/search/Search.cc index ae23c681..d1de9c1e 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -95,8 +95,8 @@ EvalPred::searchThru(Edge *edge, { const TimingRole *role = edge->role(); return SearchPred0::searchThru(edge, mode) - && (sta_->variables()->dynamicLoopBreaking() || !edge->isDisabledLoop()) - && (search_thru_latches_ || role->isLatchDtoQ() + && (search_thru_latches_ + || role->isLatchDtoQ() || sta_->latches()->latchDtoQState(edge, mode) == LatchEnableState::open); } @@ -133,54 +133,56 @@ bool SearchThru::searchThru(Edge *edge, const Mode *mode) const { - return EvalPred::searchThru(edge, mode) && !edge->role()->isLatchDtoQ(); + return EvalPred::searchThru(edge, mode) + && !edge->role()->isLatchDtoQ(); } //////////////////////////////////////////////////////////////// // SearchAdj is mode independent. Search unless -// disabled to break combinational loop // latch D->Q edge // timing check edge -// dynamic loop breaking pending tags +// register set/clear +// bidirect load->driver class SearchAdj : public SearchPred { public: - SearchAdj(TagGroupBldr *tag_bldr, - const StaState *sta); + SearchAdj(const StaState *sta); + bool searchFrom(const Vertex *from_vertex) const override; bool searchFrom(const Vertex *from_vertex, const Mode *mode) const override; + bool searchThru(Edge *edge) const override; bool searchThru(Edge *edge, const Mode *mode) const override; + bool searchTo(const Vertex *to_vertex) const override; bool searchTo(const Vertex *to_vertex, const Mode *mode) const override; protected: - bool loopEnabled(Edge *edge) const; - bool hasPendingLoopPaths(Edge *edge) const; - - TagGroupBldr *tag_bldr_; const StaState *sta_; }; -SearchAdj::SearchAdj(TagGroupBldr *tag_bldr, - const StaState *sta) : +SearchAdj::SearchAdj(const StaState *sta) : SearchPred(sta), - tag_bldr_(tag_bldr), sta_(sta) { } bool -SearchAdj::searchFrom(const Vertex * /* from_vertex */, +SearchAdj::searchFrom(const Vertex *) const +{ + return true; +} + +bool +SearchAdj::searchFrom(const Vertex *, const Mode *) const { return true; } bool -SearchAdj::searchThru(Edge *edge, - const Mode *) const +SearchAdj::searchThru(Edge *edge) const { const TimingRole *role = edge->role(); const Variables *variables = sta_->variables(); @@ -189,42 +191,24 @@ SearchAdj::searchThru(Edge *edge, // Register/latch preset/clr edges are disabled by default. || (role == TimingRole::regSetClr() && !variables->presetClrArcsEnabled()) - || sta_->isDisabledBidirectInstPath(edge) - || (edge->isDisabledLoop() - && !(variables->dynamicLoopBreaking() && hasPendingLoopPaths(edge)))); + || sta_->isDisabledBidirectInstPath(edge)); } bool -SearchAdj::loopEnabled(Edge *edge) const +SearchAdj::searchThru(Edge *edge, + const Mode *) const { - return !edge->isDisabledLoop() - || (sta_->variables()->dynamicLoopBreaking() && hasPendingLoopPaths(edge)); + return searchThru(edge); } bool -SearchAdj::hasPendingLoopPaths(Edge *edge) const +SearchAdj::searchTo(const Vertex *) const { - if (tag_bldr_ && tag_bldr_->hasLoopTag()) { - const Graph *graph = sta_->graph(); - Search *search = sta_->search(); - Vertex *from_vertex = edge->from(graph); - TagGroup *prev_tag_group = search->tagGroup(from_vertex); - for (auto const [from_tag, path_index] : tag_bldr_->pathIndexMap()) { - if (from_tag->isLoop()) { - // Loop false path exceptions apply to rise/fall edges so to_rf - // does not matter. - Tag *to_tag = search->thruTag(from_tag, edge, RiseFall::rise(), nullptr); - if (to_tag - && (prev_tag_group == nullptr || !prev_tag_group->hasTag(from_tag))) - return true; - } - } - } - return false; + return true; } bool -SearchAdj::searchTo(const Vertex * /* to_vertex */, +SearchAdj::searchTo(const Vertex *, const Mode *) const { return true; @@ -236,8 +220,7 @@ Search::Search(StaState *sta) : StaState(sta), search_thru_(new SearchThru(this)), - search_adj_(new SearchAdj(nullptr, - this)), + search_adj_(new SearchAdj(this)), eval_pred_(new EvalPred(this)), invalid_arrivals_(makeVertexSet(this)), @@ -247,9 +230,7 @@ Search::Search(StaState *sta) : arrival_visitor_(new ArrivalVisitor(this)), invalid_requireds_(makeVertexSet(this)), - required_iter_(new BfsBkwdIterator(BfsIndex::required, - search_adj_, - this)), + required_iter_(new BfsBkwdIterator(BfsIndex::required, search_adj_, this)), invalid_tns_(makeVertexSet(this)), clk_info_set_(new ClkInfoSet(ClkInfoLess(this))), @@ -261,8 +242,8 @@ Search::Search(StaState *sta) : tag_group_capacity_(tag_capacity_), tag_groups_(new TagGroup *[tag_group_capacity_]), tag_group_set_(new TagGroupSet(tag_group_capacity_)), - pending_latch_outputs_(makeVertexSet(this)), - pending_clk_endpoints_(makeVertexSet(this)), + postponed_arrivals_(makeVertexSet(this)), + postponed_clk_endpoints_(makeVertexSet(this)), endpoints_(makeVertexSet(this)), invalid_endpoints_(makeVertexSet(this)), @@ -326,8 +307,8 @@ Search::clear() deletePathGroups(); deletePaths(); deleteTags(); - pending_latch_outputs_.clear(); - pending_clk_endpoints_.clear(); + postponed_arrivals_.clear(); + postponed_clk_endpoints_.clear(); deleteFilter(); found_downstream_clk_pins_ = false; } @@ -655,10 +636,10 @@ Search::findFilteredArrivals(bool thru_latches) int arrival_count = arrival_iter_->visitParallel(max_level, arrival_visitor_); debugPrint(debug_, "search", 1, "found {} arrivals", arrival_count); - have_pending_latch_outputs = !pending_latch_outputs_.empty(); - for (Vertex *latch_output : pending_latch_outputs_) + have_pending_latch_outputs = !postponed_arrivals_.empty(); + for (Vertex *latch_output : postponed_arrivals_) arrival_visitor_->visit(latch_output, true); - pending_latch_outputs_.clear(); + postponed_arrivals_.clear(); deleteTagsPrev(); } @@ -997,29 +978,30 @@ Search::findAllArrivals(bool thru_latches, findArrivals1(levelize_->maxLevel()); - have_pending_latch_outputs = !pending_latch_outputs_.empty(); - for (Vertex *latch_output : pending_latch_outputs_) + have_pending_latch_outputs = !postponed_arrivals_.empty(); + for (Vertex *latch_output : postponed_arrivals_) arrival_visitor_->visit(latch_output, true); - pending_latch_outputs_.clear(); + postponed_arrivals_.clear(); } } +// Pick up where the search stopped at the clock network boundary. void Search::enqueuePendingClkFanouts() { - for (Vertex *vertex : pending_clk_endpoints_) { + for (Vertex *vertex : postponed_clk_endpoints_) { debugPrint(debug_, "search", 2, "enqueue clk fanout {}", vertex->to_string(this)); arrival_iter_->enqueueAdjacentVertices(vertex, search_adj_); } - pending_clk_endpoints_.clear(); + postponed_clk_endpoints_.clear(); } void Search::postponeClkFanouts(Vertex *vertex) { - LockGuard lock(pending_clk_endpoints_lock_); - pending_clk_endpoints_.insert(vertex); + LockGuard lock(postponed_clk_endpoints_lock_); + postponed_clk_endpoints_.insert(vertex); } void @@ -1089,7 +1071,7 @@ ArrivalVisitor::init0() { tag_bldr_ = new TagGroupBldr(true, this); tag_bldr_no_crpr_ = new TagGroupBldr(false, this); - adj_pred_ = new SearchAdj(tag_bldr_, this); + adj_pred_ = new SearchAdj(this); } void @@ -1133,7 +1115,7 @@ void ArrivalVisitor::visit(Vertex *vertex) { if (network_->isLatchOutput(vertex->pin())) - search_->enqueueLatchOutput(vertex); + search_->postponeArrivals(vertex); else visit(vertex, false); } @@ -1167,15 +1149,25 @@ ArrivalVisitor::visit(Vertex *vertex, // previous eval pass enqueue the latch outputs to be re-evaled on the // next pass. if (arrivals_changed && network_->isLatchData(pin)) - search_->enqueueLatchDataOutputs(vertex); + search_->postponeLatchDataOutputs(vertex); if ((always_to_endpoints_ || arrivals_changed)) { if (clks_only_ && vertex->isRegClk()) { debugPrint(debug_, "search", 3, "postponing clk fanout"); search_->postponeClkFanouts(vertex); } - else - search_->arrivalIterator()->enqueueAdjacentVertices(vertex, adj_pred_); + else { + graph_->visitFanoutEdges(vertex, adj_pred_, + [this] (Edge *edge, + Vertex *fanout) { + if (edge->isDisabledLoop()) { + if (hasPendingLoopPaths(edge)) + search_->postponeArrivals(fanout); + } + else + search_->arrivalIterator()->enqueue(fanout); + }); + } } if (arrivals_changed) { debugPrint(debug_, "search", 4, "arrivals changed"); @@ -1185,6 +1177,26 @@ ArrivalVisitor::visit(Vertex *vertex, } } +bool +ArrivalVisitor::hasPendingLoopPaths(Edge *edge) const +{ + if (tag_bldr_ && tag_bldr_->hasLoopTag()) { + Vertex *from_vertex = edge->from(graph_); + TagGroup *prev_tag_group = search_->tagGroup(from_vertex); + for (auto const [from_tag, path_index] : tag_bldr_->pathIndexMap()) { + if (from_tag->isLoop()) { + // Loop false path exceptions apply to rise/fall edges so to_rf + // does not matter. + Tag *to_tag = search_->thruTag(from_tag, edge, RiseFall::rise(), nullptr); + if (to_tag + && (prev_tag_group == nullptr || !prev_tag_group->hasTag(from_tag))) + return true; + } + } + } + return false; +} + void ArrivalVisitor::seedArrivals(Vertex *vertex) { @@ -1385,24 +1397,24 @@ ArrivalVisitor::pruneCrprArrivals() } void -Search::enqueueLatchDataOutputs(Vertex *latch_data) +Search::postponeLatchDataOutputs(Vertex *latch_data) { VertexOutEdgeIterator edge_iter(latch_data, graph_); while (edge_iter.hasNext()) { Edge *edge = edge_iter.next(); if (edge->role() == TimingRole::latchDtoQ()) { Vertex *out_vertex = edge->to(graph_); - LockGuard lock(pending_latch_outputs_lock_); - pending_latch_outputs_.insert(out_vertex); + LockGuard lock(postponed_arrivals_lock_); + postponed_arrivals_.insert(out_vertex); } } } void -Search::enqueueLatchOutput(Vertex *vertex) +Search::postponeArrivals(Vertex *vertex) { - LockGuard lock(pending_latch_outputs_lock_); - pending_latch_outputs_.insert(vertex); + LockGuard lock(postponed_arrivals_lock_); + postponed_arrivals_.insert(vertex); } void @@ -1995,7 +2007,8 @@ PathVisitor::visitEdge(const Pin *from_pin, Path *from_path = from_iter.next(); const Mode *mode = from_path->mode(this); if (mode == prev_mode - || (pred_->searchFrom(from_vertex, mode) && pred_->searchThru(edge, mode) + || (pred_->searchFrom(from_vertex, mode) + && pred_->searchThru(edge, mode) && pred_->searchTo(to_vertex, mode))) { prev_mode = mode; const MinMax *min_max = from_path->minMax(this); From 7527553111c1f4233c5238cf4c0aee562d2b250e Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 24 Jun 2026 17:00:00 -0700 Subject: [PATCH 49/61] leak Signed-off-by: James Cherry --- liberty/TimingArc.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/liberty/TimingArc.cc b/liberty/TimingArc.cc index a8ec5516..8a03ae65 100644 --- a/liberty/TimingArc.cc +++ b/liberty/TimingArc.cc @@ -536,6 +536,9 @@ TimingArcSet::destroy() delete wire_timing_arc_set_; wire_timing_arc_set_ = nullptr; wire_timing_arc_attrs_ = nullptr; + + delete port_refpin_timing_arc_set_; + port_refpin_timing_arc_set_ = nullptr; } //////////////////////////////////////////////////////////////// From 2f26c1e21a1670ea44d099e582e9842372068a34 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 24 Jun 2026 18:02:47 -0700 Subject: [PATCH 50/61] make_net check for existing Signed-off-by: James Cherry --- search/Sta.cc | 12 +++++++++--- verilog/VerilogReader.cc | 9 +++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/search/Sta.cc b/search/Sta.cc index e159c7be..19f3d994 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -4407,9 +4407,15 @@ Sta::makeNet(const char *name, { NetworkEdit *network = networkCmdEdit(); std::string escaped = escapeBrackets(name, network); - Net *net = network->makeNet(escaped, parent); - // Sta notification unnecessary. - return net; + if (network->findNet(parent, escaped)) { + report_->warn(1557, "net {} already exists.", name); + return nullptr; + } + else { + Net *net = network->makeNet(escaped, parent); + // Sta notification unnecessary. + return net; + } } void diff --git a/verilog/VerilogReader.cc b/verilog/VerilogReader.cc index 5c6cd0f9..f3a0899d 100644 --- a/verilog/VerilogReader.cc +++ b/verilog/VerilogReader.cc @@ -1468,8 +1468,7 @@ VerilogReader::linkNetwork(std::string_view top_cell_name, while (net_name_iter->hasNext()) { const std::string &net_name = net_name_iter->next(); Port *port = network_->findPort(top_cell, net_name); - Net *net = - bindings.ensureNetBinding(net_name, top_instance, network_); + Net *net = bindings.ensureNetBinding(net_name, top_instance, network_); // Guard against repeated port name. if (network_->findPin(top_instance, port) == nullptr) { Pin *pin = network_->makePin(top_instance, port, nullptr); @@ -1521,13 +1520,11 @@ VerilogReader::makeModuleInstBody(VerilogModule *module, if (assign) mergeAssignNet(assign, module, inst, bindings); if (dir->isGround()) { - Net *net = - bindings->ensureNetBinding(arg->netName(), inst, network_); + Net *net = bindings->ensureNetBinding(arg->netName(), inst, network_); network_->addConstantNet(net, LogicValue::zero); } if (dir->isPower()) { - Net *net = - bindings->ensureNetBinding(arg->netName(), inst, network_); + Net *net = bindings->ensureNetBinding(arg->netName(), inst, network_); network_->addConstantNet(net, LogicValue::one); } } From 0b938d71eb6e66a4a24f9ad1f9849f90c2a93ffd Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 25 Jun 2026 10:04:39 -0700 Subject: [PATCH 51/61] SearchAdjLoop predicate Signed-off-by: James Cherry --- include/sta/Search.hh | 2 +- search/Search.cc | 55 ++++++++++++++++++++++++++++++------------- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 1fff5663..7cfefde1 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -809,7 +809,7 @@ protected: bool clks_only_; TagGroupBldr *tag_bldr_; TagGroupBldr *tag_bldr_no_crpr_; - SearchPred *adj_pred_; + SearchPred *srch_adj_; bool crpr_active_; bool has_fanin_one_; }; diff --git a/search/Search.cc b/search/Search.cc index d1de9c1e..27d196e1 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -139,15 +139,15 @@ SearchThru::searchThru(Edge *edge, //////////////////////////////////////////////////////////////// -// SearchAdj is mode independent. Search unless +// SearchAdjLoop is mode independent. Search unless // latch D->Q edge // timing check edge // register set/clear // bidirect load->driver -class SearchAdj : public SearchPred +class SearchAdjLoop : public SearchPred { public: - SearchAdj(const StaState *sta); + SearchAdjLoop(const StaState *sta); bool searchFrom(const Vertex *from_vertex) const override; bool searchFrom(const Vertex *from_vertex, const Mode *mode) const override; @@ -162,27 +162,27 @@ protected: const StaState *sta_; }; -SearchAdj::SearchAdj(const StaState *sta) : +SearchAdjLoop::SearchAdjLoop(const StaState *sta) : SearchPred(sta), sta_(sta) { } bool -SearchAdj::searchFrom(const Vertex *) const +SearchAdjLoop::searchFrom(const Vertex *) const { return true; } bool -SearchAdj::searchFrom(const Vertex *, - const Mode *) const +SearchAdjLoop::searchFrom(const Vertex *, + const Mode *) const { return true; } bool -SearchAdj::searchThru(Edge *edge) const +SearchAdjLoop::searchThru(Edge *edge) const { const TimingRole *role = edge->role(); const Variables *variables = sta_->variables(); @@ -195,25 +195,46 @@ SearchAdj::searchThru(Edge *edge) const } bool -SearchAdj::searchThru(Edge *edge, - const Mode *) const +SearchAdjLoop::searchThru(Edge *edge, + const Mode *) const { return searchThru(edge); } bool -SearchAdj::searchTo(const Vertex *) const +SearchAdjLoop::searchTo(const Vertex *) const { return true; } bool -SearchAdj::searchTo(const Vertex *, - const Mode *) const +SearchAdjLoop::searchTo(const Vertex *, + const Mode *) const { return true; } +// SearchAdj is mode independent. Search unless +// SearchAdjLoop but not thru disabled loop edges. +class SearchAdj : public SearchAdjLoop +{ +public: + SearchAdj(const StaState *sta); + bool searchThru(Edge *edge) const override; +}; + +SearchAdj::SearchAdj(const StaState *sta) : + SearchAdjLoop(sta) +{ +} + +bool +SearchAdj::searchThru(Edge *edge) const +{ + return SearchAdjLoop::searchThru(edge) + && !edge->isDisabledLoop(); +} + //////////////////////////////////////////////////////////////// Search::Search(StaState *sta) : @@ -1071,7 +1092,7 @@ ArrivalVisitor::init0() { tag_bldr_ = new TagGroupBldr(true, this); tag_bldr_no_crpr_ = new TagGroupBldr(false, this); - adj_pred_ = new SearchAdj(this); + srch_adj_ = new SearchAdjLoop(this); } void @@ -1095,14 +1116,14 @@ void ArrivalVisitor::copyState(const StaState *sta) { StaState::copyState(sta); - adj_pred_->copyState(sta); + srch_adj_->copyState(sta); } ArrivalVisitor::~ArrivalVisitor() { delete tag_bldr_; delete tag_bldr_no_crpr_; - delete adj_pred_; + delete srch_adj_; } void @@ -1157,7 +1178,7 @@ ArrivalVisitor::visit(Vertex *vertex, search_->postponeClkFanouts(vertex); } else { - graph_->visitFanoutEdges(vertex, adj_pred_, + graph_->visitFanoutEdges(vertex, srch_adj_, [this] (Edge *edge, Vertex *fanout) { if (edge->isDisabledLoop()) { From bfdd2be0ee6214115b20cacdc0a071ca3c737fbb Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 25 Jun 2026 10:43:43 -0700 Subject: [PATCH 52/61] ArrivalVisitor::srch_adj_ -> search_adj_ Signed-off-by: James Cherry --- include/sta/Search.hh | 2 +- search/Search.cc | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/sta/Search.hh b/include/sta/Search.hh index 7cfefde1..539c9895 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -809,7 +809,7 @@ protected: bool clks_only_; TagGroupBldr *tag_bldr_; TagGroupBldr *tag_bldr_no_crpr_; - SearchPred *srch_adj_; + SearchPred *search_adj_; bool crpr_active_; bool has_fanin_one_; }; diff --git a/search/Search.cc b/search/Search.cc index 27d196e1..879c1247 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -1092,7 +1092,7 @@ ArrivalVisitor::init0() { tag_bldr_ = new TagGroupBldr(true, this); tag_bldr_no_crpr_ = new TagGroupBldr(false, this); - srch_adj_ = new SearchAdjLoop(this); + search_adj_ = new SearchAdjLoop(this); } void @@ -1116,14 +1116,14 @@ void ArrivalVisitor::copyState(const StaState *sta) { StaState::copyState(sta); - srch_adj_->copyState(sta); + search_adj_->copyState(sta); } ArrivalVisitor::~ArrivalVisitor() { delete tag_bldr_; delete tag_bldr_no_crpr_; - delete srch_adj_; + delete search_adj_; } void @@ -1178,7 +1178,7 @@ ArrivalVisitor::visit(Vertex *vertex, search_->postponeClkFanouts(vertex); } else { - graph_->visitFanoutEdges(vertex, srch_adj_, + graph_->visitFanoutEdges(vertex, search_adj_, [this] (Edge *edge, Vertex *fanout) { if (edge->isDisabledLoop()) { From 666b9214d01460024ece9edebb61986b7d084633 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 25 Jun 2026 16:50:43 -0700 Subject: [PATCH 53/61] LibertyWriter::writeBusDcls() resolves #436 Signed-off-by: James Cherry --- liberty/LibertyWriter.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/liberty/LibertyWriter.cc b/liberty/LibertyWriter.cc index ab8b8177..695b2ccb 100644 --- a/liberty/LibertyWriter.cc +++ b/liberty/LibertyWriter.cc @@ -275,7 +275,7 @@ LibertyWriter::writeBusDcls() sta::print(stream_, " type (\"{}\") {{\n", dcl->name()); sta::print(stream_, " base_type : array;\n"); sta::print(stream_, " data_type : bit;\n"); - sta::print(stream_, " bit_width : {};\n", std::abs(dcl->from() - dcl->to() + 1)); + sta::print(stream_, " bit_width : {};\n", std::abs(dcl->from() - dcl->to()) + 1); sta::print(stream_, " bit_from : {};\n", dcl->from()); sta::print(stream_, " bit_to : {};\n", dcl->to()); sta::print(stream_, " }}\n"); From 37b0b20a624d2b9b9cf0eaa8557fcb13235e015b Mon Sep 17 00:00:00 2001 From: Deepashree Sengupta Date: Thu, 25 Jun 2026 19:55:29 -0400 Subject: [PATCH 54/61] fix missing path issue (#452) Signed-off-by: dsengupta0628 --- include/sta/Sdc.hh | 1 + sdc/Sdc.cc | 12 +++ search/Sta.cc | 2 + test/input_delay_ref_pin_rebuild.ok | 112 +++++++++++++++++++++++++++ test/input_delay_ref_pin_rebuild.tcl | 28 +++++++ test/regression_vars.tcl | 1 + 6 files changed, 156 insertions(+) create mode 100644 test/input_delay_ref_pin_rebuild.ok create mode 100644 test/input_delay_ref_pin_rebuild.tcl diff --git a/include/sta/Sdc.hh b/include/sta/Sdc.hh index 1ba41f91..a93569fe 100644 --- a/include/sta/Sdc.hh +++ b/include/sta/Sdc.hh @@ -577,6 +577,7 @@ public: const RiseFall *clk_rf, const MinMaxAll *min_max); void ensureInputDelayRefPinEdges(); + void inputDelayRefPinEdgesInvalid(); void setOutputDelay(const Pin *pin, const RiseFallBoth *rf, const Clock *clk, diff --git a/sdc/Sdc.cc b/sdc/Sdc.cc index 088cc967..9b30c470 100644 --- a/sdc/Sdc.cc +++ b/sdc/Sdc.cc @@ -2840,6 +2840,18 @@ Sdc::ensureInputDelayRefPinEdges() } } +// The ref_pin edges are owned by the graph. When the graph is deleted the +// edges go with it, so the existence flags must be reset to force them to be +// rebuilt by ensureInputDelayRefPinEdges() with the new graph. +void +Sdc::inputDelayRefPinEdgesInvalid() +{ + if (have_input_delay_ref_pins_) { + for (InputDelay *input_delay : input_delays_) + input_delay->setRefPinEdgesExist(false); + } +} + //////////////////////////////////////////////////////////////// void diff --git a/search/Sta.cc b/search/Sta.cc index 19f3d994..435b8867 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -544,6 +544,8 @@ Sta::clearNonSdc() for (Mode *mode : modes_) { mode->clkNetwork()->clkPinsInvalid(); mode->sim()->clear(); + // ref_pin edges are owned by the graph deleted below; force a rebuild. + mode->sdc()->inputDelayRefPinEdgesInvalid(); } search_->clear(); diff --git a/test/input_delay_ref_pin_rebuild.ok b/test/input_delay_ref_pin_rebuild.ok new file mode 100644 index 00000000..97a18d36 --- /dev/null +++ b/test/input_delay_ref_pin_rebuild.ok @@ -0,0 +1,112 @@ +=== before rebuild: in1 (ref_pin) === +Startpoint: in1 (input port clocked by clk) +Endpoint: r1 (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: max + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 clock clk (rise edge) + 0.00 0.00 clock network delay (ideal) + 100.00 100.00 ^ input external delay + 0.00 100.00 ^ in1 (in) + 0.00 100.00 ^ r1/D (DFFHQx4_ASAP7_75t_R) + 100.00 data arrival time + + 500.00 500.00 clock clk (rise edge) + 0.00 500.00 clock network delay (ideal) + 0.00 500.00 clock reconvergence pessimism + 500.00 ^ r1/CLK (DFFHQx4_ASAP7_75t_R) + -11.41 488.59 library setup time + 488.59 data required time +--------------------------------------------------------- + 488.59 data required time + -100.00 data arrival time +--------------------------------------------------------- + 388.59 slack (MET) + + +=== before rebuild: in2 (control) === +Startpoint: in2 (input port clocked by clk) +Endpoint: r2 (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: max + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 clock clk (rise edge) + 0.00 0.00 clock network delay (ideal) + 100.00 100.00 ^ input external delay + 0.00 100.00 ^ in2 (in) + 0.00 100.00 ^ r2/D (DFFHQx4_ASAP7_75t_R) + 100.00 data arrival time + + 500.00 500.00 clock clk (rise edge) + 0.00 500.00 clock network delay (ideal) + 0.00 500.00 clock reconvergence pessimism + 500.00 ^ r2/CLK (DFFHQx4_ASAP7_75t_R) + -13.11 486.89 library setup time + 486.89 data required time +--------------------------------------------------------- + 486.89 data required time + -100.00 data arrival time +--------------------------------------------------------- + 386.89 slack (MET) + + +=== after rebuild: in1 (ref_pin) === +Startpoint: in1 (input port clocked by clk) +Endpoint: r1 (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: max + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 clock clk (rise edge) + 0.00 0.00 clock network delay (ideal) + 100.00 100.00 ^ input external delay + 0.00 100.00 ^ in1 (in) + 0.00 100.00 ^ r1/D (DFFHQx4_ASAP7_75t_R) + 100.00 data arrival time + + 500.00 500.00 clock clk (rise edge) + 0.00 500.00 clock network delay (ideal) + 0.00 500.00 clock reconvergence pessimism + 500.00 ^ r1/CLK (DFFHQx4_ASAP7_75t_R) + -11.41 488.59 library setup time + 488.59 data required time +--------------------------------------------------------- + 488.59 data required time + -100.00 data arrival time +--------------------------------------------------------- + 388.59 slack (MET) + + +=== after rebuild: in2 (control) === +Startpoint: in2 (input port clocked by clk) +Endpoint: r2 (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: max + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 clock clk (rise edge) + 0.00 0.00 clock network delay (ideal) + 100.00 100.00 ^ input external delay + 0.00 100.00 ^ in2 (in) + 0.00 100.00 ^ r2/D (DFFHQx4_ASAP7_75t_R) + 100.00 data arrival time + + 500.00 500.00 clock clk (rise edge) + 0.00 500.00 clock network delay (ideal) + 0.00 500.00 clock reconvergence pessimism + 500.00 ^ r2/CLK (DFFHQx4_ASAP7_75t_R) + -13.11 486.89 library setup time + 486.89 data required time +--------------------------------------------------------- + 486.89 data required time + -100.00 data arrival time +--------------------------------------------------------- + 386.89 slack (MET) + + diff --git a/test/input_delay_ref_pin_rebuild.tcl b/test/input_delay_ref_pin_rebuild.tcl new file mode 100644 index 00000000..dcf0ac14 --- /dev/null +++ b/test/input_delay_ref_pin_rebuild.tcl @@ -0,0 +1,28 @@ +# set_input_delay -reference_pin must survive a graph rebuild that keeps SDC +# (resizer-like: sta::network_changed_non_sdc deletes the graph but not the +# constraints). The ref_pin->input graph edge is owned by the graph; its +# existence flag (PortDelay::ref_pin_edges_exist_) must be reset on graph +# teardown so ensureInputDelayRefPinEdges() rebuilds the edge. Otherwise in1 +# loses its arrival seeding and reports "No paths found" after the rebuild. +# in2 is a plain input delay (no ref_pin) used as a control. +read_liberty asap7_small.lib.gz +read_verilog reg1_asap7.v +link_design top + +create_clock -name clk -period 500 {clk1 clk2 clk3} +set_input_delay -clock clk 100 -reference_pin r2/CLK [get_ports in1] +set_input_delay -clock clk 100 [get_ports in2] +set_input_transition 10 {in1 in2 clk1 clk2 clk3} +set_output_delay -clock clk 1 [get_ports out] + +puts "=== before rebuild: in1 (ref_pin) ===" +report_checks -from in1 -path_delay max +puts "=== before rebuild: in2 (control) ===" +report_checks -from in2 -path_delay max + +sta::network_changed_non_sdc + +puts "=== after rebuild: in1 (ref_pin) ===" +report_checks -from in1 -path_delay max +puts "=== after rebuild: in2 (control) ===" +report_checks -from in2 -path_delay max diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index bf7e9faa..d1e30064 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -148,6 +148,7 @@ record_public_tests { get_lib_pins_of_objects get_noargs get_objrefs + input_delay_ref_pin_rebuild liberty_arcs_one2one_1 liberty_arcs_one2one_2 liberty_backslash_eol From 1796b158a2f5e5d61d32db16615a044c221566b3 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Fri, 26 Jun 2026 20:20:09 -0700 Subject: [PATCH 55/61] Graph member alignment Signed-off-by: James Cherry --- graph/Graph.cc | 31 +++++++++++++++---------------- include/sta/Graph.hh | 35 +++++++++++++++++------------------ search/Bfs.cc | 12 ++---------- 3 files changed, 34 insertions(+), 44 deletions(-) diff --git a/graph/Graph.cc b/graph/Graph.cc index e2123cf2..589e1fa0 100644 --- a/graph/Graph.cc +++ b/graph/Graph.cc @@ -50,9 +50,9 @@ namespace sta { Graph::Graph(StaState *sta, DcalcAPIndex ap_count) : StaState(sta), - ap_count_(ap_count), period_check_annotations_(network_), - reg_clk_vertices_(makeVertexSet(this)) + reg_clk_vertices_(makeVertexSet(this)), + ap_count_(ap_count) { // For the benifit of reg_clk_vertices_ that references graph_. graph_ = this; @@ -1040,22 +1040,22 @@ Vertex::init(Pin *pin, bool is_reg_clk) { pin_ = pin; - is_reg_clk_ = is_reg_clk; - is_bidirect_drvr_ = is_bidirect_drvr; in_edges_ = edge_id_null; out_edges_ = edge_id_null; slews_ = nullptr; paths_ = nullptr; tag_group_index_ = tag_group_index_max; - slew_annotated_ = false; + bfs_in_queue_ = 0; + is_bidirect_drvr_ = is_bidirect_drvr; + is_reg_clk_ = is_reg_clk; has_checks_ = false; is_check_clk_ = false; has_downstream_clk_pin_ = false; - level_ = 0; visited1_ = false; visited2_ = false; has_sim_value_ = false; - bfs_in_queue_ = 0; + level_ = 0; + slew_annotated_ = false; } Vertex::~Vertex() @@ -1281,20 +1281,19 @@ Edge::init(VertexId from, VertexId to, TimingArcSet *arc_set) { - from_ = from; - to_ = to; arc_set_ = arc_set; - vertex_in_next_ = edge_id_null; - vertex_out_next_ = edge_id_null; - vertex_out_prev_ = edge_id_null; - is_bidirect_inst_path_ = false; - is_bidirect_net_path_ = false; - is_bidirect_port_path_ = false; - arc_delays_ = nullptr; arc_delay_annotated_is_bits_ = true; arc_delay_annotated_.bits_ = 0; + from_ = from; + to_ = to; + vertex_in_next_ = edge_id_null; + vertex_out_next_ = edge_id_null; + vertex_out_prev_ = edge_id_null; delay_annotation_is_incremental_ = false; + is_bidirect_inst_path_ = false; + is_bidirect_net_path_ = false; + is_bidirect_port_path_ = false; is_disabled_loop_ = false; has_sim_sense_ = false; has_disabled_cond_ = false; diff --git a/include/sta/Graph.hh b/include/sta/Graph.hh index abe38883..e4a1be0a 100644 --- a/include/sta/Graph.hh +++ b/include/sta/Graph.hh @@ -192,7 +192,7 @@ public: VertexSet ®ClkVertices() { return reg_clk_vertices_; } static constexpr int vertex_level_bits = 24; - static constexpr int vertex_level_max = (1< bfs_in_queue_; // 8 - int level_:Graph::vertex_level_bits; // 24 - unsigned int slew_annotated_:slew_annotated_bits; // 4 // Bidirect pins have two vertices. // This flag distinguishes the driver and load vertices. - bool is_bidirect_drvr_:1; - - bool is_reg_clk_:1; + unsigned int is_bidirect_drvr_:1; + unsigned int is_reg_clk_:1; // Constrained by timing check edge. - bool has_checks_:1; + unsigned int has_checks_:1; // Is the clock for a timing check. - bool is_check_clk_:1; - bool has_downstream_clk_pin_:1; - bool visited1_:1; - bool visited2_:1; - bool has_sim_value_:1; + unsigned int is_check_clk_:1; + unsigned int has_downstream_clk_pin_:1; + unsigned int visited1_:1; + unsigned int visited2_:1; + unsigned int has_sim_value_:1; + int level_:Graph::vertex_level_bits; // 24 + unsigned int slew_annotated_:slew_annotated_bits; // 4 private: friend class Graph; @@ -405,16 +404,16 @@ protected: static uintptr_t arcDelayAnnotateBit(size_t index); TimingArcSet *arc_set_; - VertexId from_; - VertexId to_; - EdgeId vertex_in_next_; // Vertex in edges list. - EdgeId vertex_out_next_; // Vertex out edges doubly linked list. - EdgeId vertex_out_prev_; float *arc_delays_; union { uintptr_t bits_; std::vector *seq_; } arc_delay_annotated_; + VertexId from_; + VertexId to_; + EdgeId vertex_in_next_; // Vertex in edges list. + EdgeId vertex_out_next_; // Vertex out edges doubly linked list. + EdgeId vertex_out_prev_; bool arc_delay_annotated_is_bits_:1; bool delay_annotation_is_incremental_:1; bool is_bidirect_inst_path_:1; diff --git a/search/Bfs.cc b/search/Bfs.cc index 69b9c28b..ee099344 100644 --- a/search/Bfs.cc +++ b/search/Bfs.cc @@ -343,11 +343,7 @@ BfsIterator::remove(Vertex *vertex) BfsFwdIterator::BfsFwdIterator(BfsIndex bfs_index, SearchPred *search_pred, StaState *sta) : - BfsIterator(bfs_index, - 0, - level_max, - search_pred, - sta) + BfsIterator(bfs_index, 0, Graph::vertex_level_max, search_pred, sta) { } @@ -415,11 +411,7 @@ BfsFwdIterator::enqueueAdjacentVertices(Vertex *vertex, BfsBkwdIterator::BfsBkwdIterator(BfsIndex bfs_index, SearchPred *search_pred, StaState *sta) : - BfsIterator(bfs_index, - level_max, - 0, - search_pred, - sta) + BfsIterator(bfs_index, Graph::vertex_level_max, 0, search_pred, sta) { } From c222b49a7a25b6c33211ee02c55a64a20352deff Mon Sep 17 00:00:00 2001 From: James Cherry Date: Fri, 26 Jun 2026 21:11:13 -0700 Subject: [PATCH 56/61] ConcreteNetwork/Library member alignment Signed-off-by: James Cherry --- include/sta/ConcreteLibrary.hh | 4 ++-- include/sta/ConcreteNetwork.hh | 2 +- network/ConcreteLibrary.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index 75018056..6d291700 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -81,12 +81,12 @@ protected: void removeCell(ConcreteCell *cell); std::string name_; - ObjectId id_; std::string filename_; + ConcreteCellMap cell_map_; + ObjectId id_; bool is_liberty_; char bus_brkt_left_{'['}; char bus_brkt_right_{']'}; - ConcreteCellMap cell_map_; private: friend class ConcreteCell; diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index 593c444c..cbbce614 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -366,10 +366,10 @@ protected: ConcretePort *port_; ConcreteNet *net_; ConcreteTerm *term_{nullptr}; - ObjectId id_; // Doubly linked list of net pins. ConcretePin *net_next_{nullptr}; ConcretePin *net_prev_{nullptr}; + ObjectId id_; VertexId vertex_id_{vertex_id_null}; private: diff --git a/network/ConcreteLibrary.cc b/network/ConcreteLibrary.cc index 77b335a1..45eff5b6 100644 --- a/network/ConcreteLibrary.cc +++ b/network/ConcreteLibrary.cc @@ -42,8 +42,8 @@ ConcreteLibrary::ConcreteLibrary(std::string_view name, std::string_view filename, bool is_liberty) : name_(name), - id_(ConcreteNetwork::nextObjectId()), filename_(filename), + id_(ConcreteNetwork::nextObjectId()), is_liberty_(is_liberty) { } From 3f5f18cb9bebbdf4701c3e86aaa5463eb0f2b3d9 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Sat, 27 Jun 2026 20:43:49 -0700 Subject: [PATCH 57/61] doc Signed-off-by: James Cherry --- doc/OpenSTA.fodt | 2615 +++++++++++++++++++++++----------------------- 1 file changed, 1309 insertions(+), 1306 deletions(-) diff --git a/doc/OpenSTA.fodt b/doc/OpenSTA.fodt index 318b70a0..3b13720c 100644 --- a/doc/OpenSTA.fodt +++ b/doc/OpenSTA.fodt @@ -1,24 +1,24 @@ - Parallax STA documentationJames Cherry5282025-03-17T12:59:52.4638705382010-07-31T21:07:002026-03-21T12:31:10.522816000P123DT2H14M54SLibreOffice/26.2.1.2$MacOSX_AARCH64 LibreOffice_project/8399f6259d8c87f40e7255cdb3c9b958f5e08948PDF files: James CherryJames Cherry12.00000falsefalsefalsefalse + Parallax STA documentationJames Cherry5292025-03-17T12:59:52.4638705382010-07-31T21:07:002026-06-27T19:17:53.216896000P123DT2H17M23SLibreOffice/26.2.1.2$MacOSX_AARCH64 LibreOffice_project/8399f6259d8c87f40e7255cdb3c9b958f5e08948PDF files: James CherryJames Cherry12.00000falsefalsefalsefalse - 2413538 + 2006224 0 30134 - 17268 + 16491 true false view2 - 18244 - 2424328 + 10537 + 2015716 0 - 2413538 + 2006224 30133 - 2430805 + 2022713 0 1 false @@ -92,7 +92,7 @@ false true false - 27556207 + 27679403 0 false @@ -5405,1080 +5405,1083 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + @@ -6614,98 +6617,98 @@ Variables85 - Command Line Arguments + Command Line Arguments The command line arguments for sta are shown below. sta -help show help and exit -version show version and exit -no_init do not read ~/.sta -no_splash do not print the splash message -threads count|max use count threads -exit exit after reading cmd_file cmd_file source cmd_file When OpenSTA starts up, commands are first read from the user initialization file ~/.sta if it exists. If a TCL command file cmd_file is specified on the command line, commands are read from the file and executed before entering an interactive TCL command interpreter. If -exit is specified the application exits after reading cmd_file. Use the TCL exit command to exit the application. The –threads option specifies how many parallel threads to use. Use –threads max to use one thread per processor. - Example Command Scripts + Example Command Scripts To read a design into OpenSTA use the read_liberty command to read Liberty library files. Next, read hierarchical structural Verilog files with the read_verilog command. The link_design command links the Verilog to the Liberty timing cells. Any number of Liberty and Verilog files can be read before linking the design. Delays used for timing analysis are calculated using the Liberty timing models. If no parasitics are read only the pin capacitances of the timing models are used in delay calculation. Use the read_spef command to read parasitics from an extractor, or read_sdf to use delays calculated by an external delay calculator. Timing constraints can be entered as TCL commands or read using the read_sdc command. The units used by OpenSTA for all command arguments and reports are taken from the first Liberty file that is read. Use the set_cmd_units command to override the default units. Use the report_units command to see the ccmmand units. - Timing Analysis using SDF + Timing Analysis using SDF A sample command file that reads a library and a Verilog netlist and reports timing checks is shown below. read_liberty example1_slow.libread_verilog example1.vlink_design topread_sdf example1.sdfcreate_clock -name clk -period 10 {clk1 clk2 clk3}set_input_delay -clock clk 0 {in1 in2}report_checks This example can be found in examples/sdf_delays.tcl. - Timing Analysis with Multiple Process Corners + Timing Analysis with Multiple Process Corners An example command script using three process corners and +/-10% min/max derating is shown below. read_liberty nangate45_slow.lib.gzread_liberty nangate45_typ.lib.gzread_liberty nangate45_fast.lib.gzread_verilog example1.link_design topset_timing_derate -early 0.9set_timing_derate -late 1.1create_clock -name clk -period 10 {clk1 clk2 clk3}set_input_delay -clock clk 0 {in1 in2}define_scene ss -liberty nangate45_slowdefine_scene tt -liberty nangate45_typdefine_scene ff -liberty nangate45_fast# report all scenesreport_checks -path_delay min_max# report typical scenereport_checks -scene tt This example can be found in examples/multi_corner.tcl. Other examples can be found in the examples directory. - Timing Analysis with Multiple Corners and Modes + Timing Analysis with Multiple Corners and Modes OpenSTA supports multi-corner, multi-mode analysis. Each corner/mode combination is called a “scene”. The SDC constraints in each mode describe a different operating mode, such as mission mode or scan mode. Each corner has min/max Liberty libraries and SPEF parasitics. A mode named “default” is initially created for SDC commands. It is deleted when a mode is defined with set_mode or read_sdc -mode. Similartly, a named “default” is initially created that is deleted when define_scene is used to define a scene. An example command script using two process corners two modes is shown below. read_liberty asap7_small_ff.lib.gzread_liberty asap7_small_ss.lib.gzread_verilog reg1_asap7.vlink_design topread_sdc -mode mode1 mcmm2_mode1.sdcread_sdc -mode mode2 mcmm2_mode2.sdcread_spef -name reg1_ff reg1_asap7.spefread_spef -name reg1_ss reg1_asap7_ss.spefdefine_scene scene1 -mode mode1 -liberty asap7_small_ff -spef reg1_ffdefine_scene scene2 -mode mode2 -liberty asap7_small_ss -spef reg1_ssreport_checks -scenes scene1report_checks -scenes scene2report_checks -group_path_count 4 - This example can be found in examples/mcmm3.tcl.In the example show above the SDC for the modes is in separate files. Alternatively, the SDC can be defined in the command file using the set_mode command between SDC command groups. + This example can be found in examples/mcmm3.tcl.In the example show above the SDC for each mode is in defined in a separate file. Alternatively, the SDC can be defined in the command file using the set_mode command between SDC command groups. set_mode mode1create_clock -name m1_clk -period 1000 {clk1 clk2 clk3}set_input_delay -clock m1_clk 100 {in1 in2}set_mode mode2create_clock -name m2_clk -period 500 {clk1 clk3}set_output_delay -clock m2_clk 100 out Statistical Timing Analysis - OpenSTA also supports statistical timing analysis with Liberty Variation Format (LVF) libraries. Statistical timing uses a probability distribution to represent a delay or slew rather than a single number. + OpenSTA also supports statistical timing analysis with Liberty Variation Format (LVF) libraries. Statistical timing uses a probability distribution to represent a delay or slew rather than a single number. Normal and skew normal probability distributions are supported. SSTA is enabled with the sta_pocv_mode variable. - set sta_pocv_mode scalar|normal|skew_normalscalar mode is for non-SSTA analysisnormal mode uses gaussian normal distributionsskew_normal mode is for skew normal LVF moment based distributions + set sta_pocv_mode scalar|normal|skew_normalscalar mode is for non-SSTA analysisnormal mode uses gaussian normal distributionsskew_normal mode is for skew normal LVF moment based distributions The target quantile of a delay probability distribution (confidence level) is set with the sta_pocv_quantile variable. - set sta_pocv_quantile <float> + set sta_pocv_quantile <float> The default value is 3 standard deviations, or sigma. - Use the variation field with the report_checks and report_check_types commands to see distribution parameters in timing reports. + Use the variation field with the report_checks and report_check_types commands to see distribution parameters in timing reports. A command file for analyzing a design with statistical timing is shown below. read_liberty lvf_library.lib.gzread_verilog design.vlink_design topcreate_clock -period 50 clkset_input_delay -clock clk 1 {in1 in2}set sta_pocv_mode skew_normalreport_checks -fields {slew variation input_pin} -digits 3 - Startpoint: r2 (rising edge-triggered flip-flop clocked by clk)Endpoint: r3 (rising edge-triggered flip-flop clocked by clk)Path Group: clkPath Type: max Slew Delay Variation Time Description--------------------------------------------------------------------------- 0.000 0.000 0.000 clock clk (rise edge) 0.000 0.000 clock network delay (ideal) 0.000 0.000 0.000 ^ r2/CK (FDPQ1) 12.026 mean 0.017 mean_shift 0.366 std_dev 0.000 skewness 4.648 12.409 12.409 v r2/Q (FFQ1) 4.648 0.000 12.409 v u1/A (BUF1) 6.084 mean 0.007 mean_shift 0.188 std_dev 0.000 skewness 2.513 6.137 18.546 v u1/X (BUF1) 2.513 0.000 18.546 v u2/A2 (AN21) 6.447 mean 0.008 mean_shift 0.191 std_dev 0.000 skewness 2.565 6.497 25.043 v u2/X (AN21) 2.565 0.000 25.043 v r3/D (FFQ1) 25.043 data arrival time 0.000 50.000 50.000 clock clk (rise edge) 0.000 50.000 clock network delay (ideal) 0.000 50.000 clock reconvergence pessimism 50.000 ^ r3/CK (FFQ1) -9.376 40.624 library setup time 40.624 data required time--------------------------------------------------------------------------- 40.624 data required time -25.043 data arrival time--------------------------------------------------------------------------- 15.581 slack (MET) - The standard deviation for normal distributions is specified with the following liberty timing groups. + Startpoint: r2 (rising edge-triggered flip-flop clocked by clk)Endpoint: r3 (rising edge-triggered flip-flop clocked by clk)Path Group: clkPath Type: max Slew Delay Variation Time Description--------------------------------------------------------------------------- 0.000 0.000 0.000 clock clk (rise edge) 0.000 0.000 clock network delay (ideal) 0.000 0.000 0.000 ^ r2/CK (FDPQ1) 12.026 mean 0.017 mean_shift 0.366 std_dev 0.000 skewness 4.648 12.409 12.409 v r2/Q (FFQ1) 4.648 0.000 12.409 v u1/A (BUF1) 6.084 mean 0.007 mean_shift 0.188 std_dev 0.000 skewness 2.513 6.137 18.546 v u1/X (BUF1) 2.513 0.000 18.546 v u2/A2 (AN21) 6.447 mean 0.008 mean_shift 0.191 std_dev 0.000 skewness 2.565 6.497 25.043 v u2/X (AN21) 2.565 0.000 25.043 v r3/D (FFQ1) 25.043 data arrival time 0.000 50.000 50.000 clock clk (rise edge) 0.000 50.000 clock network delay (ideal) 0.000 50.000 clock reconvergence pessimism 50.000 ^ r3/CK (FFQ1) -9.376 40.624 library setup time 40.624 data required time--------------------------------------------------------------------------- 40.624 data required time -25.043 data arrival time--------------------------------------------------------------------------- 15.581 slack (MET) + The standard deviation for normal distributions is specified with the following liberty timing groups. ocv_sigma_cell_riseocv_sigma_cell_fallocv_sigma_rise_transitionocv_sigma_fall_transitionocv_sigma_rise_constraintocv_sigma_fall_constraint LVF skew normal distributions are specified with liberty groups below. - ocv_std_dev_cell_riseocv_std_dev_cell_fallocv_mean_shift_cell_riseocv_mean_shift_cell_fallocv_skewness_cell_riseocv_skewness_cell_fallocv_std_dev_rise_transitionocv_std_dev_fall_transitionocv_skewness_rise_transitionocv_skewness_fall_transitionocv_mean_shift_rise_transitionocv_mean_shift_fall_transitionocv_std_dev_rise_constraintocv_std_dev_fall_constraintocv_skewness_rise_constraintocv_skewness_fall_constraintocv_mean_shift_rise_constraintocv_mean_shift_fall_constraint + ocv_std_dev_cell_riseocv_std_dev_cell_fallocv_mean_shift_cell_riseocv_mean_shift_cell_fallocv_skewness_cell_riseocv_skewness_cell_fallocv_std_dev_rise_transitionocv_std_dev_fall_transitionocv_skewness_rise_transitionocv_skewness_fall_transitionocv_mean_shift_rise_transitionocv_mean_shift_fall_transitionocv_std_dev_rise_constraintocv_std_dev_fall_constraintocv_skewness_rise_constraintocv_skewness_fall_constraintocv_mean_shift_rise_constraintocv_mean_shift_fall_constraint - Power Analysis + Power Analysis OpenSTA also supports static power analysis with the report_power command. Probabalistic switching activities are propagated from the input ports to determine switching activities for internal pins. - read_liberty sky130hd_tt.libread_verilog gcd_sky130hd.vlink_design gcdread_sdc gcd_sky130hd.sdcread_spef gcd_sky130hd.spefset_power_activity -input -activity 0.1set_power_activity -input_port reset -activity 0report_power - In this example the activity for all inputs is set to 0.1, and then the activity for the reset signal is set to zero because it does not switch during steady state operation. + read_liberty sky130hd_tt.libread_verilog gcd_sky130hd.vlink_design gcdread_sdc gcd_sky130hd.sdcread_spef gcd_sky130hd.spefset_power_activity -input -activity 0.1set_power_activity -input_port reset -activity 0report_power + In this example the activity for all inputs is set to 0.1, and then the activity for the reset signal is set to zero because it does not switch during steady state operation. Group Internal Switching Leakage Total Power Power Power Power (Watts)----------------------------------------------------------------Sequential 3.27e-04 7.87e-05 2.96e-10 4.06e-04 36.4%Combinational 2.34e-04 3.10e-04 6.95e-10 5.43e-04 48.7%Clock 4.68e-05 1.20e-04 2.30e-11 1.67e-04 15.0%Macro 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.0%Pad 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.0%----------------------------------------------------------------Total 6.07e-04 5.09e-04 1.01e-09 1.12e-03 100.0% 54.4% 45.6% 0.0% - This example can be found in examples/power.tcl. - Gate level simulation results can be used to get a more accurate power estimate. For example, the Icarus verilog simulator can be used to run the the test bench examples/gcd_tb.v for the gcd design in the previous example. + This example can be found in examples/power.tcl. + Gate level simulation results can be used to get a more accurate power estimate. For example, the Icarus verilog simulator can be used to run the the test bench examples/gcd_tb.v for the gcd design in the previous example. iverilog -o gcd_tb gcd_tb.vvvp gcd_tb - The test bench writes the VCD (Value Change Data) file gcd_sky130hd.vcd which can then be read with the read_vcd command. - read_liberty sky130hd_tt.libread_verilog gcd_sky130hd.vlink_design gcdread_sdc gcd_sky130hd.sdcread_spef gcd_sky130hd.spefread_vcd -scope gcd_tb/gcd1 gcd_sky130hd.vcd.gzreport_power - This example can be found in examples/power_vcd.tcl. + The test bench writes the VCD (Value Change Data) file gcd_sky130hd.vcd which can then be read with the read_vcd command. + read_liberty sky130hd_tt.libread_verilog gcd_sky130hd.vlink_design gcdread_sdc gcd_sky130hd.sdcread_spef gcd_sky130hd.spefread_vcd -scope gcd_tb/gcd1 gcd_sky130hd.vcd.gzreport_power + This example can be found in examples/power_vcd.tcl. Note that in this simple example design simulation based activities does not significantly change the results. - TCL Interpreter + TCL Interpreter Keyword arguments to commands may be abbreviated. For example, report_checks -unique is equivalent to the following command. report_checks -unique_paths_to_endpoint The help command lists matching commands and their arguments. > help report*report_annotated_check [-setup] [-hold] [-recovery] [-removal] [-nochange] [-width] [-period] [-max_skew] [-max_lines liness] [-list_annotated]group_path_count [-list_not_annotated] [-constant_arcs]report_annotated_delay [-cell] [-net] [-from_in_ports] [-to_out_ports] [-max_lines liness] [-list_annotated] [-list_not_annotated] [-constant_arcs]report_arrival pinreport_check_types [-violators] [-verbose] [-scene scene] [-format slack_only|end] [-max_delay] [-min_delay] [-recovery] [-removal] [-clock_gating_setup] [-clock_gating_hold] [-max_slew] [-min_slew] [-max_fanout] [-min_fanout] [-max_capacitance] [-min_capacitance [-min_pulse_width] [-min_period] [-max_skew] [-net net] [-digits digits [-no_line_splits] [> filename] [>> filename]report_checks [-from from_list|-rise_from from_list|-fall_from from_list] [-through through_list|-rise_through through_list|-fall_through through_list] [-to to_list|-rise_to to_list|-fall_to to_list] [-unconstrained] [-path_delay min|min_rise|min_fall|max|max_rise|max_fall|min_max] [-scene scene] [-group_path_count path_count] [-endpoint_path_count path_count] [-unique_paths_to_endpoint] [-slack_max slack_max] [-slack_min slack_min] [-sort_by_slack] [-path_group group_name] [-format full|full_clock|full_clock_expanded|short|end|summary]... - Many reporting commands support redirection of the output to a file much like a Unix shell. - report_checks -to out1 > path.logreport_checks -to out2 >> path.log - Debugging Timing + Many reporting commands support redirection of the output to a file much like a Unix shell. + report_checks -to out1 > path.logreport_checks -to out2 >> path.log + Debugging Timing Here are some guidelines for debugging your design if static timing does not report any paths, or does not report the expected paths. Debugging timing problems generally involves using the following commands to follow the propagation of arrival times from a known arrival downstream to understand why the arrival times are not propagating: report_edgesreport_arrivalsreport_net - report_edges -from can be used to walk forward and report_edges -to to walk backward in the netlist/timing graph. report_arrivals shows the min/max rise/fall arrival times with respect to each clock that has a path to the pin. report_net shows connections to a net across hierarchy levels. + report_edges -from can be used to walk forward and report_edges -to to walk backward in the netlist/timing graph. report_arrivals shows the min/max rise/fall arrival times with respect to each clock that has a path to the pin. report_net shows connections to a net across hierarchy levels. No paths found - The report_checks command only reports paths that are constrained by timing checks or SDC commands such as set_output_delay. If the design has only combinational logic (no registers or latches), there are no timing checks, so no paths are reported. Use the -unconstrained option to report_checks to see unconstrained paths. + The report_checks command only reports paths that are constrained by timing checks or SDC commands such as set_output_delay. If the design has only combinational logic (no registers or latches), there are no timing checks, so no paths are reported. Use the -unconstrained option to report_checks to see unconstrained paths. % report_checks -unconstrained If the design is sequential (has registers or latches) and no paths are reported, it is likely that there is a problem with the clock propagation. Check the timing at an register in the design with the report_arrivals command. % report_arrivals r1/CP (clk ^) r 0.00:0.00 f INF:-INF (clk v) r INF:-INF f 5.00:5.00 - In this example the rising edge of the clock "clk" causes the rising arrival min:max time at 0.00, and the falling edge arrives at 5.00. Since the rising edge of the clock causes the rising edge of the register clock pin, the clock path is positive unate. + In this example the rising edge of the clock "clk" causes the rising arrival min:max time at 0.00, and the falling edge arrives at 5.00. Since the rising edge of the clock causes the rising edge of the register clock pin, the clock path is positive unate. The clock path should be positive or negative unate. Something is probably wrong with the clock network if it is non-unate. A non-unate clock path will report arrivals similar to the foillowing: % report_arrivals r1/CP (clk ^) r 0.00:0.00 f 0.00:0.00 (clk v) r 5.00:5.00 f 5.00:5.00 Notice that each clock edge causes both rise and fall arrivals at the register clock pin. - If there are no paths to the register clock pin, nothing is printed. Use the report_edges -to command to find the gate driving the clock pin. + If there are no paths to the register clock pin, nothing is printed. Use the report_edges -to command to find the gate driving the clock pin. % report_edges -to r1/CPi1/ZN -> CP wire ^ -> ^ 0.00:0.00 v -> v 0.00:0.00 - This shows that the gate/pin i1/ZN is driving the clock pin. The report_edges -to commond can be used to walk backward or forward through the netlist one gate/net at a time. By checking the arrivals with the report_arrival command you can determine where the path is broken. + This shows that the gate/pin i1/ZN is driving the clock pin. The report_edges -to commond can be used to walk backward or forward through the netlist one gate/net at a time. By checking the arrivals with the report_arrival command you can determine where the path is broken. No path reported an endpoint - In order for a timing check to be reported, there must be an arrival time at the data pin (the constrained pin) as well as the timing check clock pin. If report_checks -to a register input does not report any paths, check that the input is constrained by a timing check with report_edges -to. + In order for a timing check to be reported, there must be an arrival time at the data pin (the constrained pin) as well as the timing check clock pin. If report_checks -to a register input does not report any paths, check that the input is constrained by a timing check with report_edges -to. % report_edges -to r1/DCP -> D hold ^ -> ^ -0.04:-0.04 ^ -> v -0.03:-0.03CP -> D setup ^ -> ^ 0.09:0.0 ^ -> v 0.08:0.08in1 -> D wire ^ -> ^ 0.00:0.00 v -> v 0.00:0.00 - This reports the setup and hold checks for the D pin of r1. + This reports the setup and hold checks for the D pin of r1. Next, check the arrival times at the D and CP pins of the register with report_arrivals. % report_arrivals r1/D (clk1 ^) r 1.00:1.00 f 1.00:1.00% report_arrivals r1/CP (clk1 ^) r 0.00:0.00 f INF:-INF (clk1 v) r INF:-INF f 5.00:5.00 If there are no arrivals on an input port of the design, use the set_input_delay command to specify the arrival times on the port. - Commands + Commands - all_clocks + all_clocks @@ -6718,7 +6721,7 @@ - all_inputs + all_inputs [-no_clocks] @@ -6739,7 +6742,7 @@ - all_outputs + all_outputs @@ -6753,15 +6756,15 @@ - all_registers + all_registers - [-clock clock_names][-cells | -data_pins | -clock_pins | -async_pins | ‑output_pins][-level_sensitive][-edge_triggered] + [-clock clock_names][-cells | -data_pins | -clock_pins | -async_pins | ‑output_pins][-level_sensitive][-edge_triggered] - -clock clock_names + -clock clock_names A list of clock names. Only registers clocked by these clocks are returned. @@ -6824,21 +6827,21 @@ - The all_registers command returns a list of register instances or register pins in the design. Options allow the list of registers to be restricted in various ways. The -clock keyword restrcts the registers to those that are clocked by a set of clocks. The -cells option returns the list of registers or latches (the default). The -‑data_pins, -clock_pins, -async_pins and -output_pins options cause all_registers to return a list of register pins rather than instances. + The all_registers command returns a list of register instances or register pins in the design. Options allow the list of registers to be restricted in various ways. The -clock keyword restrcts the registers to those that are clocked by a set of clocks. The -cells option returns the list of registers or latches (the default). The -‑data_pins, -clock_pins, -async_pins and -output_pins options cause all_registers to return a list of register pins rather than instances. - check_setup + check_setup - [-verbose][-unconstrained_endpoints][-multiple_clock][-no_clock][-no_input_delay][-loops][-generated_clocks][> filename][>> filename] + [-verbose][-unconstrained_endpoints][-multiple_clock][-no_clock][-no_input_delay][-loops][-generated_clocks][> filename][>> filename] - -verbose + -verbose Show offending objects rather than just error counts. @@ -6846,7 +6849,7 @@ - -unconstrained_endpoints + -unconstrained_endpoints Check path endpoints for timing constraints (timing check or set_output_delay). @@ -6854,7 +6857,7 @@ - -multiple_clock + -multiple_clock Check register/latch clock pins for multiple clocks. @@ -6871,7 +6874,7 @@ - -no_input_delay + -no_input_delay Check for inputs that do not have a set_input_delay command. @@ -6894,16 +6897,16 @@ - The check_setup command performs sanity checks on the design. Individual checks can be performed with the keywords. If no check keywords are specified all checks are performed. Checks that fail are reported as warnings. If no checks fail nothing is reported. The command returns 1 if there are no warnings for use in scripts. + The check_setup command performs sanity checks on the design. Individual checks can be performed with the keywords. If no check keywords are specified all checks are performed. Checks that fail are reported as warnings. If no checks fail nothing is reported. The command returns 1 if there are no warnings for use in scripts. - connect_pin + connect_pin - netport|pin + netport|pin @@ -6931,7 +6934,7 @@ - The connect_pin command connects a port or instance pin to a net. + The connect_pin command connects a port or instance pin to a net. @@ -6972,7 +6975,7 @@ -add - Add this clock to the clocks on pin_list. + Add this clock to the clocks on pin_list. @@ -6985,7 +6988,7 @@ The create_clock command defines the waveform of a clock used by the design. - If no pin_list is specified the clock is virtual. A virtual clock can be refered to by name in input arrival and departure time commands but is not attached to any pins in the design. + If no pin_list is specified the clock is virtual. A virtual clock can be refered to by name in input arrival and departure time commands but is not attached to any pins in the design. If no clock name is specified the name of the first pin is used as the clock name. If a wavform is not specified the clock rises at zero and falls at half the clock period. The waveform is a list with time the clock rises as the first element and the time it falls as the second element. If a clock is already defined on a pin the clock is redefined using the new clock parameters. If multiple clocks drive the same pin, use the -add option to prevent the existing definition from being overwritten. @@ -6998,10 +7001,10 @@ - create_generated_clock + create_generated_clock - [-name clock_name]-source master_pin[-master_clock master_clock][-divide_by divisor][-multiply_by multiplier][-duty_cycle duty_cycle][-invert][-edges edge_list][-edge_shift shift_list][-add]pin_list + [-name clock_name]-source master_pin[-master_clock master_clock][-divide_by divisor][-multiply_by multiplier][-duty_cycle duty_cycle][-invert][-edges edge_list][-edge_shift shift_list][-add]pin_list @@ -7017,36 +7020,36 @@ -source master_pin - A pin or port in the fanout of the master clock that is the source of the generated clock. + A pin or port in the fanout of the master clock that is the source of the generated clock. - -master_clock master_clock + -master_clock master_clock - Use -master_clock to specify which source clock to use when multiple clocks are present on master_pin. + Use -master_clock to specify which source clock to use when multiple clocks are present on master_pin. - -divide_by divisor + -divide_by divisor - Divide the master clock period by divisor. + Divide the master clock period by divisor. - -multiply_by multiplier + -multiply_by multiplier - Multiply the master clock period by multiplier. + Multiply the master clock period by multiplier. - -duty_cycle duty_cycle + -duty_cycle duty_cycle The percent of the period that the generated clock is high (between 0 and 100). @@ -7063,15 +7066,15 @@ - -edges edge_list + -edges edge_list - List of master clock edges to use in the generated clock. Edges are numbered from 1. edge_list must be 3 edges long. + List of master clock edges to use in the generated clock. Edges are numbered from 1. edge_list must be 3 edges long. - -edge_shift shift_list + -edge_shift shift_list Not supported. @@ -7082,7 +7085,7 @@ -add - Add this clock to the existing clocks on pin_list. + Add this clock to the existing clocks on pin_list. @@ -7090,7 +7093,7 @@ pin_list - A list of pins driven by the generated clock. + A list of pins driven by the generated clock. @@ -7115,10 +7118,10 @@ - create_voltage_area + create_voltage_area - [-name name][-coordinate coordinates][-guard_band_x guard_x][-guard_band_y guard_y]cells + [-name name][-coordinate coordinates][-guard_band_x guard_x][-guard_band_y guard_y]cells @@ -7128,7 +7131,7 @@ - current_design + current_design [design] @@ -7141,7 +7144,7 @@ - current_instance + current_instance [instance] @@ -7162,23 +7165,23 @@ - define_scene + define_scene - -mode mode_name -liberty liberty_files|-liberty_min liberty_min_files -liberty_max liberty_max_files-spef spef_file| -spef_min spef_min_file -spef_max spef_max_file + -mode mode_name -liberty liberty_files|-liberty_min liberty_min_files -liberty_max liberty_max_files-spef spef_file| -spef_min spef_min_file -spef_max spef_max_file - mode_name + mode_name - The SDC mode to use. + The SDC mode to use. - liberty_files + liberty_files List of Liberty files to use. @@ -7193,18 +7196,18 @@ - The define_scene command defines a scene for a mode (SDC), liberty files and spef parasitics. Define scenes after reading Liberty libraries and SPEF parasitics.Liberty files are specifiec with the name of the liberty library or the filename of the liberty file. If a filename is used, it must be the same as the filename used to read the library with read_liberty.. - Use get_scenes to find defined scenes. + The define_scene command defines a scene for a mode (SDC), liberty files and spef parasitics. Define scenes after reading Liberty libraries and SPEF parasitics.Liberty files are specifiec with the name of the liberty library or the filename of the liberty file. If a filename is used, it must be the same as the filename used to read the library with read_liberty.. + Use get_scenes to find defined scenes. - delete_clock + delete_clock - [-all] clocks + [-all] clocks @@ -7222,7 +7225,7 @@ - delete_from_list + delete_from_list list objects @@ -7233,7 +7236,7 @@ list - A list of objects. + A list of objects. @@ -7251,10 +7254,10 @@ - delete_generated_clock + delete_generated_clock - [-all] clocks + [-all] clocks @@ -7272,7 +7275,7 @@ - delete_instance + delete_instance instance @@ -7283,7 +7286,7 @@ instance - Instance to delete. + Instance to delete. @@ -7293,7 +7296,7 @@ - delete_net + delete_net net @@ -7301,7 +7304,7 @@ - net + net Net to delete. @@ -7314,10 +7317,10 @@ - disconnect_pin + disconnect_pin - netport | pin | -all + netport | pin | -all @@ -7360,7 +7363,7 @@ - elapsed_run_time + elapsed_run_time @@ -7373,83 +7376,83 @@ - find_timing_paths + find_timing_paths - [-from from_list |-rise_from from_list |-fall_from from_list][-through through_list |-rise_through through_list |-fall_through through_list][-to to_list |-rise_to to_list |-fall_to to_list][-unconstrained][-path_delay min|min_rise|min_fall |max|max_rise|max_fall |min_max][-group_path_count path_count][-endpoint_path_count endpoint_path_count][-unique_paths_to_endpoint][-scene scene][-slack_max max_slack][-slack_min min_slack][-sort_by_slack][-path_group groups] + [-from from_list |-rise_from from_list |-fall_from from_list][-through through_list |-rise_through through_list |-fall_through through_list][-to to_list |-rise_to to_list |-fall_to to_list][-unconstrained][-path_delay min|min_rise|min_fall |max|max_rise|max_fall |min_max][-group_path_count path_count][-endpoint_path_count endpoint_path_count][-unique_paths_to_endpoint][-scene scene][-slack_max max_slack][-slack_min min_slack][-sort_by_slack][-path_group groups] - -from from_list + -from from_list - Return paths from a list of clocks, instances, ports, register clock pins, or latch data pins. + Return paths from a list of clocks, instances, ports, register clock pins, or latch data pins. - -rise_from from_list + -rise_from from_list - Return paths from the rising edge of clocks, instances, ports, register clock pins, or latch data pins. + Return paths from the rising edge of clocks, instances, ports, register clock pins, or latch data pins. - -fall_from from_list + -fall_from from_list - Return paths from the falling edge of clocks, instances, ports, register clock pins, or latch data pins. + Return paths from the falling edge of clocks, instances, ports, register clock pins, or latch data pins. - -through through_list + -through through_list - Return paths through a list of instances, pins or nets. + Return paths through a list of instances, pins or nets. - -rise_through through_list + -rise_through through_list - Return rising paths through a list of instances, pins or nets. + Return rising paths through a list of instances, pins or nets. - -fall_through through_list + -fall_through through_list - Return falling paths through a list of instances, pins or nets. + Return falling paths through a list of instances, pins or nets. - -to to_list + -to to_list - Return paths to a list of clocks, instances, ports or pins. + Return paths to a list of clocks, instances, ports or pins. - -rise_to to_list + -rise_to to_list - Return rising paths to a list of clocks, instances, ports or pins. + Return rising paths to a list of clocks, instances, ports or pins. - -fall_to to_list + -fall_to to_list - Return falling paths to a list of clocks, instances, ports or pins. + Return falling paths to a list of clocks, instances, ports or pins. @@ -7457,7 +7460,7 @@ -unconstrained - Report unconstrained paths also. + Report unconstrained paths also. @@ -7518,18 +7521,18 @@ - -group_path_count path_count + -group_path_count path_count - The number of paths to return in each path group. + The number of paths to return in each path group. - -endpoint_path_count endpoint_path_count + -endpoint_path_count endpoint_path_count - The number of paths to return for each endpoint. + The number of paths to return for each endpoint. @@ -7542,7 +7545,7 @@ - -scene scene + -scene scene Return paths for one process corner. @@ -7550,18 +7553,18 @@ - -slack_max max_slack + -slack_max max_slack - Return paths with slack less than max_slack. + Return paths with slack less than max_slack. - -slack_min min_slack + -slack_min min_slack - Return paths with slack greater than min_slack. + Return paths with slack greater than min_slack. @@ -7569,15 +7572,15 @@ -sort_by_slack - Sort paths by slack rather than slack within path groups. + Sort paths by slack rather than slack within path groups. - -path_group groups + -path_group groups - Return paths in path groups. Paths in all groups are returned if this option is not specified. + Return paths in path groups. Paths in all groups are returned if this option is not specified. @@ -7587,10 +7590,10 @@ - get_cells + get_cells - [-hierarchical][-hsc separator][-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] + [-hierarchical][-hsc separator][-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] @@ -7603,18 +7606,18 @@ - -hsc separator + -hsc separator - Character to use to separate hierarchical instance names in patterns. + Character to use to separate hierarchical instance names in patterns. - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -7622,7 +7625,7 @@ -regexp - Use regular expression matching instead of glob pattern matching. + Use regular expression matching instead of glob pattern matching. @@ -7643,7 +7646,7 @@ - -of_objects objects + -of_objects objects The name of a pin or net, a list of pins returned by get_pins, or a list of nets returned by get_nets. The –hierarchical option cannot be used with ‑of_objects. @@ -7664,10 +7667,10 @@ - get_clocks + get_clocks - [-regexp][-nocase][-filter expr][-quiet]patterns + [-regexp][-nocase][-filter expr][-quiet]patterns @@ -7675,7 +7678,7 @@ -regexp - Use regular expression matching instead of glob pattern matching. + Use regular expression matching instead of glob pattern matching. @@ -7689,10 +7692,10 @@ - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -7718,15 +7721,15 @@ - get_fanin + get_fanin - -to sink_list[-flat][-only_cells][-startpoints_only][-levels level_count][-pin_levels pin_count][-trace_arcs timing|enabled|all] + -to sink_list[-flat][-only_cells][-startpoints_only][-levels level_count][-pin_levels pin_count][-trace_arcs timing|enabled|all] - -to sink_list + -to sink_list List of pins, ports, or nets to find the fanin of. For nets, the fanin of driver pins on the nets are returned. @@ -7734,7 +7737,7 @@ - -flat + -flat With –flat pins in the fanin at any hierarchy level are returned. Without ‑flat only pins at the same hierarchy level as the sinks are returned. @@ -7742,7 +7745,7 @@ - -only_cells + -only_cells Return the instances connected to the pins in the fanin. @@ -7750,7 +7753,7 @@ - -startpoints_only + -startpoints_only Only return pins that are startpoints. @@ -7758,7 +7761,7 @@ - -level level_count + -level level_count Only return pins within level_count instance traversals. @@ -7774,15 +7777,15 @@ - -trace_arcs timing + -trace_arcs timing - Only trace through timing arcs that are not disabled. + Only trace through timing arcs that are not disabled. - -trace_arcs enabled + -trace_arcs enabled Only trace through timing arcs that are not disabled. @@ -7790,7 +7793,7 @@ - -trace_arcs all + -trace_arcs all Trace through all arcs, including disabled ones. @@ -7804,15 +7807,15 @@ - get_fanout + get_fanout - -from source_list[-flat][-only_cells][-endpoints_only][-levels level_count][-pin_levels pin_count][-trace_arcs timing|enabled|all] + -from source_list[-flat][-only_cells][-endpoints_only][-levels level_count][-pin_levels pin_count][-trace_arcs timing|enabled|all] - -from source_list + -from source_list List of pins, ports, or nets to find the fanout of. For nets, the fanout of load pins on the nets are returned. @@ -7820,7 +7823,7 @@ - -flat + -flat With –flat pins in the fanin at any hierarchy level are returned. Without ‑flat only pins at the same hierarchy level as the sinks are returned. @@ -7828,7 +7831,7 @@ - -only_cells + -only_cells Return the instances connected to the pins in the fanout. @@ -7836,7 +7839,7 @@ - -endpoints_only + -endpoints_only Only return pins that are endpoints. @@ -7844,7 +7847,7 @@ - -level level_count + -level level_count Only return pins within level_count instance traversals. @@ -7860,15 +7863,15 @@ - -trace_arcs timing + -trace_arcs timing - Only trace through timing arcs that are not disabled. + Only trace through timing arcs that are not disabled. - -trace_arcs enabled + -trace_arcs enabled Only trace through timing arcs that are not disabled. @@ -7876,7 +7879,7 @@ - -trace_arcs all + -trace_arcs all Trace through all arcs, including disabled ones. @@ -7889,7 +7892,7 @@ - get_full_name + get_full_name object @@ -7914,12 +7917,12 @@ get_lib_cells - [-of_objects objects][-hsc separator][-filter expr][-regexp][-nocase][-quiet]patterns + [-of_objects objects][-hsc separator][-filter expr][-regexp][-nocase][-quiet]patterns - -of_objects objects + -of_objects objects A list of instance objects. @@ -7930,15 +7933,15 @@ -hsc separator - Character that separates the library name and cell name in patterns. Defaults to ‘/’. + Character that separates the library name and cell name in patterns. Defaults to ‘/’. - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -7946,7 +7949,7 @@ -regexp - Use regular expression matching instead of glob pattern matching. + Use regular expression matching instead of glob pattern matching. @@ -7967,7 +7970,7 @@ - patterns + patterns A list of library cell name patterns of the form library_name/cell_name. @@ -7980,18 +7983,18 @@ - get_lib_pins + get_lib_pins - [-of_objects objects][-hsc separator][-filter expr][-regexp][-nocase][-quiet]patterns + [-of_objects objects][-hsc separator][-filter expr][-regexp][-nocase][-quiet]patterns - -of_objects objects + -of_objects objects - A list of library cell objects. + A list of library cell objects. @@ -7999,16 +8002,16 @@ -hsc separator - Character that separates the library name, cell name and port name in pattern. Defaults to ‘/’. + Character that separates the library name, cell name and port name in pattern. Defaults to ‘/’. - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -8016,7 +8019,7 @@ -regexp - Use regular expression matching instead of glob pattern matching. + Use regular expression matching instead of glob pattern matching. @@ -8050,18 +8053,18 @@ - get_libs + get_libs - [-filter expr][-regexp][-nocase][-quiet]patterns + [-filter expr][-regexp][-nocase][-quiet]patterns - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -8069,7 +8072,7 @@ -regexp - Use regular expression matching instead of glob pattern matching. + Use regular expression matching instead of glob pattern matching. @@ -8097,17 +8100,17 @@ - The get_libs command returns a list of clocks that match patterns. + The get_libs command returns a list of clocks that match patterns. - get_nets + get_nets - [-hierarchical][-hsc separator][-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] + [-hierarchical][-hsc separator][-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] @@ -8123,15 +8126,15 @@ -hsc separator - Character that separates the library name, cell name and port name in pattern. Defaults to ‘/’. + Character that separates the library name, cell name and port name in pattern. Defaults to ‘/’. - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -8139,7 +8142,7 @@ -regexp - Use regular expression matching instead of glob pattern matching. + Use regular expression matching instead of glob pattern matching. @@ -8181,7 +8184,7 @@ - get_name + get_name object @@ -8203,10 +8206,10 @@ - get_pins + get_pins - [-hierarchical][-hsc separator][-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] + [-hierarchical][-hsc separator][-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] @@ -8222,15 +8225,15 @@ -hsc separator - Character that separates the library name, cell name and port name in pattern. Defaults to ‘/’. + Character that separates the library name, cell name and port name in pattern. Defaults to ‘/’. - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -8254,7 +8257,7 @@ -of_objects objects - The name of a net or instance, a list of nets returned by get_nets, or a list of instances returned by get_cells. The –hierarchical option cannot be used with –of_objects. + The name of a net or instance, a list of nets returned by get_nets, or a list of instances returned by get_cells. The –hierarchical option cannot be used with –of_objects. @@ -8274,19 +8277,19 @@ - get_ports + get_ports - [-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] + [-filter expr][-regexp][-nocase][-quiet][-of_objects objects][patterns] - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. @@ -8294,7 +8297,7 @@ -regexp - Use regular expression matching instead of glob pattern matching. + Use regular expression matching instead of glob pattern matching. @@ -8315,10 +8318,10 @@ - -of_objects objects + -of_objects objects - The name of net or a list of nets returned by get_nets. + The name of net or a list of nets returned by get_nets. @@ -8336,18 +8339,18 @@ - get_property + get_property - [-object_type object_type]objectproperty + [-object_type object_type]objectproperty - -object_type object_type + -object_type object_type - The type of object when it is specified as a name.cell|pin|net|port|clock|library|library_cell|library_pin|timing_arc + The type of object when it is specified as a name.cell|pin|net|port|clock|library|library_cell|library_pin|timing_arc @@ -8355,7 +8358,7 @@ object - An object returned by get_cells, get_pins, get_nets, get_ports, get_clocks, get_libs, get_lib_cells, get_lib_pins, or get_timing_arcs, or object name. ‑object_type is required if object is a name. + An object returned by get_cells, get_pins, get_nets, get_ports, get_clocks, get_libs, get_lib_cells, get_lib_pins, or get_timing_arcs, or object name. ‑object_type is required if object is a name. @@ -8369,28 +8372,28 @@ The properties for different objects types are shown below. cell (SDC lib_cell) - base_namefilenamefull_namelibraryname + base_namefilenamefull_namelibraryname clock - full_nameis_generatedis_propagatedis_virtualnameperiodsources + full_nameis_generatedis_propagatedis_virtualnameperiodsources edge - delay_max_falldelay_min_falldelay_max_risedelay_min_risefull_namefrom_pinsenseto_pin - instance (SDC cell) - cellfull_nameis_bufferis_clock_gateis_hierarchicalis_inverteris_macrois_memoryliberty_cellnameref_name - liberty_cell (SDC lib_cell) - areabase_namedont_usefilenamefull_nameis_bufferis_inverteris_memorylibraryname - liberty_port (SDC lib_pin) - capacitancedirectiondrive_resistancedrive_resistance_max_falldrive_resistance_max_risedrive_resistance_min_falldrive_resistance_min_risefull_nameintrinsic_delayintrinsic_delay_max_fallintrinsic_delay_max_riseintrinsic_delay_min_fallintrinsic_delay_min_riseis_register_clocklib_cellname + delay_max_falldelay_min_falldelay_max_risedelay_min_risefull_namefrom_pinsenseto_pin + instance (SDC cell) + cellfull_nameis_bufferis_clock_gateis_hierarchicalis_inverteris_macrois_memoryliberty_cellnameref_name + liberty_cell (SDC lib_cell) + areabase_namedont_usefilenamefull_nameis_bufferis_inverteris_memorylibraryname + liberty_port (SDC lib_pin) + capacitancedirectiondrive_resistancedrive_resistance_max_falldrive_resistance_max_risedrive_resistance_min_falldrive_resistance_min_risefull_nameintrinsic_delayintrinsic_delay_max_fallintrinsic_delay_max_riseintrinsic_delay_min_fallintrinsic_delay_min_riseis_register_clocklib_cellname library - filename (Liberty library only)namefull_name + filename (Liberty library only)namefull_name net - full_namename + full_namename path (PathEnd) endpointendpoint_clockendpoint_clock_pinslackstartpointstartpoint_clockpoints pin - activity (activity in transitions per second, duty cycle, origin)origin is one ofglobalset_power_activity -globalinputset_power_activity -inputuserset_power_activity -input_ports -pinsvcdread_vcdsaifread_saifpropagatedpropagated from upstream activitiesclockSDC create_clock or create_generated_clockconstantconstant pins propagated from verilog tie high/low, set_case_analysis, set_logic_one/zero/dc - slew_max_fallslew_max_riseslew_min_fallslew_min_riseclocksclock_domainsdirectionfull_nameis_hierarchicalis_portis_register_clocklib_pin_namenameslack_maxslack_max_fallslack_max_riseslack_minslack_min_fallslack_min_rise + activity (activity in transitions per second, duty cycle, origin)origin is one ofglobalset_power_activity -globalinputset_power_activity -inputuserset_power_activity -input_ports -pinsvcdread_vcdsaifread_saifpropagatedpropagated from upstream activitiesclockSDC create_clock or create_generated_clockconstantconstant pins propagated from verilog tie high/low, set_case_analysis, set_logic_one/zero/dc + slew_max_fallslew_max_riseslew_min_fallslew_min_riseclocksclock_domainsdirectionfull_nameis_hierarchicalis_portis_register_clocklib_pin_namenameslack_maxslack_max_fallslack_max_riseslack_minslack_min_fallslack_min_rise port - activityslew_max_fallslew_max_riseslew_min_fallslew_min_risedirectionfull_nameliberty_portnameslack_maxslack_max_fallslack_max_riseslack_minslack_min_fallslack_min_rise + activityslew_max_fallslew_max_riseslew_min_fallslew_min_risedirectionfull_nameliberty_portnameslack_maxslack_max_fallslack_max_riseslack_minslack_min_fallslack_min_rise point (PathRef) arrivalpinrequiredslack @@ -8398,15 +8401,15 @@ - get_scenes + get_scenes - [-mode mode_name]scene_name + [-mode mode_name]scene_name - mode_name + mode_name Get the scenes for mode_name. @@ -8414,7 +8417,7 @@ - scene_name + scene_name A scene name pattern. @@ -8427,61 +8430,61 @@ - get_timing_edges + get_timing_edges - [-from from_pins][-to to_pins][-of_objects objects][-filter expr][patterns] + [-from from_pins][-to to_pins][-of_objects objects][-filter expr][patterns] - -from from_pin + -from from_pin - A list of pins. + A list of pins. - -to to_pin + -to to_pin - A list of pins. + A list of pins. - -of_objects objects + -of_objects objects - A list of instances or library cells. The –from and -to options cannot be used with –of_objects. + A list of instances or library cells. The –from and -to options cannot be used with –of_objects. - -filter expr + -filter expr - A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. + A filter expression of the form property==value”where property is a property supported by the get_property command. See the section “Filter Expressions” for additional forms. - The get_timing_edges command returns a list of timing edges (arcs) to, from or between pins. The result can be passed to get_property or set_disable_timing. + The get_timing_edges command returns a list of timing edges (arcs) to, from or between pins. The result can be passed to get_property or set_disable_timing. - group_path + group_path - -name group_name[-weight weight][-critical_range range][-from from_list |-rise_from from_list |-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list |-rise_to to_list |-fall_to to_list][-default] + -name group_name[-weight weight][-critical_range range][-from from_list |-rise_from from_list |-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list |-rise_to to_list |-fall_to to_list][-default] - -name group_name + -name group_name The name of the path group. @@ -8489,7 +8492,7 @@ - -weight weight + -weight weight Not supported. @@ -8497,7 +8500,7 @@ - -critical_range range + -critical_range range Not supported. @@ -8505,74 +8508,74 @@ - -from from_list + -from from_list - Group paths from a list of clocks, instances, ports, register clock pins, or latch data pins. + Group paths from a list of clocks, instances, ports, register clock pins, or latch data pins. - -rise_from from_list + -rise_from from_list - Group paths from the rising edge of clocks, instances, ports, register clock pins, or latch data pins. + Group paths from the rising edge of clocks, instances, ports, register clock pins, or latch data pins. - -fall_from from_list + -fall_from from_list - Group paths from the falling edge of clocks, instances, ports, register clock pins, or latch data pins. + Group paths from the falling edge of clocks, instances, ports, register clock pins, or latch data pins. - -through through_list + -through through_list - Group paths through a list of instances, pins or nets. + Group paths through a list of instances, pins or nets. - -rise_through through_list + -rise_through through_list - Group rising paths through a list of instances, pins or nets. + Group rising paths through a list of instances, pins or nets. - -fall_through through_list + -fall_through through_list - Group falling paths through a list of instances, pins or nets. + Group falling paths through a list of instances, pins or nets. - -to to_list + -to to_list - Group paths to a list of clocks, instances, ports or pins. + Group paths to a list of clocks, instances, ports or pins. - -rise_to to_list + -rise_to to_list - Group rising paths to a list of clocks, instances, ports or pins. + Group rising paths to a list of clocks, instances, ports or pins. - -fall_to to_list + -fall_to to_list - Group falling paths to a list of clocks, instances, port-s or pins. + Group falling paths to a list of clocks, instances, port-s or pins. @@ -8590,15 +8593,15 @@ - include + include - [-echo|-e][-verbose|-v]filename[> log_filename][>> log_filename] + [-echo|-e][-verbose|-v]filename[> log_filename][>> log_filename] - -echo|-e + -echo|-e Print each command before evaluating it. @@ -8606,7 +8609,7 @@ - -verbose|-v + -verbose|-v Print each command before evaluating it as well as the result it returns. @@ -8622,7 +8625,7 @@ - > log_filename + > log_filename Redirect command output to log_filename. @@ -8630,7 +8633,7 @@ - >> log_filename + >> log_filename Redirect command output and append log_filename. @@ -8638,29 +8641,29 @@ Read STA/SDC/Tcl commands from filename. - The include command stops and reports any errors encountered while reading a file unless sta_continue_on_error is 1. + The include command stops and reports any errors encountered while reading a file unless sta_continue_on_error is 1. - link_design + link_design - [-no_black_boxes][cell_name] + [-no_black_boxes][cell_name] - -no_black_boxes + -no_black_boxes - Do not make empty “black box” cells for instances that reference undefined cells. + Do not make empty “black box” cells for instances that reference undefined cells. - cell_name + cell_name The top level module/cell name of the design hierarchy to link. @@ -8675,7 +8678,7 @@ - make_instance + make_instance inst_pathlib_cell @@ -8699,13 +8702,13 @@ - The make_instance command makes an instance of library cell lib_cell. + The make_instance command makes an instance of library cell lib_cell. - make_net + make_net net_name_list @@ -8726,18 +8729,18 @@ - read_liberty + read_liberty - [-corner corner][-min][-max][-infer_latches]filename + [-corner corner][-min][-max][-infer_latches]filename - -corner corner + -corner corner - Use the library for process corner corner delay calculation. + Use the library for process corner corner delay calculation. @@ -8761,12 +8764,12 @@ filename - The liberty file name to read. + The liberty file name to read. The read_liberty command reads a Liberty format library file. The first library that is read sets the units used by SDC/TCL commands and reporting. The include_file attribute is supported. - Some Liberty libraries do not include latch groups for cells that are describe transparent latches. In that situation the -infer_latches command flag can be used to infer the latches. The timing arcs required for a latch to be inferred should look like the following: + Some Liberty libraries do not include latch groups for cells that are describe transparent latches. In that situation the -infer_latches command flag can be used to infer the latches. The timing arcs required for a latch to be inferred should look like the following: cell (infered_latch) { pin(D) { direction : input ; timing () { related_pin : "E" ; timing_type : setup_falling ; } timing () { related_pin : "E" ; timing_type : hold_falling ; } } pin(E) { direction : input; } pin(Q) { direction : output ; timing () { related_pin : "D" ; } timing () { related_pin : "E" ; timing_type : rising_edge ; } }} In this example a positive level-sensitive latch is inferred. Files compressed with gzip are automatically uncompressed. @@ -8775,18 +8778,18 @@ - read_saif + read_saif - [-scope scope]filename + [-scope scope]filename - scope + scope - The SAIF scope of the current design to extract simulation data. Typically the test bench name and design under test instance name. Scope levels are separated with ‘/’. + The SAIF scope of the current design to extract simulation data. Typically the test bench name and design under test instance name. Scope levels are separated with ‘/’. @@ -8794,26 +8797,26 @@ filename - The name of the SAIF file to read. + The name of the SAIF file to read. - The read_saif command reads a SAIF (Switching Activity Interchange Format) file from a Verilog simulation and extracts pin activities and duty cycles for use in power estimation. Files compressed with gzip are supported. Annotated activities are propagated to the fanout of the annotated pins. + The read_saif command reads a SAIF (Switching Activity Interchange Format) file from a Verilog simulation and extracts pin activities and duty cycles for use in power estimation. Files compressed with gzip are supported. Annotated activities are propagated to the fanout of the annotated pins. - read_sdc + read_sdc - [-mode mode_name][-echo]filename + [-mode mode_name][-echo]filename - mode_name + mode_name Mode for the SDC commands in the file. @@ -8845,15 +8848,15 @@ - read_sdf + read_sdf - [-scene scene][-unescaped_dividers]filename + [-scene scene][-unescaped_dividers]filename - scene + scene Scene delays to annotate. @@ -8861,7 +8864,7 @@ - -unescaped_dividers + -unescaped_dividers With this option path names in the SDF do not have to escape hierarchy dividers when the path name is escaped. For example, the escaped Verilog name "\inst1/inst2 " can be referenced as "inst1/inst2". The correct SDF name is "inst1\/inst2", since the divider does not represent a change in hierarchy in this case. @@ -8876,7 +8879,7 @@ - Read SDF delays from a file. The min and max values in the SDF tuples are used to annotate the delays for corner. The typical values in the SDF tuples are ignored. If multiple scenes are defined -scene must be specified. SDC annotation for mcmm analysis must follow the scene definitions. + Read SDF delays from a file. The min and max values in the SDF tuples are used to annotate the delays for corner. The typical values in the SDF tuples are ignored. If multiple scenes are defined -scene must be specified. SDC annotation for mcmm analysis must follow the scene definitions. Files compressed with gzip are automatically uncompressed. INCREMENT is supported as an alias for INCREMENTAL. The following SDF statements are not supported. @@ -8886,10 +8889,10 @@ - read_spef + read_spef - [-name name][-keep_capacitive_coupling][-coupling_reduction_factor factor][-reduce][-path path]filename + [-name name][-keep_capacitive_coupling][-coupling_reduction_factor factor][-reduce][-path path]filename @@ -8905,7 +8908,7 @@ path - Hierarchical block instance path to annotate with parasitics. + Hierarchical block instance path to annotate with parasitics. @@ -8921,7 +8924,7 @@ ‑coupling_reduction_factorfactor - Factor to multiply coupling capacitance by when reducing parasitic networks. The default value is 1.0. + Factor to multiply coupling capacitance by when reducing parasitic networks. The default value is 1.0. @@ -8933,29 +8936,29 @@ - The read_spef command reads a file of net parasitics in SPEF format. Use the report_parasitic_annotation command to check for nets that are not annotated. + The read_spef command reads a file of net parasitics in SPEF format. Use the report_parasitic_annotation command to check for nets that are not annotated. Files compressed with gzip are automatically uncompressed. - Separate min/max parasitics can be annotated for each scene mode/corner. - read_spef -name min spef1read_spef -name max spef2define_scene -mode mode1 -spef_min min -spef_max max + Separate min/max parasitics can be annotated for each scene mode/corner. + read_spef -name min spef1read_spef -name max spef2define_scene -mode mode1 -spef_min min -spef_max max Coupling capacitors are multiplied by the –coupling_reduction_factor when a parasitic network is reduced. The following SPEF constructs are ignored. *DESIGN_FLOW (all values are ignored)*S slews*D driving cell*I pin capacitances (library cell capacitances are used instead)*Q r_net load poles*K r_net load residues If the SPEF file contains triplet values the first value is used. - Parasitic networks (DSPEF) can be annotated on hierarchical blocks using the -path argument to specify the instance path to the block. Parasitic networks in the higher level netlist are stitched together at the hierarchical pins of the blocks. + Parasitic networks (DSPEF) can be annotated on hierarchical blocks using the -path argument to specify the instance path to the block. Parasitic networks in the higher level netlist are stitched together at the hierarchical pins of the blocks. - read_vcd + read_vcd - [-scope scope][-mode mode_name]filename + [-scope scope][-mode mode_name]filename - scope + scope The VCD scope of the current design to extract simulation data. Typically the test bench name and design under test instance name. Scope levels are separated with ‘/’. @@ -8974,17 +8977,17 @@ filename - The name of the VCD file to read. + The name of the VCD file to read. - The read_vcd command reads a VCD (Value Change Dump) file from a Verilog simulation and extracts pin activities and duty cycles for use in power estimation. Files compressed with gzip are supported. Annotated activities are propagated to the fanout of the annotated pins. + The read_vcd command reads a VCD (Value Change Dump) file from a Verilog simulation and extracts pin activities and duty cycles for use in power estimation. Files compressed with gzip are supported. Annotated activities are propagated to the fanout of the annotated pins. - read_verilog + read_verilog filename @@ -8999,8 +9002,8 @@ - The read_verilog command reads a gate level verilog netlist. After all verilog netlist and Liberty libraries are read the design must be linked with the link_design command. - Verilog 2001 module port declaratations are supported. An example is shown below. + The read_verilog command reads a gate level verilog netlist. After all verilog netlist and Liberty libraries are read the design must be linked with the link_design command. + Verilog 2001 module port declaratations are supported. An example is shown below. module top (input in1, in2, clk1, clk2, clk3, output out); Files compressed with gzip are automatically uncompressed. @@ -9008,16 +9011,16 @@ - replace_cell + replace_cell - instance_listreplacement_cell + instance_listreplacement_cell - instance_list + instance_list A list of instances to swap the cell. @@ -9025,57 +9028,57 @@ - replacement_cell + replacement_cell The replacement lib cell. - The replace_cell command changes the cell of an instance. The replacement cell must have the same port list (number, name, and order) as the instance's existing cell for the replacement to be successful. + The replace_cell command changes the cell of an instance. The replacement cell must have the same port list (number, name, and order) as the instance's existing cell for the replacement to be successful. - replace_activity_annotation + replace_activity_annotation - [-report_unannotated][-report_annotated] + [-report_unannotated][-report_annotated] - -report_unannotated + -report_unannotated - Report unannotated pins. + Report unannotated pins. - -report_unannotated + -report_unannotated - Report annotated pins. + Report annotated pins. - Report a summary of pins that are annotated by read_vcd, read_saif or set_power_activity. Sequential internal pins and hierarchical pins are ignored. + Report a summary of pins that are annotated by read_vcd, read_saif or set_power_activity. Sequential internal pins and hierarchical pins are ignored. - report_annotated_check + report_annotated_check - [-setup][-hold][-recovery][-removal][-nochange][-width][-period][-max_skew][-max_line lines][-report_annotated][-report_unannotated][-constant_arcs] + [-setup][-hold][-recovery][-removal][-nochange][-width][-period][-max_skew][-max_line lines][-report_annotated][-report_unannotated][-constant_arcs] - -setup + -setup Report annotated setup checks. @@ -9083,7 +9086,7 @@ - -hold + -hold Report annotated hold checks. @@ -9091,7 +9094,7 @@ - -recovery + -recovery Report annotated recovery checks. @@ -9099,7 +9102,7 @@ - -removal + -removal Report annotated removal checks. @@ -9107,7 +9110,7 @@ - -nochange + -nochange Report annotated nochange checks. @@ -9115,7 +9118,7 @@ - -width + -width Report annotated width checks. @@ -9123,7 +9126,7 @@ - -period + -period Report annotated period checks. @@ -9131,7 +9134,7 @@ - -max_skew + -max_skew Report annotated max skew checks. @@ -9140,26 +9143,26 @@ - -max_line lines + -max_line lines - Maximum number of lines listed by the report_annotated and ‑report_unannotated options. + Maximum number of lines listed by the report_annotated and ‑report_unannotated options. - -report_annotated + -report_annotated - Report annotated timing arcs. + Report annotated timing arcs. - -report_unannotated + -report_unannotated - Report unannotated timing arcs. + Report unannotated timing arcs. @@ -9171,21 +9174,21 @@ - The report_annotated_check command reports a summary of SDF timing check annotation. The -report_annotated and report_annotated options can be used to list arcs that are annotated or not annotated. + The report_annotated_check command reports a summary of SDF timing check annotation. The -report_annotated and report_annotated options can be used to list arcs that are annotated or not annotated. - report_annotated_delay + report_annotated_delay - [-cell][-net][-from_in_ports][-to_out_ports][-max_lines lines][-report_annotated][-report_unannotated][-constant_arcs] + [-cell][-net][-from_in_ports][-to_out_ports][-max_lines lines][-report_annotated][-report_unannotated][-constant_arcs] - -cell + -cell Report annotated cell delays. @@ -9193,7 +9196,7 @@ - -net + -net Report annotated internal net delays. @@ -9201,7 +9204,7 @@ - -from_in_ports + -from_in_ports Report annotated delays from input ports. @@ -9209,7 +9212,7 @@ - -to_out_ports + -to_out_ports Report annotated delays to output ports. @@ -9217,26 +9220,26 @@ - -max_lines lines + -max_lines lines - Maximum number of lines listed by the report_annotated and ‑report_unannotated options. + Maximum number of lines listed by the report_annotated and ‑report_unannotated options. - -report_annotated + -report_annotated - Report annotated timing arcs. + Report annotated timing arcs. - -report_unannotated + -report_unannotated - Report unannotated timing arcs. + Report unannotated timing arcs. @@ -9248,90 +9251,90 @@ - The report_annotated_delay command reports a summary of SDF delay annotation. Without the ‑from_in_ports and –to_out_ports options arcs to and from top level ports are not reported. The ‑report_annotated and report_unannotated options can be used to list arcs that are annotated or not annotated. + The report_annotated_delay command reports a summary of SDF delay annotation. Without the ‑from_in_ports and –to_out_ports options arcs to and from top level ports are not reported. The ‑report_annotated and report_unannotated options can be used to list arcs that are annotated or not annotated. - report_checks + report_checks - [-from from_list |-rise_from from_list |-fall_from from_list][-through through_list |-rise_through through_list |-fall_through through_list][-to to_list |-rise_to to_list |-fall_to to_list][-unconstrained][-path_delay min|min_rise|min_fall |max|max_rise|max_fall |min_max][-group_path_count path_count][-endpoint_path_count endpoint_path_count][-unique_paths_to_endpoint][-unique_edges_to_endpoint][-scenes scenes][-slack_max max_slack][-slack_min min_slack][-sort_by_slack][-path_group groups][-format end|full|short|summary |full_clock|full_clock_expanded |json][-fields fields][-digits digits][-no_line_split][> filename][>> filename] + [-from from_list |-rise_from from_list |-fall_from from_list][-through through_list |-rise_through through_list |-fall_through through_list][-to to_list |-rise_to to_list |-fall_to to_list][-unconstrained][-path_delay min|min_rise|min_fall |max|max_rise|max_fall |min_max][-group_path_count path_count][-endpoint_path_count endpoint_path_count][-unique_paths_to_endpoint][-unique_edges_to_endpoint][-scenes scenes][-slack_max max_slack][-slack_min min_slack][-sort_by_slack][-path_group groups][-format end|full|short|summary |full_clock|full_clock_expanded |json][-fields fields][-digits digits][-no_line_split][> filename][>> filename] - -from from_list + -from from_list - Report paths from a list of clocks, instances, ports, register clock pins, or latch data pins. + Report paths from a list of clocks, instances, ports, register clock pins, or latch data pins. - -rise_from from_list + -rise_from from_list - Report paths from the rising edge of clocks, instances, ports, register clock pins, or latch data pins. + Report paths from the rising edge of clocks, instances, ports, register clock pins, or latch data pins. - -fall_from from_list + -fall_from from_list - Report paths from the falling edge of clocks, instances, ports, register clock pins, or latch data pins. + Report paths from the falling edge of clocks, instances, ports, register clock pins, or latch data pins. - -through through_list + -through through_list - Report paths through a list of instances, pins or nets. + Report paths through a list of instances, pins or nets. - -rise_through through_list + -rise_through through_list - Report rising paths through a list of instances, pins or nets. + Report rising paths through a list of instances, pins or nets. - -fall_through through_list + -fall_through through_list - Report falling paths through a list of instances, pins or nets. + Report falling paths through a list of instances, pins or nets. - -to to_list + -to to_list - Report paths to a list of clocks, instances, ports or pins. + Report paths to a list of clocks, instances, ports or pins. - -rise_to to_list + -rise_to to_list - Report rising paths to a list of clocks, instances, ports or pins. + Report rising paths to a list of clocks, instances, ports or pins. - -fall_to to_list + -fall_to to_list - Report falling paths to a list of clocks, instances, ports or pins. + Report falling paths to a list of clocks, instances, ports or pins. @@ -9339,7 +9342,7 @@ -unconstrained - Report unconstrained paths also. The unconstrained path group is not reported without this option. + Report unconstrained paths also. The unconstrained path group is not reported without this option. @@ -9400,7 +9403,7 @@ - -group_path_count path_count + -group_path_count path_count The number of paths to report in each path group. The default is 1. @@ -9408,7 +9411,7 @@ - -endpoint_path_count endpoint_path_count + -endpoint_path_count endpoint_path_count The number of paths to report for each endpoint. The default is 1. @@ -9419,15 +9422,15 @@ ‑unique_paths_to_endpoint - When multiple paths to an endpoint are specified with ‑endpoint_path_count, many of the paths may differ only in the rise/fall edges of the pins in the paths. With this option only the worst path through the set of pins is reported. + When multiple paths to an endpoint are specified with ‑endpoint_path_count, many of the paths may differ only in the rise/fall edges of the pins in the paths. With this option only the worst path through the set of pins is reported. - ‑unique_edges_to_endpoint + ‑unique_edges_to_endpoint - When multiple paths to an endpoint are specified with ‑endpoint_path_count, conditional timing arcs result in paths that through the same pins and rise/fall edges. With this option only the worst path through the set of pins and rise/fall edges is reported. + When multiple paths to an endpoint are specified with ‑endpoint_path_count, conditional timing arcs result in paths that through the same pins and rise/fall edges. With this option only the worst path through the set of pins and rise/fall edges is reported. @@ -9435,7 +9438,7 @@ scenes - Report paths for one process corner. The default is to report paths for all process corners. + Report paths for one process corner. The default is to report paths for all process corners. @@ -9465,10 +9468,10 @@ - groups + groups - List of path groups to report. The default is to report all path groups. + List of path groups to report. The default is to report all path groups. @@ -9521,10 +9524,10 @@ - -format json + -format json - Report in json format. -fields is ignored. + Report in json format. -fields is ignored. @@ -9532,7 +9535,7 @@ fields - List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variation + List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variation @@ -9552,7 +9555,7 @@ - The report_checks command reports paths in the design. Paths are reported in groups by capture clock, unclocked path delays, gated clocks and unconstrained. + The report_checks command reports paths in the design. Paths are reported in groups by capture clock, unclocked path delays, gated clocks and unconstrained. See set_false_path for a description of allowed from_list, through_list and to_list objects. @@ -9560,10 +9563,10 @@ - report_check_types + report_check_types - [-scenes scenes][-violators][-verbose][-fields fields][-format slack_only|end][-max_delay][-min_delay][-recovery][-removal][-clock_gating_setup][-clock_gating_hold][-max_slew][-min_slew][-min_pulse_width][-min_period][-digits digits][-no_split_lines][> filename][>> filename] + [-scenes scenes][-violators][-verbose][-fields fields][-format slack_only|end][-max_delay][-min_delay][-recovery][-removal][-clock_gating_setup][-clock_gating_hold][-max_slew][-min_slew][-min_pulse_width][-min_period][-digits digits][-no_split_lines][> filename][>> filename] @@ -9571,12 +9574,12 @@ scenes - Report checks for some scenes. The default value is all scenes. + Report checks for some scenes. The default value is all scenes. - -violators + -violators Report all violated timing and design rule constraints. @@ -9592,18 +9595,18 @@ - -format slack_only + -format slack_only - Report the minimum slack for each timing check. + Report the minimum slack for each timing check. - -format end + -format end - Report the endpoint for each check. + Report the endpoint for each check. @@ -9611,7 +9614,7 @@ fields - List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variation + List of capacitance|slew|input_pins|hierarchical_pins|nets|fanout|src_attr|variation @@ -9705,7 +9708,7 @@ - -digits digits + -digits digits The number of digits after the decimal point to report. The default value is the variable sta_report_default_digits. @@ -9726,10 +9729,10 @@ - report_clock_latency + report_clock_latency - [-clocks clocks][-scenes scenes][-include_internal_latency][-digits digits] + [-clocks clocks][-scenes scenes][-include_internal_latency][-digits digits] @@ -9737,7 +9740,7 @@ clocks - The clocks to report. The default value is all c + The clocks to report. The default value is all c @@ -9745,7 +9748,7 @@ scenes - Report clocks for scenes. The default value is all clocks in scenes modes. + Report clocks for scenes. The default value is all clocks in scenes modes. @@ -9771,10 +9774,10 @@ - report_clock_min_period + report_clock_min_period - [-clocks clocks][-scenes scenes][-include_port_paths] + [-clocks clocks][-scenes scenes][-include_port_paths] @@ -9794,16 +9797,16 @@ - Report the minimum period and maximum frequency for clocks. If the -clocks argument is not specified all clocks are reported. The minimum period is determined by examining the smallest slack paths between registers the rising edges of the clock or between falling edges of the clock. Paths between different clocks, different clock edges of the same clock, level sensitive latches, or paths constrained by set_multicycle_path, set_max_path are not considered. + Report the minimum period and maximum frequency for clocks. If the -clocks argument is not specified all clocks are reported. The minimum period is determined by examining the smallest slack paths between registers the rising edges of the clock or between falling edges of the clock. Paths between different clocks, different clock edges of the same clock, level sensitive latches, or paths constrained by set_multicycle_path, set_max_path are not considered. - report_clock_properties + report_clock_properties - [clock_names] + [clock_names] @@ -9821,15 +9824,15 @@ - report_clock_skew + report_clock_skew - [-setup|-hold][-clocks clocks][-scenes scenes][-include_internal_latency][-digits digits] + [-setup|-hold][-clocks clocks][-scenes scenes][-include_internal_latency][-digits digits] - -setup + -setup Report skew for setup checks. @@ -9848,7 +9851,7 @@ clocks - The clocks to report. The default value is all clocks in scenes modes. + The clocks to report. The default value is all clocks in scenes modes. @@ -9856,7 +9859,7 @@ scenes - Report clocks for scenes. The default value is all scenes. + Report clocks for scenes. The default value is all scenes. @@ -9869,23 +9872,23 @@ - -digits digits + -digits digits The number of digits to report for delays. - Report the maximum difference in clock arrival between every source and target register that has a path between the source and target registers. + Report the maximum difference in clock arrival between every source and target register that has a path between the source and target registers. - report_dcalc + report_dcalc - [-from from_pin][-to to_pin][-scene scene][-min][-max][-digits digits][> filename][>> filename] + [-from from_pin][-to to_pin][-scene scene][-min][-max][-digits digits][> filename][>> filename] @@ -9893,7 +9896,7 @@ from_pin - Report delay calculations for timing arcs from instance input pin from_pin. + Report delay calculations for timing arcs from instance input pin from_pin. @@ -9901,7 +9904,7 @@ to_pin - Report delay calculations for timing arcs to instance output pin to_pin. + Report delay calculations for timing arcs to instance output pin to_pin. @@ -9910,28 +9913,28 @@ scene - Report paths for process scene. The -scene keyword is required if more than one process corner is defined. + Report paths for process scene. The -scene keyword is required if more than one process corner is defined. - -min + -min - Report delay calculation for min delays. + Report delay calculation for min delays. - -max + -max - Report delay calculation for max delays. + Report delay calculation for max delays. - -digits digits + -digits digits The number of digits after the decimal point to report. The default is sta_report_default_digits. @@ -9944,7 +9947,7 @@ - report_disabled_edges + report_disabled_edges @@ -9952,16 +9955,16 @@ The report_disabled_edges command reports disabled timing arcs along with the reason they are disabled. Each disabled timing arc is reported as the instance name along with the from and to ports of the arc. The disable reason is shown next. Arcs that are disabled with set_disable_timing are reported with constraint as the reason. Arcs that are disabled by constants are reported with constant as the reason along with the constant instance pin and value. Arcs that are disabled to break combinational feedback loops are reported with loop as the reason. - > report_disabled_edgesu1 A B constant B=0 + > report_disabled_edgesu1 A B constant B=0 - report_edges + report_edges - [-from from_pin][-to to_pin][-report_variation][-digits digits] + [-from from_pin][-to to_pin][-report_variation][-digits digits] @@ -9969,7 +9972,7 @@ from_pin - Report edges/timing arcs from pin from_pin. + Report edges/timing arcs from pin from_pin. @@ -9977,7 +9980,7 @@ to_pin - Report edges/timing arcs to pin to_pin. + Report edges/timing arcs to pin to_pin. @@ -9997,17 +10000,17 @@ - Report the edges/timing arcs and their delays in the timing graph from/to/between pins. + Report the edges/timing arcs and their delays in the timing graph from/to/between pins. - report_instance + report_instance - instance_path[> filename][>> filename] + instance_path[> filename][>> filename] @@ -10025,10 +10028,10 @@ - report_lib_cell + report_lib_cell - cell_name[> filename][>> filename] + cell_name[> filename][>> filename] @@ -10040,16 +10043,16 @@ - Describe the liberty library cell cell_name. + Describe the liberty library cell cell_name. - report_net + report_net - [-digits digits]net_path[> filename][>> filename] + [-digits digits]net_path[> filename][>> filename] @@ -10075,10 +10078,10 @@ - report_parasitic_annotation + report_parasitic_annotation - [-report_unannotated][> filename][>> filename] + [-report_unannotated][> filename][>> filename] @@ -10096,50 +10099,50 @@ - report_power + report_power - [-instances instances][-highest_power_instances count][-digits digits][> filename][>> filename] + [-instances instances][-highest_power_instances count][-digits digits][> filename][>> filename] - -instances instances + -instances instances - Report the power for each instance of instances. If the instance is hierarchical the total power for the instances inside the hierarchical instance is reported. + Report the power for each instance of instances. If the instance is hierarchical the total power for the instances inside the hierarchical instance is reported. - -highest_power_instances count + -highest_power_instances count - Report the power for the count highest power instances. + Report the power for the count highest power instances. - -digits digits + -digits digits The number of digits after the decimal point to report. The default value is the variable sta_report_default_digits. - The report_power command uses static power analysis based on propagated or annotated pin activities in the circuit using Liberty power models. The internal, switching, leakage and total power are reported. Design power is reported separately for combinational, sequential, macro and pad groups. Power values are reported in watts. - The read_vcd or read_saif commands can be used to read activities from a file based on simulation. If no simulation activities are available, the set_power_activity command should be used to set the activity of input ports or pins in the design. The default input activity and duty for inputs are 0.1 and 0.5 respectively. The activities are propagated from annotated input ports or pins through gates and used in the power calculations. + The report_power command uses static power analysis based on propagated or annotated pin activities in the circuit using Liberty power models. The internal, switching, leakage and total power are reported. Design power is reported separately for combinational, sequential, macro and pad groups. Power values are reported in watts. + The read_vcd or read_saif commands can be used to read activities from a file based on simulation. If no simulation activities are available, the set_power_activity command should be used to set the activity of input ports or pins in the design. The default input activity and duty for inputs are 0.1 and 0.5 respectively. The activities are propagated from annotated input ports or pins through gates and used in the power calculations. Group Internal Switching Leakage Total Power Power Power Power----------------------------------------------------------------Sequential 3.29e-06 3.41e-08 2.37e-07 3.56e-06 92.4%Combinational 1.86e-07 3.31e-08 7.51e-08 2.94e-07 7.6%Macro 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.0%Pad 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.0%---------------------------------------------------------------Total 3.48e-06 6.72e-08 3.12e-07 3.86e-06 100.0% 90.2% 1.7% 8.1% - report_slews + report_slews - [-scenes scenes][-report_variation][-digits digits]pin + [-scenes scenes][-report_variation][-digits digits]pin @@ -10147,7 +10150,7 @@ scenes - Report slews for process for scenes process corners. + Report slews for process for scenes process corners. @@ -10160,10 +10163,10 @@ - -digits digits + -digits digits - The number of digits after the decimal point to report. The default value is the variable sta_report_default_digits. + The number of digits after the decimal point to report. The default value is the variable sta_report_default_digits. @@ -10182,10 +10185,10 @@ - report_tns + report_tns - [-min][-max][-digits digits] + [-min][-max][-digits digits] @@ -10193,7 +10196,7 @@ -max - Report the total max/setup slack. + Report the total max/setup slack. @@ -10201,12 +10204,12 @@ -min - Report the total min/hold slack. + Report the total min/hold slack. - -digits digits + -digits digits The number of digits after the decimal point to report. The default value is the variable sta_report_default_digits. @@ -10219,24 +10222,24 @@ - report_units + report_units - Report the units used for command arguments and reporting. + Report the units used for command arguments and reporting. report_units time 1ns capacitance 1pF resistance 1kohm voltage 1v current 1A power 1pW distance 1um - report_wns + report_wns - [-min][-max][-digits digits] + [-min][-max][-digits digits] @@ -10244,7 +10247,7 @@ -max - Report the worst max/setup slack. + Report the worst max/setup slack. @@ -10252,12 +10255,12 @@ -min - Report the worst min/hold slack. + Report the worst min/hold slack. - -digits digits + -digits digits The number of digits after the decimal point to report. The default value is the variable sta_report_default_digits. @@ -10270,10 +10273,10 @@ - report_worst_slack + report_worst_slack - [-min][-max][-digits digits] + [-min][-max][-digits digits] @@ -10282,7 +10285,7 @@ -max - Report the worst max/setup slack. + Report the worst max/setup slack. @@ -10290,12 +10293,12 @@ -min - Report the worst min/hold slack. + Report the worst min/hold slack. - -digits digits + -digits digits The number of digits after the decimal point to report. The default value is the variable sta_report_default_digits. @@ -10308,10 +10311,10 @@ - set_assigned_check + set_assigned_check - -setup|-hold|-recovery|-removal[-rise][-fall][-scene scene][-min][-max][-from from_pins][-to to_pins][-clock rise|fall][-cond sdf_cond][-worst]margin + -setup|-hold|-recovery|-removal[-rise][-fall][-scene scene][-min][-max][-from from_pins][-to to_pins][-clock rise|fall][-cond sdf_cond][-worst]margin @@ -10319,7 +10322,7 @@ -setup - Annotate setup timing checks. + Annotate setup timing checks. @@ -10327,7 +10330,7 @@ -hold - Annotate hold timing checks. + Annotate hold timing checks. @@ -10335,7 +10338,7 @@ -recovery - Annotate recovery timing checks. + Annotate recovery timing checks. @@ -10343,7 +10346,7 @@ -removal - Annotate removal timing checks. + Annotate removal timing checks. @@ -10405,10 +10408,10 @@ - -clock rise|fall + -clock rise|fall - The timing check clock pin transition. + The timing check clock pin transition. @@ -10416,7 +10419,7 @@ margin - The timing check margin. + The timing check margin. @@ -10426,10 +10429,10 @@ - set_assigned_delay + set_assigned_delay - -cell|-net[-rise][-fall][-scene scene][-min][-max][-from from_pins][-to to_pins]delay + -cell|-net[-rise][-fall][-scene scene][-min][-max][-from from_pins][-to to_pins]delay @@ -10520,10 +10523,10 @@ - set_assigned_transition + set_assigned_transition - [-rise][-fall][-scene scene][-min][-max]slewpin_list + [-rise][-fall][-scene scene][-min][-max]slewpin_list @@ -10547,7 +10550,7 @@ scene - Annotate delays for scene. + Annotate delays for scene. @@ -10589,10 +10592,10 @@ - set_case_analysis + set_case_analysis - 0|1|zero|one|rise|rising|fall|fallingport_or_pin_list + 0|1|zero|one|rise|rising|fall|fallingport_or_pin_list @@ -10611,16 +10614,16 @@ - set_clock_gating_check + set_clock_gating_check - [-setup setup_time][-hold hold_time][-rise][-fall][-high][-low][objects] + [-setup setup_time][-hold hold_time][-rise][-fall][-high][-low][objects] - -setup setup_time + -setup setup_time Clock enable setup margin. @@ -10628,7 +10631,7 @@ - -hold hold_time + -hold hold_time Clock enable hold margin. @@ -10685,18 +10688,18 @@ - set_clock_groups + set_clock_groups - [-name name][-logically_exclusive][-physically_exclusive][-asynchronous][-allow_paths]-group clocks + [-name name][-logically_exclusive][-physically_exclusive][-asynchronous][-allow_paths]-group clocks - -name name + -name name - The clock group name. + The clock group name. @@ -10704,7 +10707,7 @@ -logically_exclusive - The clocks in different groups do not interact logically but can be physically present on the same chip. Paths between clock groups are considered for noise analysis. + The clocks in different groups do not interact logically but can be physically present on the same chip. Paths between clock groups are considered for noise analysis. @@ -10713,7 +10716,7 @@ -physically_exclusive - The clocks in different groups cannot be present at the same time on a chip. Paths between clock groups are not considered for noise analysis. + The clocks in different groups cannot be present at the same time on a chip. Paths between clock groups are not considered for noise analysis. @@ -10721,7 +10724,7 @@ -asynchronous - The clock groups are asynchronous. Paths between clock groups are considered for noise analysis. + The clock groups are asynchronous. Paths between clock groups are considered for noise analysis. @@ -10734,7 +10737,7 @@ - clocks + clocks A list of clocks in the group. @@ -10747,15 +10750,15 @@ - set_clock_latency + set_clock_latency - [-source][-clock clock][-rise][-fall][-min][-max]delayobjects + [-source][-clock clock][-rise][-fall][-min][-max]delayobjects - -source + -source The latency is at the clock source. @@ -10763,7 +10766,7 @@ - -clock clock + -clock clock If multiple clocks are defined at a pin this use this option to specify the latency for a specific clock. @@ -10818,16 +10821,16 @@ - The set_clock_latency command describes expected delays of the clock tree when anxsalyzing a design using ideal clocks. Use the -source option to specify latency at the clock source, also known as insertion delay. Source latency is delay in the clock tree that is external to the design or a clock tree internal to an instance that implements a complex logic function.set_clock_latency removes propagated clock properties for the clocks and pins objects. + The set_clock_latency command describes expected delays of the clock tree when anxsalyzing a design using ideal clocks. Use the -source option to specify latency at the clock source, also known as insertion delay. Source latency is delay in the clock tree that is external to the design or a clock tree internal to an instance that implements a complex logic function.set_clock_latency removes propagated clock properties for the clocks and pins objects. - set_clock_transition + set_clock_transition - [-rise][-fall][-min][-max]transitionclocks + [-rise][-fall][-min][-max]transitionclocks @@ -10835,7 +10838,7 @@ -rise - Set the transition time for the rising edge of the clock. + Set the transition time for the rising edge of the clock. @@ -10843,7 +10846,7 @@ -fall - Set the transition time for the falling edge of the clock. + Set the transition time for the falling edge of the clock. @@ -10851,7 +10854,7 @@ -min - Set the min transition time. + Set the min transition time. @@ -10859,7 +10862,7 @@ -max - Set the min transition time. + Set the min transition time. @@ -10885,15 +10888,15 @@ - set_clock_uncertainty + set_clock_uncertainty - [-from|-rise_from|-fall_from from_clock][-to|-rise_to|-fall_to to_clock][-rise][-fall][-setup][-hold]uncertainty[objects] + [-from|-rise_from|-fall_from from_clock][-to|-rise_to|-fall_to to_clock][-rise][-fall][-setup][-hold]uncertainty[objects] - -from from_clock + -from from_clock Inter-clock uncertainty source clock. @@ -10901,7 +10904,7 @@ - -to to_clock + -to to_clock Inter-clock uncertainty target clock. @@ -10912,7 +10915,7 @@ -rise - Inter-clock target clock rise edge, alternative to ‑rise_to.Inter-clock target clock rise edge, alternative to ‑rise_to. + Inter-clock target clock rise edge, alternative to ‑rise_to.Inter-clock target clock rise edge, alternative to ‑rise_to. @@ -10920,7 +10923,7 @@ -fall - Inter-clock target clock rise edge, alternative to ‑fall_to. + Inter-clock target clock rise edge, alternative to ‑fall_to. @@ -10928,7 +10931,7 @@ -setup - uncertainty is for setup checks. + uncertainty is for setup checks. @@ -10937,7 +10940,7 @@ -hold - uncertainty is for hold checks. + uncertainty is for hold checks. @@ -10957,26 +10960,26 @@ - The set_clock_uncertainty command specifies the uncertainty or jitter in a clock. The uncertainty for a clock can be specified on its source pin or port, or the clock itself. - set_clock_uncertainty .1 [get_clock clk1] - Inter-clock uncertainty between the source and target clocks of timing checks is specified with the ‑from|‑rise_from|-fall_from andto|‑rise_to|-fall_to arguments . - set_clock_uncertainty -from [get_clock clk1] -to [get_clocks clk2] .1 - The following commands are equivalent. - set_clock_uncertainty -from [get_clock clk1] -rise_to [get_clocks clk2] .1set_clock_uncertainty -from [get_clock clk1] -to [get_clocks clk2] -rise .1 + The set_clock_uncertainty command specifies the uncertainty or jitter in a clock. The uncertainty for a clock can be specified on its source pin or port, or the clock itself. + set_clock_uncertainty .1 [get_clock clk1] + Inter-clock uncertainty between the source and target clocks of timing checks is specified with the ‑from|‑rise_from|-fall_from andto|‑rise_to|-fall_to arguments . + set_clock_uncertainty -from [get_clock clk1] -to [get_clocks clk2] .1 + The following commands are equivalent. + set_clock_uncertainty -from [get_clock clk1] -rise_to [get_clocks clk2] .1set_clock_uncertainty -from [get_clock clk1] -to [get_clocks clk2] -rise .1 - set_cmd_units + set_cmd_units - [-capacitance cap_unit][-resistance res_unit][-time time_unit][-voltage voltage_unit][-current current_unit][-power power_unit][-distance distance_unit] + [-capacitance cap_unit][-resistance res_unit][-time time_unit][-voltage voltage_unit][-current current_unit][-power power_unit][-distance distance_unit] - -capacitance cap_unit + -capacitance cap_unit The capacitance scale factor followed by 'f'. @@ -10984,7 +10987,7 @@ - -resistance res_unit + -resistance res_unit The resistance scale factor followed by 'ohm'. @@ -10992,7 +10995,7 @@ - -time time_unit + -time time_unit The time scale factor followed by 's'. @@ -11000,15 +11003,15 @@ - -voltage voltage_unit + -voltage voltage_unit - The voltage scale factor followed by 'v'. + The voltage scale factor followed by 'v'. - -current current_unit + -current current_unit The current scale factor followed by 'A'. @@ -11016,7 +11019,7 @@ - -power power_unit + -power power_unit The power scale factor followed by 'w'. @@ -11024,14 +11027,14 @@ - -distance distance_unit + -distance distance_unit The distance scale factor followed by 'm'. - The set_cmd_units command is used to change the units used by the STA command interpreter when parsing commands and reporting results. The default units are the units specified in the first Liberty library file that is read. + The set_cmd_units command is used to change the units used by the STA command interpreter when parsing commands and reporting results. The default units are the units specified in the first Liberty library file that is read. Units are specified as a scale factor followed by a unit name. The scale factors are as follows. M 1E+6k 1E+3m 1E-3u 1E-6n 1E-9p 1E-12f 1E-15 An example of the set_units command is shown below. @@ -11041,15 +11044,15 @@ - set_data_check + set_data_check - [-from|-rise_from|-fall_from from_pin][-to|-rise_to|-fall_to to_pin][-setup][-hold][-clock clock]margin + [-from|-rise_from|-fall_from from_pin][-to|-rise_to|-fall_to to_pin][-setup][-hold][-clock clock]margin - -from from_pin + -from from_pin A pin used as the timing check reference. @@ -11057,7 +11060,7 @@ - -to to_pin + -to to_pin A pin that the setup/hold check is applied to. @@ -11081,7 +11084,7 @@ - -clock clock + -clock clock The setup/hold check clock. @@ -11102,7 +11105,7 @@ - set_disable_inferred_clock_gating + set_disable_inferred_clock_gating objects @@ -11117,21 +11120,21 @@ - The set_disable_inferred_clock_gating command disables clock gating checks on a clock gating instance, clock gating pin, or clock gating enable pin. + The set_disable_inferred_clock_gating command disables clock gating checks on a clock gating instance, clock gating pin, or clock gating enable pin. - set_disable_timing + set_disable_timing - [-from from_port][-to to_port]objects + [-from from_port][-to to_port]objects - -from from_port + -from from_port @@ -11139,7 +11142,7 @@ - -to to_port + -to to_port @@ -11150,12 +11153,12 @@ objects - A list of instances, ports, pins, cells, cell/port, or library/cell/port. + A list of instances, ports, pins, cells, cell/port, or library/cell/port. The set_disable_timing command is used to disable paths though pins in the design. There are many different forms of the command depending on the objects specified in objects. - All timing paths though an instance are disabled when objects contains an instance. Timing checks in the instance are not disabled. + All timing paths though an instance are disabled when objects contains an instance. Timing checks in the instance are not disabled. set_disable_timing u2 The -from and -to options can be used to restrict the disabled path to those from, to or between specific pins on the instance. set_disable_timing -from A u2set_disable_timing -to Z u2set_disable_timing -from A -to Z u2 @@ -11168,10 +11171,10 @@ - set_drive + set_drive - [-rise][-fall][-max][-min]resistanceports + [-rise][-fall][-max][-min]resistanceports @@ -11195,7 +11198,7 @@ -max - Set the maximum resistance. + Set the maximum resistance. @@ -11203,7 +11206,7 @@ -min - Set the minimum resistance. + Set the minimum resistance. @@ -11216,7 +11219,7 @@ - ports + ports A list of ports. @@ -11229,15 +11232,15 @@ - set_driving_cell + set_driving_cell - [-lib_cell cell_name][-library library][-rise][-fall][-min][-max][-pin pin][-from_pin from_pin][-input_transition_rise trans_rise][-input_transition_fall trans_fall]ports + [-lib_cell cell_name][-library library][-rise][-fall][-min][-max][-pin pin][-from_pin from_pin][-input_transition_rise trans_rise][-input_transition_fall trans_fall]ports - -lib_cell cell_name + -lib_cell cell_name The driving cell. @@ -11245,10 +11248,10 @@ - -library library + -library library - The driving cell library. + The driving cell library. @@ -11256,7 +11259,7 @@ -rise - Set the driving cell for a rising edge. + Set the driving cell for a rising edge. @@ -11265,7 +11268,7 @@ -fall - Set the driving cell for a falling edge. + Set the driving cell for a falling edge. @@ -11273,7 +11276,7 @@ -max - Set the driving cell for max delays. + Set the driving cell for max delays. @@ -11281,12 +11284,12 @@ -min - Set the driving cell for min delays. + Set the driving cell for min delays. - -pin pin + -pin pin The output port of the driving cell. @@ -11294,31 +11297,31 @@ - -from_pin from_pin + -from_pin from_pin - Use timing arcs from from_pin to the output pin. + Use timing arcs from from_pin to the output pin. - -input_transition_rise trans_rise + -input_transition_rise trans_rise - The transition time for a rising input at from_pin. + The transition time for a rising input at from_pin. - -input_transition_fall trans_fall + -input_transition_fall trans_fall - The transition time for a falling input at from_pin. + The transition time for a falling input at from_pin. - ports + ports A list of ports. @@ -11331,10 +11334,10 @@ - set_false_path + set_false_path - [-setup][-hold][-rise][-fall][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-reset_path] + [-setup][-hold][-rise][-fall][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-reset_path] @@ -11342,7 +11345,7 @@ -setup - Apply to setup checks. + Apply to setup checks. @@ -11350,7 +11353,7 @@ -hold - Apply to hold checks. + Apply to hold checks. @@ -11358,7 +11361,7 @@ -rise - Apply to rising path edges. + Apply to rising path edges. @@ -11366,7 +11369,7 @@ -fall - Apply to falling path edges. + Apply to falling path edges. @@ -11380,7 +11383,7 @@ - -from from_list + -from from_list A list of clocks, instances, ports or pins. @@ -11388,7 +11391,7 @@ - -through through_list + -through through_list A list of instances, pins or nets. @@ -11396,7 +11399,7 @@ - -to to_list + -to to_list A list of clocks, instances, ports or pins. @@ -11412,10 +11415,10 @@ - set_fanout_load + set_fanout_load - fanoutport_list + fanoutport_list @@ -11425,7 +11428,7 @@ - set_hierarchy_separator + set_hierarchy_separator separator @@ -11446,7 +11449,7 @@ - set_ideal_latency + set_ideal_latency [-rise] [-fall] [-min] [-max] delay objects @@ -11459,7 +11462,7 @@ - set_ideal_network + set_ideal_network [-no_propagation] objects @@ -11472,7 +11475,7 @@ - set_ideal_transition + set_ideal_transition [-rise] [-fall] [-min] [-max] transition_time objects @@ -11485,10 +11488,10 @@ - set_input_delay + set_input_delay - [-rise][-fall][-max][-min][-clock clock][-clock_fall][-reference_pin ref_pin][-source_latency_included][-network_latency_included][-add_delay]delayport_pin_list + [-rise][-fall][-max][-min][-clock clock][-clock_fall][-reference_pin ref_pin][-source_latency_included][-network_latency_included][-add_delay]delayport_pin_list @@ -11496,7 +11499,7 @@ -rise - Set the arrival time for the rising edge of the input. + Set the arrival time for the rising edge of the input. @@ -11504,7 +11507,7 @@ -fall - Set the arrival time for the falling edge of the input. + Set the arrival time for the falling edge of the input. @@ -11512,7 +11515,7 @@ -max - Set the maximum arrival time. + Set the maximum arrival time. @@ -11520,15 +11523,15 @@ -min - Set the minimum arrival time. + Set the minimum arrival time. - -clock clock + -clock clock - The arrival time is from clock. + The arrival time is from clock. @@ -11536,12 +11539,12 @@ -clock_fall - The arrival time is from the falling edge of clock. + The arrival time is from the falling edge of clock. - -reference_pin ref_pin + -reference_pin ref_pin The arrival time is with respect to the clock that arrives at ref_pin. @@ -11552,7 +11555,7 @@ -source_latency_included - D no add the clock source latency (insertion delay) to the delay value. + D no add the clock source latency (insertion delay) to the delay value. @@ -11560,7 +11563,7 @@ -network_latency_included - Do not add the clock latency to the delay value when the clock is ideal. + Do not add the clock latency to the delay value when the clock is ideal. @@ -11589,21 +11592,21 @@ The set_input_delay command is used to specify the arrival time of an input signal. - The following command sets the min, max, rise and fall times on the in1 input port 1.0 time units after the rising edge of clk1. + The following command sets the min, max, rise and fall times on the in1 input port 1.0 time units after the rising edge of clk1. set_input_delay -clock clk1 1.0 [get_ports in1] - Use multiple commands with the -add_delay option to specify separate arrival times for min, max, rise and fall times or multiple clocks. For example, the following specifies separate arrival times with respect to clocks clk1 and clk2. - set_input_delay -clock clk1 1.0 [get_ports in1]set_input_delay -add_delay -clock clk2 2.0 [get_ports in1] + Use multiple commands with the -add_delay option to specify separate arrival times for min, max, rise and fall times or multiple clocks. For example, the following specifies separate arrival times with respect to clocks clk1 and clk2. + set_input_delay -clock clk1 1.0 [get_ports in1]set_input_delay -add_delay -clock clk2 2.0 [get_ports in1] The –reference_pin option is used to specify an arrival time with respect to the arrival on a pin in the clock network. For propagated clocks, the input arrival time is relative to the clock arrival time at the reference pin (the clock source latency and network latency from the clock source to the reference pin). For ideal clocks, input arrival time is relative to the reference pin clock source latency. With the -clock_fall flag the arrival time is relative to the falling transition at the reference pin. If no clocks arrive at the reference pin the set_input_delay command is ignored. If no -clock is specified the arrival time is with respect to all clocks that arrive at the reference pin. The -source_latency_included and -network_latency_included options cannot be used with -reference_pin. - Paths from inputs that do not have an arrival time defined by set_input_delay are not reported. Set the sta_input_port_default_clock variable to 1 to report paths from inputs without a set_input_delay. + Paths from inputs that do not have an arrival time defined by set_input_delay are not reported. Set the sta_input_port_default_clock variable to 1 to report paths from inputs without a set_input_delay. - set_input_transition + set_input_transition - [-rise][-fall][-max][-min]transitionport_list + [-rise][-fall][-max][-min]transitionport_list @@ -11611,7 +11614,7 @@ -rise - Set the rising edge transition. + Set the rising edge transition. @@ -11619,7 +11622,7 @@ -fall - Set the falling edge transition. + Set the falling edge transition. @@ -11627,7 +11630,7 @@ -max - Set the minimum transition time. + Set the minimum transition time. @@ -11635,7 +11638,7 @@ -min - Set the maximum transition time. + Set the maximum transition time. @@ -11661,10 +11664,10 @@ - set_level_shifter_strategy + set_level_shifter_strategy - [-rule rule_type] + [-rule rule_type] @@ -11675,10 +11678,10 @@ - set_level_shifter_threshold + set_level_shifter_threshold - [-voltage voltage] + [-voltage voltage] @@ -11688,10 +11691,10 @@ - set_load + set_load - [-rise][-fall][-max][-min][-subtract_pin_load][-pin_load][-wire_load]capacitanceobjects + [-rise][-fall][-max][-min][-subtract_pin_load][-pin_load][-wire_load]capacitanceobjects @@ -11699,7 +11702,7 @@ -rise - Set the external port rising capacitance (ports only). + Set the external port rising capacitance (ports only). @@ -11707,7 +11710,7 @@ -fall - Set the external port falling capacitance (ports only). + Set the external port falling capacitance (ports only). @@ -11715,7 +11718,7 @@ -max - Set the max capacitance. + Set the max capacitance. @@ -11723,7 +11726,7 @@ -min - Set the min capacitance. + Set the min capacitance. @@ -11731,7 +11734,7 @@ -subtract_pin_load - Subtract the capacitance of all instance pins connected to the net from capacitance (nets only). If the resulting capacitance is negative, zero is used. Pin capacitances are ignored by delay calculation when this option is used. + Subtract the capacitance of all instance pins connected to the net from capacitance (nets only). If the resulting capacitance is negative, zero is used. Pin capacitances are ignored by delay calculation when this option is used. @@ -11767,24 +11770,24 @@ - The set_load command annotates wire capacitance on a net or external capacitance on a port. There are four different uses for the set_load commanc: - set_load -wire_load port external port wire capacitanceset_load -pin_load port external port pin capacitanceset_load port same as -pin_loadset_load net net wire capacitance - External port capacitance can be annotated separately with the -pin_load and ‑wire_load options. Without the -pin_load and -wire_load options pin capacitance is annotated. - When annotating net wire capacitance with the -subtract_pin_load option the capacitance of all instance pins connected to the net is subtracted from capacitance. Setting the capacitance on a net overrides SPEF parasitics for delay calculation. + The set_load command annotates wire capacitance on a net or external capacitance on a port. There are four different uses for the set_load commanc: + set_load -wire_load port external port wire capacitanceset_load -pin_load port external port pin capacitanceset_load port same as -pin_loadset_load net net wire capacitance + External port capacitance can be annotated separately with the -pin_load and ‑wire_load options. Without the -pin_load and -wire_load options pin capacitance is annotated. + When annotating net wire capacitance with the -subtract_pin_load option the capacitance of all instance pins connected to the net is subtracted from capacitance. Setting the capacitance on a net overrides SPEF parasitics for delay calculation. - set_logic_dc + set_logic_dc - port_list + port_list - port_pin_list + port_pin_list List of ports or pins. @@ -11797,57 +11800,57 @@ - set_logic_one + set_logic_one - port_list + port_list - port_pin_list + port_pin_list List of ports or pins. - Set a port or pin to a constant logic one value. No paths are propagated from constant pins. Constant values set with the set_logic_one command are not propagated through downstream gates. + Set a port or pin to a constant logic one value. No paths are propagated from constant pins. Constant values set with the set_logic_one command are not propagated through downstream gates. - set_logic_zero + set_logic_zero - port_list + port_list - port_pin_list + port_pin_list List of ports or pins. - Set a port or pin to a constant logic zero value. No paths are propagated from constant pins. Constant values set with the set_logic_zero command are not propagated through downstream gates. + Set a port or pin to a constant logic zero value. No paths are propagated from constant pins. Constant values set with the set_logic_zero command are not propagated through downstream gates. - set_max_area + set_max_area - area + area - area + area @@ -11860,15 +11863,15 @@ - set_max_capacitance + set_max_capacitance - capacitanceobjects + capacitanceobjects - capacitance + capacitance @@ -11877,7 +11880,7 @@ - objects + objects List of ports or cells. @@ -11890,10 +11893,10 @@ - set_max_delay + set_max_delay - [-rise][-fall][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-ignore_clock_latency][-probe][-reset_path]delay + [-rise][-fall][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-ignore_clock_latency][-probe][-reset_path]delay @@ -11901,7 +11904,7 @@ -rise - Set max delay for rising paths. + Set max delay for rising paths. @@ -11909,12 +11912,12 @@ -fall - Set max delay for falling paths. + Set max delay for falling paths. - -from from_list + -from from_list A list of clocks, instances, ports or pins. @@ -11922,7 +11925,7 @@ - -through through_list + -through through_list A list of instances, pins or nets. @@ -11930,7 +11933,7 @@ - -to to_list + -to to_list A list of clocks, instances, ports or pins. @@ -11946,7 +11949,7 @@ - -probe + -probe Do not break paths at internal pins (non startpoints). @@ -11976,10 +11979,10 @@ - set_max_dynamic_power + set_max_dynamic_power - power [unit] + power [unit] @@ -11989,15 +11992,15 @@ - set_max_fanout + set_max_fanout - fanoutobjects + fanoutobjects - fanout + fanout @@ -12005,7 +12008,7 @@ - objects + objects List of ports or cells. @@ -12018,10 +12021,10 @@ - set_max_leakage_power + set_max_leakage_power - power [unit] + power [unit] @@ -12031,15 +12034,15 @@ - set_max_time_borrow + set_max_time_borrow - delayobjects + delayobjects - delay + delay The maximum time the latches can borrow. @@ -12047,23 +12050,23 @@ - objects + objects List of clocks, instances or pins. - The set_max_time_borrow command specifies the maximum amount of time that latches can borrow. Time borrowing is the time that a data input to a transparent latch arrives after the latch opens. + The set_max_time_borrow command specifies the maximum amount of time that latches can borrow. Time borrowing is the time that a data input to a transparent latch arrives after the latch opens. - set_max_transition + set_max_transition - [-data_path][-clock_path][-rise][-fall]transitionobjects + [-data_path][-clock_path][-rise][-fall]transitionobjects @@ -12101,22 +12104,22 @@ - transition + transition - The maximum slew/transition time. + The maximum slew/transition time. - objects + objects List of clocks, ports or designs. - The set_max_transition command is specifies the maximum transition time (slew) design rule checked by the report_check_types –max_transition command. + The set_max_transition command is specifies the maximum transition time (slew) design rule checked by the report_check_types –max_transition command. If specified for a design, the default maximum transition is set for the design. If specified for a clock, the maximum transition is applied to all pins in the clock domain. The –clock_path option restricts the maximum transition to clocks in clock paths. The -data_path option restricts the maximum transition to clocks data paths. The –clock_path, -data_path, -rise and –fall options only apply to clock objects. @@ -12124,23 +12127,23 @@ - set_min_capacitance + set_min_capacitance - capacitanceobjects + capacitanceobjects - capacitance + capacitance - Minimum capacitance. + Minimum capacitance. - objects + objects List of ports or cells. @@ -12153,10 +12156,10 @@ - set_min_delay + set_min_delay - [-rise][-fall][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-ignore_clock_latency][-probe][-reset_path]delay + [-rise][-fall][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-ignore_clock_latency][-probe][-reset_path]delay @@ -12164,7 +12167,7 @@ -rise - Set min delay for rising paths. + Set min delay for rising paths. @@ -12173,12 +12176,12 @@ -fall - Set min delay for falling paths. + Set min delay for falling paths. - -from from_list + -from from_list A list of clocks, instances, ports or pins. @@ -12186,7 +12189,7 @@ - -through through_list + -through through_list A list of instances, pins or nets. @@ -12194,7 +12197,7 @@ - -to to_list + -to to_list A list of clocks, instances, ports or pins. @@ -12210,7 +12213,7 @@ - -probe + -probe Do not break paths at internal pins (non startpoints). @@ -12229,7 +12232,7 @@ delay - The minimum delay. + The minimum delay. @@ -12240,10 +12243,10 @@ - set_min_pulse_width + set_min_pulse_width - [-high][-low]min_widthobjects + [-high][-low]min_widthobjects @@ -12264,7 +12267,7 @@ - min_width + min_width @@ -12272,7 +12275,7 @@ - objects + objects List of pins, instances or clocks. @@ -12285,24 +12288,24 @@ - set_mode + set_mode - mode_name + mode_name - The the mode for SDC c ommands in the TCL interpreter. If mode mode_name does not exist, it is created. When modes are created the default mode is deleted. + Set the mode for SDC commands in the TCL interpreter. If mode mode_name does not exist, it is created. When modes are created the default mode is deleted. - set_multicycle_path + set_multicycle_path - [-setup][-hold][-rise][-fall][-start][-end][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-reset_path]path_multiplier + [-setup][-hold][-rise][-fall][-start][-end][-from from_list][-rise_from from_list][-fall_from from_list][-through through_list][-rise_through through_list][-fall_through through_list][-to to_list][-rise_to to_list][-fall_to to_list][-reset_path]path_multiplier @@ -12310,7 +12313,7 @@ -setup - Set cycle count for setup checks. + Set cycle count for setup checks. @@ -12318,7 +12321,7 @@ -hold - Set cycle count for hold checks. + Set cycle count for hold checks. @@ -12326,7 +12329,7 @@ -rise - Set cycle count for rising path edges. + Set cycle count for rising path edges. @@ -12334,7 +12337,7 @@ -fall - Set cycle count for falling path edges. + Set cycle count for falling path edges. @@ -12355,7 +12358,7 @@ - -from from_list + -from from_list A list of clocks, instances, ports or pins. @@ -12363,7 +12366,7 @@ - -through through_list + -through through_list A list of instances, pins or nets. @@ -12371,7 +12374,7 @@ - -to to_list + -to to_list A list of clocks, instances, ports or pins. @@ -12401,7 +12404,7 @@ - set_operating_conditions + set_operating_conditions [-analysis_type single|bc_wc|on_chip_variation][-library lib][condition][-min min_condition][-max max_condition][-min_library min_lib][-max_library max_lib] @@ -12433,7 +12436,7 @@ - -library lib + -library lib The name of the library that contains condition. @@ -12449,7 +12452,7 @@ - -min min_condition + -min min_condition The operating condition to use for min paths and hold checks. @@ -12457,7 +12460,7 @@ - -max max_condition + -max max_condition The operating condition to use for max paths and setup checks. @@ -12465,18 +12468,18 @@ - -min_library min_lib + -min_library min_lib - The name of the library that contains min_condition. + The name of the library that contains min_condition. - -max_library max_lib + -max_library max_lib - The name of the library that contains max_condition. + The name of the library that contains max_condition. @@ -12486,10 +12489,10 @@ - set_output_delay + set_output_delay - [-rise][-fall][-max][-min][-clock clock][-clock_fall][-reference_pin ref_pin][-source_latency_included][-network_latency_included][-add_delay]delayport_pin_list + [-rise][-fall][-max][-min][-clock clock][-clock_fall][-reference_pin ref_pin][-source_latency_included][-network_latency_included][-add_delay]delayport_pin_list @@ -12498,7 +12501,7 @@ -rise - Set the output delay for the rising edge of the input. + Set the output delay for the rising edge of the input. @@ -12506,7 +12509,7 @@ -fall - Set the output delay for the falling edge of the input. + Set the output delay for the falling edge of the input. @@ -12514,7 +12517,7 @@ -max - Set the maximum output delay. + Set the maximum output delay. @@ -12522,15 +12525,15 @@ -min - Set the minimum output delay. + Set the minimum output delay. - -clock clock + -clock clock - The external check is to clock. The default clock edge is rising. + The external check is to clock. The default clock edge is rising. @@ -12538,15 +12541,15 @@ -clock_fall - The external check is to the falling edge of clock. + The external check is to the falling edge of clock. - -reference_pin ref_pin + -reference_pin ref_pin - The external check is clocked by the clock that arrives at ref_pin. + The external check is clocked by the clock that arrives at ref_pin. @@ -12554,7 +12557,7 @@ -add_delay - Add this output delay to any existing output delays. + Add this output delay to any existing output delays. @@ -12562,7 +12565,7 @@ delay - The external delay to the check clocked by clock. + The external delay to the check clocked by clock. @@ -12574,33 +12577,33 @@ - The set_output_delay command is used to specify the external delay to a setup/hold check on an output port or internal pin that is clocked by clock. Unless the -add_delay option is specified any existing output delays are replaced. - The –reference_pin option is used to specify a timing check with respect to the arrival on a pin in the clock network. For propagated clocks, the timing check is relative to the clock arrival time at the reference pin (the clock source latency and network latency from the clock source to the reference pin). For ideal clocks, the timing check is relative to the reference pin clock source latency. With the -clock_fall flag the timing check is relative to the falling edge of the reference pin. If no clocks arrive at the reference pin the set_output_delay command is ignored. If no -clock is specified the timing check is with respect to all clocks that arrive at the reference pin. The -source_latency_included and -network_latency_included options cannot be used with -reference_pin. + The set_output_delay command is used to specify the external delay to a setup/hold check on an output port or internal pin that is clocked by clock. Unless the -add_delay option is specified any existing output delays are replaced. + The –reference_pin option is used to specify a timing check with respect to the arrival on a pin in the clock network. For propagated clocks, the timing check is relative to the clock arrival time at the reference pin (the clock source latency and network latency from the clock source to the reference pin). For ideal clocks, the timing check is relative to the reference pin clock source latency. With the -clock_fall flag the timing check is relative to the falling edge of the reference pin. If no clocks arrive at the reference pin the set_output_delay command is ignored. If no -clock is specified the timing check is with respect to all clocks that arrive at the reference pin. The -source_latency_included and -network_latency_included options cannot be used with -reference_pin. - set_port_fanout_number + set_port_fanout_number - [-min][-max]fanoutports + [-min][-max]fanoutports - -min + -min - Set the min fanout. + Set the min fanout. - -max + -max - Set the max fanout. + Set the max fanout. @@ -12626,15 +12629,15 @@ - set_power_activity + set_power_activity - [-global][-input][-input_ports ports][-pins pins][-activity activity | -density density][-duty duty][-clock clock] + [-global][-input][-input_ports ports][-pins pins][-activity activity | -density density][-duty duty][-clock clock] - -global + -global Set the activity/duty for all non-clock pins. @@ -12650,7 +12653,7 @@ - -input_ports input_ports + -input_ports input_ports Set the input port activity/duty. @@ -12658,7 +12661,7 @@ - -pins pins + -pins pins Set the pin activity/duty. @@ -12666,15 +12669,15 @@ - -activity activity + -activity activity - The activity, or number of transitions per clock cycle. If clock is not specified the clock with the minimum period is used. If no clocks are defined an error is reported. + The activity, or number of transitions per clock cycle. If clock is not specified the clock with the minimum period is used. If no clocks are defined an error is reported. - -density density + -density density Transitions per library time unit. @@ -12682,30 +12685,30 @@ - -duty duty + -duty duty - The duty, or probability the signal is high (0 <= duty <= 1.0). Defaults to 0.5. + The duty, or probability the signal is high (0 <= duty <= 1.0). Defaults to 0.5. - -clock clock + -clock clock The clock to use for the period with -activity. This option is ignored if -density is used. - The set_power_activity command is used to set the activity and duty used for power analysis globally or for input ports or pins in the design. - The default input activity for inputs is 0.1 transitions per minimum clock period if a clock is defined or 0.0 if there are no clocks defined. The default input duty is 0.5. This is equivalent to the following command: - set_power_activity -input -activity 0.1 -duty 0.5 + The set_power_activity command is used to set the activity and duty used for power analysis globally or for input ports or pins in the design. + The default input activity for inputs is 0.1 transitions per minimum clock period if a clock is defined or 0.0 if there are no clocks defined. The default input duty is 0.5. This is equivalent to the following command: + set_power_activity -input -activity 0.1 -duty 0.5 - set_propagated_clock + set_propagated_clock objects @@ -12727,11 +12730,11 @@ - set_pvt + set_pvt - [-min][-max][-process process][-voltage voltage] - [-temperature temperature]instances + [-min][-max][-process process][-voltage voltage] + [-temperature temperature]instances @@ -12739,7 +12742,7 @@ -min - Set the PVT values for max delays. + Set the PVT values for max delays. @@ -12747,12 +12750,12 @@ -max - Set the PVT values for min delays. + Set the PVT values for min delays. - -process process + -process process A process value (float). @@ -12760,7 +12763,7 @@ - -voltage voltage + -voltage voltage A voltage value (float). @@ -12768,7 +12771,7 @@ - -temperature temperature + -temperature temperature A temperature value (float). @@ -12789,15 +12792,15 @@ - set_sense + set_sense - [-type clock|data][-positive][-negative][-pulse pulse_type][-stop_propagation][-clock clocks]pins + [-type clock|data][-positive][-negative][-pulse pulse_type][-stop_propagation][-clock clocks]pins - -type clock + -type clock Set the sense for clock paths. @@ -12805,7 +12808,7 @@ - -type data + -type data Set the sense for data paths (not supported). @@ -12813,35 +12816,35 @@ - -positive + -positive - The clock sense is positive unate. + The clock sense is positive unate. - -negative + -negative - The clock sense is negative unate. + The clock sense is negative unate. - -pulse pulse_type + -pulse pulse_type - rise_triggered_high_pulserise_triggered_low_pulsefall_triggered_high_pulsefall_triggered_low_pulseNot supported. + rise_triggered_high_pulserise_triggered_low_pulsefall_triggered_high_pulsefall_triggered_low_pulseNot supported. - -stop_propagation + -stop_propagation - Stop propagating clocks at pins. + Stop propagating clocks at pins. @@ -12849,7 +12852,7 @@ clocks - A list of clocks to apply the sense. + A list of clocks to apply the sense. @@ -12861,21 +12864,21 @@ - The set_sense command is used to modify the propagation of a clock signal. The clock sense is set with the ‑positive and –negative flags. Use the –stop_propagation flag to stop the clock from propagating beyond a pin. The –positive, -negative, -stop_propagation, and –pulse options are mutually exclusive. If the –clock option is not used the command applies to all clocks that traverse pins. The –pulse option is currently not supported. + The set_sense command is used to modify the propagation of a clock signal. The clock sense is set with the ‑positive and –negative flags. Use the –stop_propagation flag to stop the clock from propagating beyond a pin. The –positive, -negative, -stop_propagation, and –pulse options are mutually exclusive. If the –clock option is not used the command applies to all clocks that traverse pins. The –pulse option is currently not supported. - set_timing_derate + set_timing_derate - [-rise][-fall][-early][-late][-clock][-data][-net_delay][-cell_delay][-cell_check]derate[objects] + [-rise][-fall][-early][-late][-clock][-data][-net_delay][-cell_delay][-cell_check]derate[objects] - -rise + -rise Set the derating for rising delays. @@ -12883,7 +12886,7 @@ - -fall + -fall Set the derating for falling delays. @@ -12891,7 +12894,7 @@ - -early + -early Derate early (min) paths. @@ -12899,7 +12902,7 @@ - -late + -late Derate late (max) paths. @@ -12907,7 +12910,7 @@ - -clock + -clock Derate paths in the clock network. @@ -12915,7 +12918,7 @@ - -data + -data Derate data paths. @@ -12923,7 +12926,7 @@ - -net_delay + -net_delay Derate net (interconnect) delays. @@ -12932,7 +12935,7 @@ - -cell_delay + -cell_delay Derate cell delays. @@ -12940,7 +12943,7 @@ - -cell_check + -cell_check Derate cell timing check margins. @@ -12951,7 +12954,7 @@ derate - The derating factor to apply to delays. + The derating factor to apply to delays. @@ -12970,15 +12973,15 @@ - set_resistance + set_resistance - [-max][-min]resistancenets + [-max][-min]resistancenets - -min + -min The resistance for minimum path delay calculation. @@ -12986,7 +12989,7 @@ - -max + -max The resistance for maximum path delay calculation. @@ -13002,7 +13005,7 @@ - nets + nets A list of nets. @@ -13015,10 +13018,10 @@ - set_units + set_units - [-capacitance cap_unit][-resistance res_unit][-time time_unit][-voltage voltage_unit][-current current_unit][-power power_unit][-distance distance_unit] + [-capacitance cap_unit][-resistance res_unit][-time time_unit][-voltage voltage_unit][-current current_unit][-power power_unit][-distance distance_unit] @@ -13071,7 +13074,7 @@ - The set_units command is used to check the units used by the STA command interpreter when parsing commands and reporting results. If the current units differ from the set_unit value a warning is printed. Use the set_cmd_units command to change the command units. + The set_units command is used to check the units used by the STA command interpreter when parsing commands and reporting results. If the current units differ from the set_unit value a warning is printed. Use the set_cmd_units command to change the command units. Units are specified as a scale factor followed by a unit name. The scale factors are as follows. M 1E+6k 1E+3m 1E-3u 1E-6n 1E-9p 1E-12f 1E-15 An example of the set_units command is shown below. @@ -13081,7 +13084,7 @@ - set_wire_load_min_block_size + set_wire_load_min_block_size size @@ -13094,10 +13097,10 @@ - set_wire_load_mode + set_wire_load_mode - top|enclosed|segmented + top|enclosed|segmented @@ -13131,16 +13134,16 @@ - set_wire_load_model + set_wire_load_model - -name model_name[-library library][-max][-min][objects] + -name model_name[-library library][-max][-min][objects] - -name model_name + -name model_name The name of a wire load model. @@ -13148,7 +13151,7 @@ - -library library + -library library Library to look for model_name. @@ -13185,10 +13188,10 @@ - set_wire_load_selection_group + set_wire_load_selection_group - [-library library][-max][-min]group_name[objects] + [-library library][-max][-min]group_name[objects] @@ -13196,7 +13199,7 @@ library - Library to look for group_name. + Library to look for group_name. @@ -13220,7 +13223,7 @@ group_name - A wire load selection group name. + A wire load selection group name. @@ -13238,28 +13241,28 @@ - suppress_msg + suppress_msg - msg_ids + msg_ids - msg_ids + msg_ids - A list of error/warning message IDs to suppress. + A list of error/warning message IDs to suppress. - The suppress_msg command suppresses specified error/warning messages by ID. The list of message IDs can be found in doc/messages.txt. + The suppress_msg command suppresses specified error/warning messages by ID. The list of message IDs can be found in doc/messages.txt. - unset_case_analysis + unset_case_analysis port_or_pin_list @@ -13280,18 +13283,18 @@ - unset_clock_latency + unset_clock_latency - [-source]objects + [-source]objects - -source + -source - Specifies source clock latency (clock insertion delay). + Specifies source clock latency (clock insertion delay). @@ -13309,7 +13312,7 @@ - unset_clock_transition + unset_clock_transition clocks @@ -13330,15 +13333,15 @@ - unset_clock_uncertainty + unset_clock_uncertainty - [-from|-rise_from|-fall_from from_clock][-to|-rise_to|-fall_to to_clock][-rise][-fall][-setup][-hold][objects] + [-from|-rise_from|-fall_from from_clock][-to|-rise_to|-fall_to to_clock][-rise][-fall][-setup][-hold][objects] - -from from_clock + -from from_clock @@ -13346,7 +13349,7 @@ - -to to_clock + -to to_clock @@ -13373,7 +13376,7 @@ -setup - uncertainty is the setup check uncertainty. + uncertainty is the setup check uncertainty. @@ -13381,7 +13384,7 @@ -hold - uncertainty is the hold uncertainty. + uncertainty is the hold uncertainty. @@ -13407,15 +13410,15 @@ - unset_data_check + unset_data_check - [-from|-rise_from|-fall_from from_object][-to|-rise_to|-fall_to to_object][-setup][-hold][-clock clock] + [-from|-rise_from|-fall_from from_object][-to|-rise_to|-fall_to to_object][-setup][-hold][-clock clock] - -from from_object + -from from_object A pin used as the timing check reference. @@ -13460,7 +13463,7 @@ - unset_disable_inferred_clock_gating + unset_disable_inferred_clock_gating objects @@ -13475,16 +13478,16 @@ - The unset_disable_inferred_clock_gating command removes a previous set_disable_inferred_clock_gating command. + The unset_disable_inferred_clock_gating command removes a previous set_disable_inferred_clock_gating command. - unset_disable_timing + unset_disable_timing - [-from from_port][-to to_port]objects + [-from from_port][-to to_port]objects @@ -13519,10 +13522,10 @@ - unset_input_delay + unset_input_delay - [-rise][-fall][-max][-min][-clock clock][-clock_fall]port_pin_list + [-rise][-fall][-max][-min][-clock clock][-clock_fall]port_pin_list @@ -13530,7 +13533,7 @@ -rise - Unset the arrival time for the rising edge of the input. + Unset the arrival time for the rising edge of the input. @@ -13538,7 +13541,7 @@ -fall - Unset the arrival time for the falling edge of the input. + Unset the arrival time for the falling edge of the input. @@ -13546,7 +13549,7 @@ -max - Unset the minimum arrival time. + Unset the minimum arrival time. @@ -13554,7 +13557,7 @@ -min - Unset the maximum arrival time. + Unset the maximum arrival time. @@ -13562,7 +13565,7 @@ clock - Unset the arrival time from clock. + Unset the arrival time from clock. @@ -13570,7 +13573,7 @@ -clock_fall - Unset the arrival time from the falling edge of clock + Unset the arrival time from the falling edge of clock @@ -13588,10 +13591,10 @@ - unset_output_delay + unset_output_delay - [-rise][-fall][-max][-min][-clock clock][-clock_fall]port_pin_list + [-rise][-fall][-max][-min][-clock clock][-clock_fall]port_pin_list @@ -13640,7 +13643,7 @@ -clock_fall - The arrival time is from the falling edge of clock + The arrival time is from the falling edge of clock @@ -13658,10 +13661,10 @@ - unset_path_exceptions + unset_path_exceptions - [-setup][-hold][-rise][-fall][-from|-rise_from|-fall_from from][-through|-rise_through|-fall_through through][-to|-rise_to|-fall_to to] + [-setup][-hold][-rise][-fall][-from|-rise_from|-fall_from from][-through|-rise_through|-fall_through through][-to|-rise_to|-fall_to to] @@ -13669,7 +13672,7 @@ -setup - Unset path exceptions for setup checks. + Unset path exceptions for setup checks. @@ -13677,7 +13680,7 @@ -hold - Unset path exceptions for hold checks. + Unset path exceptions for hold checks. @@ -13685,7 +13688,7 @@ -rise - Unset path exceptions for rising path edges. + Unset path exceptions for rising path edges. @@ -13693,12 +13696,12 @@ -fall - Unset path exceptions for falling path edges. + Unset path exceptions for falling path edges. - -from from + -from from A list of clocks, instances, ports or pins. @@ -13706,7 +13709,7 @@ - -through through + -through through A list of instances, pins or nets. @@ -13714,7 +13717,7 @@ - -to to + -to to A list of clocks, instances, ports or pins. @@ -13728,15 +13731,15 @@ - unset_power_activity + unset_power_activity - [-global][-input][-input_ports ports][-pins pins] + [-global][-input][-input_ports ports][-pins pins] - -global + -global Set the activity/duty for all non-clock pins. @@ -13752,7 +13755,7 @@ - -input_ports input_ports + -input_ports input_ports Set the input port activity/duty. @@ -13761,7 +13764,7 @@ - -pins pins + -pins pins Set the pin activity/duty. @@ -13769,10 +13772,10 @@ - -activity activity + -activity activity - The activity, or number of transitions per clock cycle. If clock is not specified the clock with the minimum period is used. If no clocks are defined an error is reported. + The activity, or number of transitions per clock cycle. If clock is not specified the clock with the minimum period is used. If no clocks are defined an error is reported. @@ -13782,7 +13785,7 @@ - unset_propagated_clock + unset_propagated_clock objects @@ -13803,7 +13806,7 @@ - unset_timing_derate + unset_timing_derate @@ -13816,28 +13819,28 @@ - unsuppress_msg + unsuppress_msg - msg_ids + msg_ids - msg_ids + msg_ids - A list of error/warning message IDs to unsuppress. + A list of error/warning message IDs to unsuppress. - The unsuppress_msg command removes suppressions for the specified error/warning messages by ID. The list of message IDs can be found in doc/messages.txt. + The unsuppress_msg command removes suppressions for the specified error/warning messages by ID. The list of message IDs can be found in doc/messages.txt. - user_run_time + user_run_time @@ -13850,10 +13853,10 @@ - with_output_to_variable + with_output_to_variable - var { commands } + var { commands } @@ -13873,17 +13876,17 @@ - The with_output_to_variable command redirects the output of TCL commands to a variable. + The with_output_to_variable command redirects the output of TCL commands to a variable. - write_path_spice + write_path_spice - -path_args path_args-spice_file spice_file-lib_subckt_file lib_subckts_file-model_file model_file-power power-ground ground[-simulator hspice|ngspice|xyce] + -path_args path_args-spice_file spice_file-lib_subckt_file lib_subckts_file-model_file model_file-power power-ground ground[-simulator hspice|ngspice|xyce] @@ -13896,10 +13899,10 @@ - spice_file + spice_file - Directory and path prefix for spice output files. + Directory and path prefix for spice output files. @@ -13915,7 +13918,7 @@ model_file - Transistor model definitions .included by spice_file. + Transistor model definitions .included by spice_file. @@ -13936,7 +13939,7 @@ - -simulator + -simulator Simulator that will read the spice netlist. @@ -13954,10 +13957,10 @@ - write_sdc + write_sdc - [-digits digits][-gzip][-no_timestamp]filename + [-digits digits][-gzip][-no_timestamp]filename @@ -13974,7 +13977,7 @@ -gzip - Compress the SDC with gzip. + Compress the SDC with gzip. @@ -14000,18 +14003,18 @@ - write_sdf + write_sdf - [-scene scene][-divider /|.][-include_typ][-digits digits][-gzip][-no_timestamp][-no_version]filename + [-scene scene][-divider /|.][-include_typ][-digits digits][-gzip][-no_timestamp][-no_version]filename - scene + scene - Write delays for scene. + Write delays for scene. @@ -14032,7 +14035,7 @@ - -digits digits + -digits digits The number of digits after the decimal point to report. The default is 4. @@ -14043,7 +14046,7 @@ -gzip - Compress the SDF using gzip. + Compress the SDF using gzip. @@ -14067,43 +14070,43 @@ filename - The SDF filename to write. + The SDF filename to write. - Write the delay calculation delays for the design in SDF format to filename. If -corner is not specified the min/max delays are across all corners. With -corner the min/max delays for corner are written. The SDF TIMESCALE is same as the time_unit in the first liberty file read. + Write the delay calculation delays for the design in SDF format to filename. If -corner is not specified the min/max delays are across all corners. With -corner the min/max delays for corner are written. The SDF TIMESCALE is same as the time_unit in the first liberty file read. - write_timing_model + write_timing_model - [-library_name lib_name][-cell_name cell_name] - [-scene scene]filename + [-library_name lib_name][-cell_name cell_name] + [-scene scene]filename - lib_name + lib_name - The name to use for the liberty library. Defaults to cell_name. + The name to use for the liberty library. Defaults to cell_name. - cell_name + cell_name - The name to use for the liberty cell. Defaults to the top level module name. + The name to use for the liberty cell. Defaults to the top level module name. - scene + scene The scene to use for extracting the model. @@ -14114,16 +14117,16 @@ filename - Filename for the liberty timing model. + Filename for the liberty timing model. - The write_timing_model command constructs a liberty timing model for the current design and writes it to filename. cell_name defaults to the cell name of the top level block in the design. - The SDC used to extract the block should include the clock definitions. If the block contains a clock network set_propagated_clock should be used so the clock delays are included in the timing model. The following SDC commands are ignored when building the timing model. - set_input_delayset_output_delayset_loadset_timing_derate - Using set_input_transition with the slew from the block context will be used will improve the match between the timing model and the block netlist. Paths defined on clocks that are defined on internal pins are ignored because the model has no way to include the clock definition. + The write_timing_model command constructs a liberty timing model for the current design and writes it to filename. cell_name defaults to the cell name of the top level block in the design. + The SDC used to extract the block should include the clock definitions. If the block contains a clock network set_propagated_clock should be used so the clock delays are included in the timing model. The following SDC commands are ignored when building the timing model. + set_input_delayset_output_delayset_loadset_timing_derate + Using set_input_transition with the slew from the block context will be used will improve the match between the timing model and the block netlist. Paths defined on clocks that are defined on internal pins are ignored because the model has no way to include the clock definition. The resulting timing model can be used in a hierarchical timing flow as a replacement for the block to speed up timing analysis. This hierarchical timing methodology does not handle timing exceptions that originate or terminate inside the block. The timing model includes: - combinational paths between inputs and outputssetup and hold timing constraints on inputsclock to output timing paths + combinational paths between inputs and outputssetup and hold timing constraints on inputsclock to output timing paths Resistance of long wires on inputs and outputs of the block cannot be modeled in Liberty. To reduce inaccuracies from wire resistance in technologies with resistive wires place buffers on inputs and ouputs. The extracted timing model setup/hold checks are scalar (no input slew dependence). Delay timing arcs are load dependent but do not include input slew dependency. @@ -14131,10 +14134,10 @@ - write_verilog + write_verilog - [-include_pwr_gnd][-remove_cells lib_cells]filename + [-include_pwr_gnd][-remove_cells lib_cells]filename @@ -14147,10 +14150,10 @@ - -remove_cells lib_cells + -remove_cells lib_cells - Liberty cells to remove from the Verilog netlist. Use get_lib_cells, a list of cells names, or a cell name with wildcards. + Liberty cells to remove from the Verilog netlist. Use get_lib_cells, a list of cells names, or a cell name with wildcards. @@ -14158,12 +14161,12 @@ filename - Filename for the liberty library. + Filename for the liberty library. - The write_verilog command writes a Verilog netlist to filename. Use -sort to sort the instances so the results are reproducible across operating systems. Use -remove_cells to remove instances of lib_cells from the netlist. - Filter Expressions + The write_verilog command writes a Verilog netlist to filename. Use -sort to sort the instances so the results are reproducible across operating systems. Use -remove_cells to remove instances of lib_cells from the netlist. + Filter Expressions The get_cells, get_pins, get_ports and get_timing_edges functions support filtering the returned objects by property values. Supported filter expressions are shown below. @@ -14173,12 +14176,12 @@ property - Return objects with property value equal to 1. + Return objects with property value equal to 1. - property==value + property==value Return objects with property value equal to value. @@ -14186,7 +14189,7 @@ - property=~pattern + property=~pattern Return objects with property value that matches pattern. @@ -14194,7 +14197,7 @@ - property!=value + property!=value Return objects with property value not equal to value. @@ -14202,15 +14205,15 @@ - property!~value + property!~value - Return objects with property value that does not match pattern. + Return objects with property value that does not match pattern. - expr1&&expr2 + expr1&&expr2 Return objects with expr1 and expr2. expr1 and expr2 are one of the first three property value forms shown above. @@ -14218,24 +14221,24 @@ - expr1||expr2 + expr1||expr2 Return objects with expr1 or expr2. expr1 and expr2 are one of the first three property value forms shown above. - Where property is a property supported by the get_property command. Note that if there are spaces in the expression it must be enclosed in quotes so that it is a single argument. - Variables + Where property is a property supported by the get_property command. Note that if there are spaces in the expression it must be enclosed in quotes so that it is a single argument. + Variables - hierarchy_separator + hierarchy_separator - Any character. + Any character. @@ -14245,37 +14248,37 @@ - sta_continue_on_error + sta_continue_on_error - 0|1 + 0|1 - The include and read_sdc commands stop and report any errors encountered while reading a file unless sta_continue_on_error is 1. The default value is 0. + The include and read_sdc commands stop and report any errors encountered while reading a file unless sta_continue_on_error is 1. The default value is 0. - sta_crpr_mode + sta_crpr_mode - same_pin|same_transition + same_pin|same_transition - When the data and clock paths of a timing check overlap (see sta_crpr_enabled), pessimism is removed independent of whether of the path rise/fall transitions. When sta_crpr_mode is same_transition, the pessimism is only removed if the path rise/fall transitions are the same. The default value is same_pin. + When the data and clock paths of a timing check overlap (see sta_crpr_enabled), pessimism is removed independent of whether of the path rise/fall transitions. When sta_crpr_mode is same_transition, the pessimism is only removed if the path rise/fall transitions are the same. The default value is same_pin. - sta_cond_default_arcs_enabled + sta_cond_default_arcs_enabled - 0|1 + 0|1 @@ -14285,10 +14288,10 @@ - sta_crpr_enabled + sta_crpr_enabled - 0|1 + 0|1 @@ -14298,10 +14301,10 @@ - sta_dynamic_loop_breaking + sta_dynamic_loop_breaking - 0|1 + 0|1 @@ -14311,23 +14314,23 @@ - sta_gated_clock_checks_enabled + sta_gated_clock_checks_enabled - 0|1 + 0|1 - When sta_gated_clock_checks_enabled is 1, clock gating setup and hold timing checks are checked. The default value is 1. + When sta_gated_clock_checks_enabled is 1, clock gating setup and hold timing checks are checked. The default value is 1. - sta_input_port_default_clock + sta_input_port_default_clock - 0|1 + 0|1 @@ -14337,10 +14340,10 @@ - sta_internal_bidirect_instance_paths_enabled + sta_internal_bidirect_instance_paths_enabled - 0|1 + 0|1 @@ -14350,23 +14353,23 @@ - sta_pocv_mode + sta_pocv_mode - scalar|normal|skew_normal + scalar|normal|skew_normal - Enable parametric on chip variation using statistical timing analysis. The default value is scalar. + Enable parametric on chip variation using statistical timing analysis. The default value is scalar. - sta_pocv_quartile + sta_pocv_quartile - quartile + quartile @@ -14376,14 +14379,14 @@ - sta_propagate_all_clocks + sta_propagate_all_clocks - 0|1 + 0|1 - All clocks defined after sta_propagate_all_clocks is set to 1 are propagated. If it is set before any clocks are defined it has the same effect as + All clocks defined after sta_propagate_all_clocks is set to 1 are propagated. If it is set before any clocks are defined it has the same effect as set_propagated_clock [all_clocks] After all clocks have been defined. The default value is 0. @@ -14391,36 +14394,36 @@ - sta_propagate_gated_clock_enable + sta_propagate_gated_clock_enable - 0|1 + 0|1 - When set to 1, paths of gated clock enables are propagated through the clock gating instances. If the gated clock controls sequential elements setting sta_propagate_gated_clock_enable to 0 prevents spurious paths from the clock enable. The default value is 1. + When set to 1, paths of gated clock enables are propagated through the clock gating instances. If the gated clock controls sequential elements setting sta_propagate_gated_clock_enable to 0 prevents spurious paths from the clock enable. The default value is 1. - sta_recovery_removal_checks_enabled + sta_recovery_removal_checks_enabled - 0|1 + 0|1 - When sta_recovery_removal_checks_enabled is 0, recovery and removal timing checks are disabled. The default value is 1. + When sta_recovery_removal_checks_enabled is 0, recovery and removal timing checks are disabled. The default value is 1. - sta_report_default_digits + sta_report_default_digits - integer + integer @@ -14430,10 +14433,10 @@ - sta_preset_clear_arcs_enabled + sta_preset_clear_arcs_enabled - 0|1 + 0|1 @@ -14642,7 +14645,7 @@ - Version 3.0.0, Mar 7, 2026Copyright (c) 2026, Parallax Software, Inc. + Version 3.0.0, Mar 7, 2026Copyright (c) 2026, Parallax Software, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. From 0fd2ad3217bf976e3775266f4a1b704018e7ad0b Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Mon, 29 Jun 2026 15:39:27 +0000 Subject: [PATCH 58/61] isSequential update Signed-off-by: dsengupta0628 --- liberty/test/cpp/TestLibertyClasses.cc | 2 +- liberty/test/cpp/TestLibertyStaBasics.cc | 6 +++--- liberty/test/cpp/TestLibertyStaBasicsB.cc | 4 ++-- liberty/test/cpp/TestLibertyStaCallbacks.cc | 4 ++-- power/test/cpp/TestPower.cc | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/liberty/test/cpp/TestLibertyClasses.cc b/liberty/test/cpp/TestLibertyClasses.cc index 9201380c..27f5143c 100644 --- a/liberty/test/cpp/TestLibertyClasses.cc +++ b/liberty/test/cpp/TestLibertyClasses.cc @@ -3230,7 +3230,7 @@ TEST(TestCellTest, HasInferedRegTimingArcs) { TEST(TestCellTest, HasSequentials) { LibertyLibrary lib("test_lib", "test.lib"); TestCell cell(&lib, "CELL1", "test.lib"); - EXPECT_FALSE(cell.hasSequentials()); + EXPECT_FALSE(cell.isSequential()); } TEST(TestCellTest, SequentialsEmpty) { diff --git a/liberty/test/cpp/TestLibertyStaBasics.cc b/liberty/test/cpp/TestLibertyStaBasics.cc index a999e68b..7ed177bc 100644 --- a/liberty/test/cpp/TestLibertyStaBasics.cc +++ b/liberty/test/cpp/TestLibertyStaBasics.cc @@ -810,7 +810,7 @@ TEST_F(StaLibertyTest, LibraryDelayModelType) { TEST_F(StaLibertyTest, CellHasSequentials) { LibertyCell *dff = lib_->findLibertyCell("DFF_X1"); if (dff) { - EXPECT_TRUE(dff->hasSequentials()); + EXPECT_TRUE(dff->isSequential()); auto &seqs = dff->sequentials(); EXPECT_GT(seqs.size(), 0u); } @@ -3266,10 +3266,10 @@ TEST_F(StaLibertyTest, CellIsInverter2) { TEST_F(StaLibertyTest, CellHasSequentials2) { LibertyCell *buf = lib_->findLibertyCell("BUF_X1"); ASSERT_NE(buf, nullptr); - EXPECT_FALSE(buf->hasSequentials()); + EXPECT_FALSE(buf->isSequential()); LibertyCell *dff = lib_->findLibertyCell("DFF_X1"); if (dff) { - EXPECT_TRUE(dff->hasSequentials()); + EXPECT_TRUE(dff->isSequential()); } } diff --git a/liberty/test/cpp/TestLibertyStaBasicsB.cc b/liberty/test/cpp/TestLibertyStaBasicsB.cc index 0d72b5db..9834e42b 100644 --- a/liberty/test/cpp/TestLibertyStaBasicsB.cc +++ b/liberty/test/cpp/TestLibertyStaBasicsB.cc @@ -2166,14 +2166,14 @@ TEST_F(StaLibertyTest, CellSetClockGateType) { TEST_F(StaLibertyTest, CellHasSequentialsBuf) { LibertyCell *buf = lib_->findLibertyCell("BUF_X1"); ASSERT_NE(buf, nullptr); - EXPECT_FALSE(buf->hasSequentials()); + EXPECT_FALSE(buf->isSequential()); } // LibertyCell::hasSequentials on DFF TEST_F(StaLibertyTest, CellHasSequentialsDFF) { LibertyCell *dff = lib_->findLibertyCell("DFF_X1"); ASSERT_NE(dff, nullptr); - EXPECT_TRUE(dff->hasSequentials()); + EXPECT_TRUE(dff->isSequential()); } // LibertyCell::sequentials diff --git a/liberty/test/cpp/TestLibertyStaCallbacks.cc b/liberty/test/cpp/TestLibertyStaCallbacks.cc index 52f0d155..1b14c7c9 100644 --- a/liberty/test/cpp/TestLibertyStaCallbacks.cc +++ b/liberty/test/cpp/TestLibertyStaCallbacks.cc @@ -3688,7 +3688,7 @@ library(test_r11_latch) { LibertyCell *cell = lib->findLibertyCell("LATCH1"); EXPECT_NE(cell, nullptr); if (cell) { - EXPECT_TRUE(cell->hasSequentials()); + EXPECT_TRUE(cell->isSequential()); } } remove(tmp_path.c_str()); @@ -4338,7 +4338,7 @@ library(test_mbff_statetable) { // But it has a statetable, so it IS sequential. EXPECT_NE(mbff->statetable(), nullptr); // hasSequentials() must return true for statetable-only cells. - EXPECT_TRUE(mbff->hasSequentials()) + EXPECT_TRUE(mbff->isSequential()) << "MBFF2 uses statetable (no ff/latch) but hasSequentials() " "returned false — statetable cells are misclassified as " "combinational"; diff --git a/power/test/cpp/TestPower.cc b/power/test/cpp/TestPower.cc index f5ee8a83..e50ae4ef 100644 --- a/power/test/cpp/TestPower.cc +++ b/power/test/cpp/TestPower.cc @@ -1326,7 +1326,7 @@ TEST_F(PowerDesignTest, SequentialCellClassification) { Instance *inst = child_iter->next(); LibertyCell *cell = network->libertyCell(inst); ASSERT_NE(cell, nullptr); - if (cell->hasSequentials()) { + if (cell->isSequential()) { seq_count++; } else { comb_count++; From 310107acd8ceab51ef7cce438907f97d93281abf Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 30 Jun 2026 09:10:17 -0700 Subject: [PATCH 59/61] revert 458c277 resolves #455 Signed-off-by: James Cherry --- include/sta/Sta.hh | 1 + search/Sta.cc | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index bded0b9a..da5da08b 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -1513,6 +1513,7 @@ protected: bool infer_latches); void delayCalcPreamble(); void delaysInvalidFrom(const Port *port); + void delaysInvalidFromFanin(const Port *port); void deleteEdge(Edge *edge); void netParasiticCaps(Net *net, const RiseFall *rf, diff --git a/search/Sta.cc b/search/Sta.cc index 435b8867..61f9a274 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -3967,7 +3967,7 @@ Sta::setPortExtPinCap(const Port *port, for (const MinMax *mm : min_max->range()) sdc->setPortExtPinCap(port, rf1, mm, cap); } - delaysInvalidFrom(port); + delaysInvalidFromFanin(port); } void @@ -4022,7 +4022,7 @@ Sta::setPortExtWireCap(const Port *port, for (const MinMax *mm : min_max->range()) sdc->setPortExtWireCap(port, rf1, mm, cap); } - delaysInvalidFrom(port); + delaysInvalidFromFanin(port); } void @@ -4040,7 +4040,7 @@ Sta::setPortExtFanout(const Port *port, { for (const MinMax *mm : min_max->range()) sdc->setPortExtFanout(port, mm, fanout); - delaysInvalidFrom(port); + delaysInvalidFromFanin(port); } void @@ -5025,6 +5025,20 @@ Sta::delaysInvalidFrom(Vertex *vertex) graph_delay_calc_->delayInvalid(vertex); } +void +Sta::delaysInvalidFromFanin(const Port *port) +{ + if (graph_) { + Instance *top_inst = network_->topInstance(); + Pin *pin = network_->findPin(top_inst, port); + Vertex *vertex, *bidirect_drvr_vertex; + graph_->pinVertices(pin, vertex, bidirect_drvr_vertex); + delaysInvalidFromFanin(vertex); + if (bidirect_drvr_vertex) + delaysInvalidFromFanin(bidirect_drvr_vertex); + } +} + void Sta::delaysInvalidFromFanin(const Pin *pin) { From 998806cb13302f4e59763d7caa76972683853eee Mon Sep 17 00:00:00 2001 From: Deepashree Sengupta Date: Tue, 30 Jun 2026 12:18:56 -0400 Subject: [PATCH 60/61] make mode/scene pass as tcl objects (#454) * make mode/scene pass as tcl objects Signed-off-by: dsengupta0628 * address review comments Signed-off-by: dsengupta0628 * address review comments take 2 Signed-off-by: dsengupta0628 * revert to using cmd mode name Signed-off-by: dsengupta0628 --------- Signed-off-by: dsengupta0628 --- include/sta/Property.hh | 6 +++ sdc/Sdc.tcl | 4 +- search/Property.cc | 27 ++++++++++ search/Property.i | 16 ++++++ search/Search.i | 14 ++++++ tcl/CmdArgs.tcl | 21 +++++--- tcl/Property.tcl | 4 ++ tcl/Sta.tcl | 19 +++++-- tcl/StaTclTypes.i | 106 +++++++++++++-------------------------- test/get_scenes.ok | 6 +++ test/get_scenes.tcl | 20 ++++++++ test/regression_vars.tcl | 1 + 12 files changed, 161 insertions(+), 83 deletions(-) create mode 100644 test/get_scenes.ok create mode 100644 test/get_scenes.tcl diff --git a/include/sta/Property.hh b/include/sta/Property.hh index 1bb1e149..57260cde 100644 --- a/include/sta/Property.hh +++ b/include/sta/Property.hh @@ -42,6 +42,8 @@ class PropertyValue; class Sta; class PropertyValue; +class Scene; +class Mode; template class PropertyRegistry @@ -86,6 +88,10 @@ public: std::string_view property); PropertyValue getProperty(const Clock *clk, std::string_view property); + PropertyValue getProperty(const Scene *scene, + std::string_view property); + PropertyValue getProperty(const Mode *mode, + std::string_view property); PropertyValue getProperty(PathEnd *end, std::string_view property); PropertyValue getProperty(Path *path, diff --git a/sdc/Sdc.tcl b/sdc/Sdc.tcl index 5588c8f1..e444eea8 100644 --- a/sdc/Sdc.tcl +++ b/sdc/Sdc.tcl @@ -45,7 +45,7 @@ proc_redirect read_sdc { if { [info exists keys(-mode)] } { set mode_name $keys(-mode) - set prev_mode [cmd_mode] + set prev_mode [cmd_mode_name] try { set_cmd_mode $mode_name include_file $filename $echo 0 @@ -69,7 +69,7 @@ proc write_sdc { args } { flags {-map_hpins -compatible -gzip -no_timestamp} check_argc_eq1 "write_sdc" $args - set mode [cmd_mode] + set mode [cmd_mode_name] if { [info exists keys(-mode)] } { set mode $keys(-mode) } diff --git a/search/Property.cc b/search/Property.cc index fe848d5e..6ecd9ab7 100644 --- a/search/Property.cc +++ b/search/Property.cc @@ -33,6 +33,7 @@ #include "Graph.hh" #include "Liberty.hh" #include "MinMax.hh" +#include "Mode.hh" #include "Network.hh" #include "Path.hh" #include "PathEnd.hh" @@ -1196,6 +1197,32 @@ Properties::getProperty(const Clock *clk, //////////////////////////////////////////////////////////////// +PropertyValue +Properties::getProperty(const Scene *scene, + std::string_view property) +{ + if (property == "name" + || property == "full_name") + return PropertyValue(scene->name()); + else + throw PropertyUnknown("scene", property); +} + +//////////////////////////////////////////////////////////////// + +PropertyValue +Properties::getProperty(const Mode *mode, + std::string_view property) +{ + if (property == "name" + || property == "full_name") + return PropertyValue(mode->name()); + else + throw PropertyUnknown("mode", property); +} + +//////////////////////////////////////////////////////////////// + PropertyValue Properties::getProperty(PathEnd *end, std::string_view property) diff --git a/search/Property.i b/search/Property.i index 01c8b4c1..2002f901 100644 --- a/search/Property.i +++ b/search/Property.i @@ -121,6 +121,22 @@ clock_property(Clock *clk, return properties.getProperty(clk, property); } +PropertyValue +scene_property(Scene *scene, + const char *property) +{ + Properties &properties = Sta::sta()->properties(); + return properties.getProperty(scene, property); +} + +PropertyValue +mode_property(Mode *mode, + const char *property) +{ + Properties &properties = Sta::sta()->properties(); + return properties.getProperty(mode, property); +} + PropertyValue path_end_property(PathEnd *end, const char *property) diff --git a/search/Search.i b/search/Search.i index 6f0376de..7adf097f 100644 --- a/search/Search.i +++ b/search/Search.i @@ -72,6 +72,20 @@ private: ~PathEnd(); }; +class Scene +{ +private: + Scene(); + ~Scene(); +}; + +class Mode +{ +private: + Mode(); + ~Mode(); +}; + %inline %{ using std::string; diff --git a/tcl/CmdArgs.tcl b/tcl/CmdArgs.tcl index fb962df6..71232ef1 100644 --- a/tcl/CmdArgs.tcl +++ b/tcl/CmdArgs.tcl @@ -536,14 +536,23 @@ proc parse_scenes_or_all { keys_var } { } } -proc find_scenes { scene_names } { +proc find_scenes { scenes_arg } { set scenes {} - foreach scene_name $scene_names { - set scene [find_scene $scene_name] - if { $scene == "NULL" } { - sta_error 134 "$scene_name is not the name of a scene." + foreach scene_arg $scenes_arg { + if { [is_object $scene_arg] } { + set object_type [object_type $scene_arg] + if { $object_type == "Scene" } { + lappend scenes $scene_arg + } else { + sta_error 135 "scene object type '$object_type' is not a scene." + } } else { - lappend scenes $scene + set scene [find_scene $scene_arg] + if { $scene == "NULL" } { + sta_error 134 "$scene_arg is not the name of a scene." + } else { + lappend scenes $scene + } } } return $scenes diff --git a/tcl/Property.tcl b/tcl/Property.tcl index 87e0d3c3..3f70adc6 100644 --- a/tcl/Property.tcl +++ b/tcl/Property.tcl @@ -57,6 +57,10 @@ proc get_object_property { object prop } { return [net_property $object $prop] } elseif { $object_type == "Clock" } { return [clock_property $object $prop] + } elseif { $object_type == "Scene" } { + return [scene_property $object $prop] + } elseif { $object_type == "Mode" } { + return [mode_property $object $prop] } elseif { $object_type == "Port" } { return [port_property $object $prop] } elseif { $object_type == "LibertyPort" } { diff --git a/tcl/Sta.tcl b/tcl/Sta.tcl index ee560962..0ec12a27 100644 --- a/tcl/Sta.tcl +++ b/tcl/Sta.tcl @@ -102,7 +102,12 @@ define_cmd_args "set_scene" {scene_name} proc set_scene { args } { check_argc_eq1 "set_scene" $args - set_cmd_scene [lindex $args 0] + set scene_name [lindex $args 0] + set scene [find_scene $scene_name] + if { $scene == "NULL" } { + sta_error 578 "$scene_name is not the name of a scene." + } + set_cmd_scene $scene } ################################################################ @@ -118,10 +123,16 @@ proc get_scenes { args } { } else { set scene_name [lindex $args 0] } - set mode_names {} if { [info exists keys(-modes)] } { - set mode_names $keys(-modes) - return [find_mode_scenes_matching $scene_name $mode_names] + set modes {} + foreach mode_name $keys(-modes) { + set mode [find_mode $mode_name] + if { $mode == "NULL" } { + sta_error 579 "$mode_name is not the name of a mode." + } + lappend modes $mode + } + return [find_mode_scenes_matching $scene_name $modes] } else { return [find_scenes_matching $scene_name] } diff --git a/tcl/StaTclTypes.i b/tcl/StaTclTypes.i index c5eb3420..c8c62584 100644 --- a/tcl/StaTclTypes.i +++ b/tcl/StaTclTypes.i @@ -1189,106 +1189,70 @@ using namespace sta; $1 = tclListSetConstChar($input, interp); } +%typemap(in) Mode* { + Tcl_Size length; + const char *arg = Tcl_GetStringFromObj($input, &length); + if (stringEqual(arg, "NULL")) + $1 = nullptr; + else { + void *obj; + if (SWIG_ConvertPtr($input, &obj, SWIGTYPE_p_Mode, false) != TCL_OK) { + tclArgError(interp, 2174, "{} is not a mode object.", arg); + return TCL_ERROR; + } + $1 = reinterpret_cast(obj); + } +} + %typemap(out) Mode* { - const Mode *mode = $1; - if (mode) - Tcl_SetResult(interp, const_cast($1->name().c_str()), TCL_VOLATILE); + Mode *mode = $1; + if (mode) { + Tcl_Obj *obj = SWIG_NewInstanceObj(mode, SWIGTYPE_p_Mode, false); + Tcl_SetObjResult(interp, obj); + } else Tcl_SetResult(interp, const_cast("NULL"), TCL_STATIC); } %typemap(in) ModeSeq { - Tcl_Size argc; - Tcl_Obj **argv; - - Sta *sta = Sta::sta(); - std::vector seq; - if (Tcl_ListObjGetElements(interp, $input, &argc, &argv) == TCL_OK - && argc > 0) { - for (int i = 0; i < argc; i++) { - Tcl_Size length; - const char *mode_name = Tcl_GetStringFromObj(argv[i], &length); - Mode *mode = sta->findMode(mode_name); - if (mode) - seq.push_back(mode); - else { - tclArgError(interp, 2174, "mode {} not found.", mode_name); - return TCL_ERROR; - } - } - } - $1 = seq; + $1 = tclListSeq($input, SWIGTYPE_p_Mode, interp); } %typemap(out) ModeSeq { - Tcl_Obj *list = Tcl_NewListObj(0, nullptr); - ModeSeq &modes = $1; - for (Mode *mode : modes) { - const std::string &mode_name = mode->name(); - Tcl_Obj *obj = Tcl_NewStringObj(mode_name.c_str(), mode_name.size()); - Tcl_ListObjAppendElement(interp, list, obj); - } - Tcl_SetObjResult(interp, list); + seqTclList($1, SWIGTYPE_p_Mode, interp); } %typemap(in) Scene* { - sta::Sta *sta = Sta::sta(); Tcl_Size length; - std::string scene_name = Tcl_GetStringFromObj($input, &length); - // parse_scene_or_all support depreated 11/21/2025 - if (scene_name == "NULL") + const char *arg = Tcl_GetStringFromObj($input, &length); + if (stringEqual(arg, "NULL")) $1 = nullptr; else { - Scene *scene = sta->findScene(scene_name); - if (scene) - $1 = scene; - else { - tclArgError(interp, 2173, "scene {} not found.", scene_name.c_str()); + void *obj; + if (SWIG_ConvertPtr($input, &obj, SWIGTYPE_p_Scene, false) != TCL_OK) { + tclArgError(interp, 2173, "{} is not a scene object.", arg); return TCL_ERROR; } + $1 = reinterpret_cast(obj); } } %typemap(out) Scene* { - const Scene *scene = $1; - if (scene) - Tcl_SetResult(interp, const_cast($1->name().c_str()), TCL_VOLATILE); + Scene *scene = $1; + if (scene) { + Tcl_Obj *obj = SWIG_NewInstanceObj(scene, SWIGTYPE_p_Scene, false); + Tcl_SetObjResult(interp, obj); + } else Tcl_SetResult(interp, const_cast("NULL"), TCL_STATIC); } %typemap(in) SceneSeq { - Tcl_Size argc; - Tcl_Obj **argv; - - Sta *sta = Sta::sta(); - std::vector seq; - if (Tcl_ListObjGetElements(interp, $input, &argc, &argv) == TCL_OK - && argc > 0) { - for (int i = 0; i < argc; i++) { - Tcl_Size length; - const char *scene_name = Tcl_GetStringFromObj(argv[i], &length); - Scene *scene = sta->findScene(scene_name); - if (scene) - seq.push_back(scene); - else { - tclArgError(interp, 2172, "scene {} not found.", scene_name); - return TCL_ERROR; - } - } - } - $1 = seq; + $1 = tclListSeq($input, SWIGTYPE_p_Scene, interp); } %typemap(out) SceneSeq { - Tcl_Obj *list = Tcl_NewListObj(0, nullptr); - SceneSeq &scenes = $1; - for (Scene *scene : scenes) { - const std::string &scene_name = scene->name(); - Tcl_Obj *obj = Tcl_NewStringObj(scene_name.c_str(), scene_name.size()); - Tcl_ListObjAppendElement(interp, list, obj); - } - Tcl_SetObjResult(interp, list); + seqTclList($1, SWIGTYPE_p_Scene, interp); } %typemap(in) PropertyValue { diff --git a/test/get_scenes.ok b/test/get_scenes.ok new file mode 100644 index 00000000..ab504b68 --- /dev/null +++ b/test/get_scenes.ok @@ -0,0 +1,6 @@ +[get_scenes *] +scene1 +scene2 +[get_modes *] +mode1 +mode2 diff --git a/test/get_scenes.tcl b/test/get_scenes.tcl new file mode 100644 index 00000000..396c32ce --- /dev/null +++ b/test/get_scenes.tcl @@ -0,0 +1,20 @@ +# get_scenes / get_modes return objects +read_liberty ../examples/asap7_small_ff.lib.gz +read_liberty ../examples/asap7_small_ss.lib.gz +read_verilog ../examples/reg1_asap7.v +link_design top + +read_sdc -mode mode1 ../examples/mcmm2_mode1.sdc +read_sdc -mode mode2 ../examples/mcmm2_mode2.sdc + +read_spef -name reg1_ff ../examples/reg1_asap7.spef +read_spef -name reg1_ss ../examples/reg1_asap7_ss.spef + +define_scene scene1 -mode mode1 -liberty asap7_small_ff -spef reg1_ff +define_scene scene2 -mode mode2 -liberty asap7_small_ss -spef reg1_ss + +puts {[get_scenes *]} +report_object_names [get_scenes *] + +puts {[get_modes *]} +report_object_names [get_modes *] diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index d1e30064..fcb2c291 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -147,6 +147,7 @@ record_public_tests { get_is_memory get_lib_pins_of_objects get_noargs + get_scenes get_objrefs input_delay_ref_pin_rebuild liberty_arcs_one2one_1 From 3ab3337d1b8f13bd15d80786ec771e1c6388d24a Mon Sep 17 00:00:00 2001 From: dsengupta0628 Date: Tue, 30 Jun 2026 17:28:09 +0000 Subject: [PATCH 61/61] update test to accomodate mode/scene as tcl objects and not name string Signed-off-by: dsengupta0628 --- search/test/search_corner_skew.tcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search/test/search_corner_skew.tcl b/search/test/search_corner_skew.tcl index ea36873e..1b77c43c 100644 --- a/search/test/search_corner_skew.tcl +++ b/search/test/search_corner_skew.tcl @@ -14,7 +14,7 @@ report_checks > /dev/null puts "--- Corner commands ---" set corner [sta::cmd_scene] -puts "Corner name: $corner" +puts "Corner name: [get_name $corner]" puts "Multi corner: [sta::multi_scene]" puts "--- ClkSkew report with propagated clock ---"

k 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