diff --git a/.clang-format b/.clang-format index 26ac15c1..0d0670af 100644 --- a/.clang-format +++ b/.clang-format @@ -22,7 +22,7 @@ BreakBeforeBinaryOperators: NonAssignment BreakBeforeBraces: Custom # fails if all initializers fit on one line BreakConstructorInitializers: AfterColon -ColumnLimit: 90 +ColumnLimit: 85 # fails ConstructorInitializerIndentWidth: 2 IncludeBlocks: Preserve diff --git a/Dockerfile.centos7 b/Dockerfile.centos7 index 8857a99c..cdcd6037 100644 --- a/Dockerfile.centos7 +++ b/Dockerfile.centos7 @@ -11,7 +11,7 @@ RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo \ RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo \ && sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo \ && sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo \ - && yum install -y devtoolset-11 wget cmake3 make eigen3-devel tcl swig3 flex zlib-devel valgrind \ + && yum install -y devtoolset-11 git wget cmake3 make eigen3-devel tcl swig3 flex zlib-devel valgrind \ && yum clean -y all RUN ln -sf /usr/bin/cmake3 /usr/bin/cmake diff --git a/README.md b/README.md index 6814119f..8323cf74 100644 --- a/README.md +++ b/README.md @@ -184,13 +184,23 @@ files in the build directory. ## Build with Docker -An alternative way to build and run OpenSTA is with +AN alternative way to build and run OpenSTA is with [Docker](https://www.docker.com). After installing Docker, the following command builds a Docker image. ``` cd OpenSTA docker build --file Dockerfile.ubuntu22.04 --tag opensta_ubuntu22.04 . +or +docker build --file Dockerfile.centos7 --tag opensta_centos7 . +``` + +The centos7 build on mac/OsX with ARM processorts requires the platform +to be specified. + +``` +docker build --file Dockerfile.centos7 --platform=linux/amd64 --tag opensta_centos7 . + ``` To run a docker container using the OpenSTA image, use the -v option diff --git a/app/StaMain.cc b/app/StaMain.cc index 5be334ea..a7147ab0 100644 --- a/app/StaMain.cc +++ b/app/StaMain.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ArcDcalcWaveforms.cc b/dcalc/ArcDcalcWaveforms.cc index c718e8b9..4c0fe95b 100644 --- a/dcalc/ArcDcalcWaveforms.cc +++ b/dcalc/ArcDcalcWaveforms.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ArcDcalcWaveforms.hh b/dcalc/ArcDcalcWaveforms.hh index 6babfce6..8c9964b9 100644 --- a/dcalc/ArcDcalcWaveforms.hh +++ b/dcalc/ArcDcalcWaveforms.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ArcDelayCalc.cc b/dcalc/ArcDelayCalc.cc index 2f6fcbfd..a17ab9a9 100644 --- a/dcalc/ArcDelayCalc.cc +++ b/dcalc/ArcDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/Arnoldi.hh b/dcalc/Arnoldi.hh index 77512413..51453bd6 100644 --- a/dcalc/Arnoldi.hh +++ b/dcalc/Arnoldi.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ArnoldiDelayCalc.cc b/dcalc/ArnoldiDelayCalc.cc index bb1d1702..970c91f1 100644 --- a/dcalc/ArnoldiDelayCalc.cc +++ b/dcalc/ArnoldiDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -119,7 +119,7 @@ class ArnoldiDelayCalc : public LumpedCapDelayCalc { public: ArnoldiDelayCalc(StaState *sta); - virtual ~ArnoldiDelayCalc(); + ~ArnoldiDelayCalc() override; ArcDelayCalc *copy() override; const char *name() const override { return "arnoldi"; } Parasitic *findParasitic(const Pin *drvr_pin, diff --git a/dcalc/ArnoldiDelayCalc.hh b/dcalc/ArnoldiDelayCalc.hh index 1802b08e..de16171e 100644 --- a/dcalc/ArnoldiDelayCalc.hh +++ b/dcalc/ArnoldiDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ArnoldiReduce.cc b/dcalc/ArnoldiReduce.cc index ac8095e2..5fee6823 100644 --- a/dcalc/ArnoldiReduce.cc +++ b/dcalc/ArnoldiReduce.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ArnoldiReduce.hh b/dcalc/ArnoldiReduce.hh index 96297bb7..aed95e52 100644 --- a/dcalc/ArnoldiReduce.hh +++ b/dcalc/ArnoldiReduce.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/CcsCeffDelayCalc.cc b/dcalc/CcsCeffDelayCalc.cc index ae71f648..95156145 100644 --- a/dcalc/CcsCeffDelayCalc.cc +++ b/dcalc/CcsCeffDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -340,8 +340,8 @@ CcsCeffDelayCalc::loadDelaySlew(const Pin *load_pin, ArcDelay &wire_delay, Slew &load_slew) { - ArcDelay wire_delay1 = 0.0; - Slew load_slew1 = drvr_slew; + wire_delay = 0.0; + load_slew = drvr_slew; bool elmore_exists = false; float elmore = 0.0; if (parasitic_ @@ -352,15 +352,13 @@ CcsCeffDelayCalc::loadDelaySlew(const Pin *load_pin, (elmore == 0.0 // Elmore delay is small compared to driver slew. || elmore < delayAsFloat(drvr_slew) * 1e-3)) { - wire_delay1 = elmore; - load_slew1 = drvr_slew; + wire_delay = elmore; + load_slew = drvr_slew; } else - loadDelaySlew(load_pin, drvr_slew, elmore, wire_delay1, load_slew1); + loadDelaySlew(load_pin, drvr_slew, elmore, wire_delay, load_slew); thresholdAdjust(load_pin, drvr_library, rf, wire_delay, load_slew); - wire_delay = wire_delay1; - load_slew = load_slew1; } void diff --git a/dcalc/CcsCeffDelayCalc.hh b/dcalc/CcsCeffDelayCalc.hh index 27c5159a..83a72911 100644 --- a/dcalc/CcsCeffDelayCalc.hh +++ b/dcalc/CcsCeffDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/DelayCalc.cc b/dcalc/DelayCalc.cc index 98a3e7b1..c149d6cb 100644 --- a/dcalc/DelayCalc.cc +++ b/dcalc/DelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/DelayCalc.i b/dcalc/DelayCalc.i index a0bbaea6..7577f0e5 100644 --- a/dcalc/DelayCalc.i +++ b/dcalc/DelayCalc.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/DelayCalc.tcl b/dcalc/DelayCalc.tcl index e195fa23..967039aa 100644 --- a/dcalc/DelayCalc.tcl +++ b/dcalc/DelayCalc.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/dcalc/DelayCalcBase.cc b/dcalc/DelayCalcBase.cc index 5d201987..bc5b77e0 100644 --- a/dcalc/DelayCalcBase.cc +++ b/dcalc/DelayCalcBase.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/DelayCalcBase.hh b/dcalc/DelayCalcBase.hh index 6caa4f6c..6d641c7e 100644 --- a/dcalc/DelayCalcBase.hh +++ b/dcalc/DelayCalcBase.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/DmpCeff.cc b/dcalc/DmpCeff.cc index c32362f2..4619bc97 100644 --- a/dcalc/DmpCeff.cc +++ b/dcalc/DmpCeff.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -77,7 +77,6 @@ class DmpError : public Exception { public: DmpError(const char *what); - virtual ~DmpError() {} virtual const char *what() const noexcept { return what_; } private: diff --git a/dcalc/DmpCeff.hh b/dcalc/DmpCeff.hh index fc3fbb2b..d1931517 100644 --- a/dcalc/DmpCeff.hh +++ b/dcalc/DmpCeff.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/DmpDelayCalc.cc b/dcalc/DmpDelayCalc.cc index 5e8b37b0..e0a350d2 100644 --- a/dcalc/DmpDelayCalc.cc +++ b/dcalc/DmpDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/DmpDelayCalc.hh b/dcalc/DmpDelayCalc.hh index aba00ac2..34ecbd7b 100644 --- a/dcalc/DmpDelayCalc.hh +++ b/dcalc/DmpDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/FindRoot.cc b/dcalc/FindRoot.cc index 2b0e9665..dd35e7ba 100644 --- a/dcalc/FindRoot.cc +++ b/dcalc/FindRoot.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/FindRoot.hh b/dcalc/FindRoot.hh index 7224671d..a137b48a 100644 --- a/dcalc/FindRoot.hh +++ b/dcalc/FindRoot.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/GraphDelayCalc.cc b/dcalc/GraphDelayCalc.cc index 8bc0765e..e33067d2 100644 --- a/dcalc/GraphDelayCalc.cc +++ b/dcalc/GraphDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/LumpedCapDelayCalc.cc b/dcalc/LumpedCapDelayCalc.cc index 6bf5db47..4c4a1251 100644 --- a/dcalc/LumpedCapDelayCalc.cc +++ b/dcalc/LumpedCapDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/LumpedCapDelayCalc.hh b/dcalc/LumpedCapDelayCalc.hh index 5cf829bd..ac631f3a 100644 --- a/dcalc/LumpedCapDelayCalc.hh +++ b/dcalc/LumpedCapDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/NetCaps.cc b/dcalc/NetCaps.cc index 0500b57d..3ca8cd6a 100644 --- a/dcalc/NetCaps.cc +++ b/dcalc/NetCaps.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/NetCaps.hh b/dcalc/NetCaps.hh index aeb1d9ff..cb0db7ea 100644 --- a/dcalc/NetCaps.hh +++ b/dcalc/NetCaps.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ParallelDelayCalc.cc b/dcalc/ParallelDelayCalc.cc index d4ead20f..512ea9f5 100644 --- a/dcalc/ParallelDelayCalc.cc +++ b/dcalc/ParallelDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/ParallelDelayCalc.hh b/dcalc/ParallelDelayCalc.hh index 45f86814..c7d3c921 100644 --- a/dcalc/ParallelDelayCalc.hh +++ b/dcalc/ParallelDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/PrimaDelayCalc.cc b/dcalc/PrimaDelayCalc.cc index 118233ce..b8b5c85c 100644 --- a/dcalc/PrimaDelayCalc.cc +++ b/dcalc/PrimaDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/PrimaDelayCalc.hh b/dcalc/PrimaDelayCalc.hh index 361b23a4..c295478c 100644 --- a/dcalc/PrimaDelayCalc.hh +++ b/dcalc/PrimaDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/UnitDelayCalc.cc b/dcalc/UnitDelayCalc.cc index cafcf426..61221c71 100644 --- a/dcalc/UnitDelayCalc.cc +++ b/dcalc/UnitDelayCalc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/dcalc/UnitDelayCalc.hh b/dcalc/UnitDelayCalc.hh index 094626cd..7ae21aff 100644 --- a/dcalc/UnitDelayCalc.hh +++ b/dcalc/UnitDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/graph/DelayFloat.cc b/graph/DelayFloat.cc index 73b877df..cdb19f9c 100644 --- a/graph/DelayFloat.cc +++ b/graph/DelayFloat.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/graph/DelayNormal1.cc b/graph/DelayNormal1.cc index 2e855586..f13518e0 100644 --- a/graph/DelayNormal1.cc +++ b/graph/DelayNormal1.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/graph/DelayNormal2.cc b/graph/DelayNormal2.cc index b6d74df6..be8936a0 100644 --- a/graph/DelayNormal2.cc +++ b/graph/DelayNormal2.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/graph/Graph.cc b/graph/Graph.cc index f56a02a7..b397b7b2 100644 --- a/graph/Graph.cc +++ b/graph/Graph.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -107,7 +107,7 @@ public: int &bidirect_count, int &load_count, const Network *network); - virtual void operator()(const Pin *pin); + void operator()(const Pin *pin) override; protected: Pin *drvr_pin_; @@ -345,8 +345,8 @@ public: MakeEdgesThruHierPin(Graph *graph); private: - virtual void visit(const Pin *drvr, - const Pin *load); + void visit(const Pin *drvr, + const Pin *load) override; Graph *graph_; }; @@ -1483,8 +1483,8 @@ class FindEdgesThruHierPinVisitor : public HierPinThruVisitor public: FindEdgesThruHierPinVisitor(EdgeSet &edges, Graph *graph); - virtual void visit(const Pin *drvr, - const Pin *load); + void visit(const Pin *drvr, + const Pin *load) override; protected: EdgeSet &edges_; diff --git a/graph/Graph.i b/graph/Graph.i index 289ca3ba..5c16e5f8 100644 --- a/graph/Graph.i +++ b/graph/Graph.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/graph/Graph.tcl b/graph/Graph.tcl index 72c72e42..27ea5f19 100644 --- a/graph/Graph.tcl +++ b/graph/Graph.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/graph/GraphCmp.cc b/graph/GraphCmp.cc index 92aa24d0..3c3a5dfc 100644 --- a/graph/GraphCmp.cc +++ b/graph/GraphCmp.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ArcDelayCalc.hh b/include/sta/ArcDelayCalc.hh index 457de4cf..d2b99012 100644 --- a/include/sta/ArcDelayCalc.hh +++ b/include/sta/ArcDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Bdd.hh b/include/sta/Bdd.hh index ee224975..df565a5a 100644 --- a/include/sta/Bdd.hh +++ b/include/sta/Bdd.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Bfs.hh b/include/sta/Bfs.hh index 5fa335c0..162bd9a8 100644 --- a/include/sta/Bfs.hh +++ b/include/sta/Bfs.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/BoundedHeap.hh b/include/sta/BoundedHeap.hh index af934e0c..ff0ee39d 100644 --- a/include/sta/BoundedHeap.hh +++ b/include/sta/BoundedHeap.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -27,6 +27,7 @@ #include #include #include +#include namespace sta { @@ -118,13 +119,14 @@ public: // If the heap is not full, the element is added. // If the heap is full and the new element is better than the worst element, // the worst element is replaced. Otherwise, the element is ignored. - // Returns true if the element was inserted, false if it was ignored. - bool + // Returns (inserted, displaced): inserted is true if the element was inserted, + // displaced is set when an element was pushed out (caller must handle ownership). + std::pair> insert(const T& value) { if (heap_.size() < max_size_) { heap_.push_back(value); std::push_heap(heap_.begin(), heap_.end(), min_heap_comp_); - return true; + return {true, std::nullopt}; } else if (!heap_.empty()) { // When keeping N worst (smallest) values: if new value is smaller than worst, @@ -134,23 +136,25 @@ public: if (comp_(value, heap_.front())) { // New value is smaller than worst - find and replace the largest element auto max_it = std::max_element(heap_.begin(), heap_.end(), comp_); + T displaced = std::move(*max_it); *max_it = value; // Rebuild heap since we modified an internal element std::make_heap(heap_.begin(), heap_.end(), min_heap_comp_); - return true; + return {true, std::move(displaced)}; } // Otherwise, new value is >= worst, so we already have worse values - reject it } - return false; + return {false, std::nullopt}; } // Insert an element using move semantics - bool insert(T&& value) + std::pair> + insert(T&& value) { if (heap_.size() < max_size_) { heap_.push_back(std::move(value)); std::push_heap(heap_.begin(), heap_.end(), min_heap_comp_); - return true; + return {true, std::nullopt}; } else if (!heap_.empty()) { // When keeping N worst (smallest) values: if new value is smaller than worst, @@ -160,14 +164,15 @@ public: if (comp_(value, heap_.front())) { // New value is smaller than worst - find and replace the largest element auto max_it = std::max_element(heap_.begin(), heap_.end(), comp_); + T displaced = std::move(*max_it); *max_it = std::move(value); // Rebuild heap since we modified an internal element std::make_heap(heap_.begin(), heap_.end(), min_heap_comp_); - return true; + return {true, std::move(displaced)}; } // Otherwise, new value is >= worst, so we already have worse values - reject it } - return false; + return {false, std::nullopt}; } // Extract all elements sorted from best to worst. diff --git a/include/sta/CircuitSim.hh b/include/sta/CircuitSim.hh index 201710db..3e5756e4 100644 --- a/include/sta/CircuitSim.hh +++ b/include/sta/CircuitSim.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ClkNetwork.hh b/include/sta/ClkNetwork.hh index 8b4692fd..4bbfacfa 100644 --- a/include/sta/ClkNetwork.hh +++ b/include/sta/ClkNetwork.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Clock.hh b/include/sta/Clock.hh index 25dd9244..2b9efc5e 100644 --- a/include/sta/Clock.hh +++ b/include/sta/Clock.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ClockGatingCheck.hh b/include/sta/ClockGatingCheck.hh index e87cdb74..41417384 100644 --- a/include/sta/ClockGatingCheck.hh +++ b/include/sta/ClockGatingCheck.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ClockGroups.hh b/include/sta/ClockGroups.hh index 38e905c1..e09cfb91 100644 --- a/include/sta/ClockGroups.hh +++ b/include/sta/ClockGroups.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ClockInsertion.hh b/include/sta/ClockInsertion.hh index 43fc4899..1a1aef85 100644 --- a/include/sta/ClockInsertion.hh +++ b/include/sta/ClockInsertion.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ClockLatency.hh b/include/sta/ClockLatency.hh index 9972bdc4..33479fd7 100644 --- a/include/sta/ClockLatency.hh +++ b/include/sta/ClockLatency.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index 69e60dce..a47585dd 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index fe2b76c3..25ab0f91 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ContainerHelpers.hh b/include/sta/ContainerHelpers.hh index 11068f77..9dd1b997 100644 --- a/include/sta/ContainerHelpers.hh +++ b/include/sta/ContainerHelpers.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/CycleAccting.hh b/include/sta/CycleAccting.hh index 867d620c..ad18a0cd 100644 --- a/include/sta/CycleAccting.hh +++ b/include/sta/CycleAccting.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/DataCheck.hh b/include/sta/DataCheck.hh index 23ed758b..a1bb30ee 100644 --- a/include/sta/DataCheck.hh +++ b/include/sta/DataCheck.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Debug.hh b/include/sta/Debug.hh index 4c958065..1c21131e 100644 --- a/include/sta/Debug.hh +++ b/include/sta/Debug.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Delay.hh b/include/sta/Delay.hh index 1711f78e..860b23da 100644 --- a/include/sta/Delay.hh +++ b/include/sta/Delay.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/DelayCalc.hh b/include/sta/DelayCalc.hh index cea48177..be0da6d3 100644 --- a/include/sta/DelayCalc.hh +++ b/include/sta/DelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/DelayFloat.hh b/include/sta/DelayFloat.hh index a834bb57..81f047b9 100644 --- a/include/sta/DelayFloat.hh +++ b/include/sta/DelayFloat.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/DelayNormal1.hh b/include/sta/DelayNormal1.hh index 87beef23..5787797f 100644 --- a/include/sta/DelayNormal1.hh +++ b/include/sta/DelayNormal1.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/DelayNormal2.hh b/include/sta/DelayNormal2.hh index f19a6411..7355fd77 100644 --- a/include/sta/DelayNormal2.hh +++ b/include/sta/DelayNormal2.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/DeratingFactors.hh b/include/sta/DeratingFactors.hh index dcc6b344..07678695 100644 --- a/include/sta/DeratingFactors.hh +++ b/include/sta/DeratingFactors.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/DisabledPorts.hh b/include/sta/DisabledPorts.hh index d41661d4..20ea6a18 100644 --- a/include/sta/DisabledPorts.hh +++ b/include/sta/DisabledPorts.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/EnumNameMap.hh b/include/sta/EnumNameMap.hh index 50ef13e6..68d1fe9a 100644 --- a/include/sta/EnumNameMap.hh +++ b/include/sta/EnumNameMap.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/EquivCells.hh b/include/sta/EquivCells.hh index 3ceadeb7..1227a544 100644 --- a/include/sta/EquivCells.hh +++ b/include/sta/EquivCells.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Error.hh b/include/sta/Error.hh index 2230f45f..d73775f4 100644 --- a/include/sta/Error.hh +++ b/include/sta/Error.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ExceptionPath.hh b/include/sta/ExceptionPath.hh index f5b89f14..b7f7e655 100644 --- a/include/sta/ExceptionPath.hh +++ b/include/sta/ExceptionPath.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -164,17 +164,17 @@ public: bool own_pts, int priority, const char *comment); - virtual ExceptionPath *clone(ExceptionFrom *from, - ExceptionThruSeq *thrus, - ExceptionTo *to, - bool own_pts); - virtual bool isFalse() const { return true; } - virtual ExceptionPathType type() const { return ExceptionPathType::false_path; } - virtual const char *typeString() const; - virtual bool mergeable(ExceptionPath *exception) const; - virtual bool overrides(ExceptionPath *exception) const; - virtual int typePriority() const; - virtual bool tighterThan(ExceptionPath *exception) const; + ExceptionPath *clone(ExceptionFrom *from, + ExceptionThruSeq *thrus, + ExceptionTo *to, + bool own_pts) override; + bool isFalse() const override { return true; } + ExceptionPathType type() const override { return ExceptionPathType::false_path; } + const char *typeString() const override; + bool mergeable(ExceptionPath *exception) const override; + bool overrides(ExceptionPath *exception) const override; + int typePriority() const override; + bool tighterThan(ExceptionPath *exception) const override; }; // Loop paths are false paths used to disable paths around @@ -184,10 +184,10 @@ class LoopPath : public FalsePath public: LoopPath(ExceptionThruSeq *thrus, bool own_pts); - virtual bool isLoop() const { return true; } - virtual ExceptionPathType type() const { return ExceptionPathType::loop; } - virtual const char *typeString() const; - virtual bool mergeable(ExceptionPath *exception) const; + bool isLoop() const override { return true; } + ExceptionPathType type() const override { return ExceptionPathType::loop; } + const char *typeString() const override; + bool mergeable(ExceptionPath *exception) const override; }; // set_max_delay/set_min_delay @@ -203,21 +203,21 @@ public: float delay, bool own_pts, const char *comment); - virtual ExceptionPath *clone(ExceptionFrom *from, - ExceptionThruSeq *thrus, - ExceptionTo *to, - bool own_pts); - virtual bool isPathDelay() const { return true; } - virtual ExceptionPathType type() const { return ExceptionPathType::path_delay; } - virtual const char *asString(const Network *network) const; - virtual const char *typeString() const; - virtual bool mergeable(ExceptionPath *exception) const; - virtual bool overrides(ExceptionPath *exception) const; - virtual float delay() const { return delay_; } - virtual int typePriority() const; - virtual bool tighterThan(ExceptionPath *exception) const; - virtual bool ignoreClkLatency() const { return ignore_clk_latency_; } - virtual bool breakPath() const { return break_path_; } + ExceptionPath *clone(ExceptionFrom *from, + ExceptionThruSeq *thrus, + ExceptionTo *to, + bool own_pts) override; + bool isPathDelay() const override { return true; } + ExceptionPathType type() const override { return ExceptionPathType::path_delay; } + const char *asString(const Network *network) const override; + const char *typeString() const override; + bool mergeable(ExceptionPath *exception) const override; + bool overrides(ExceptionPath *exception) const override; + float delay() const override { return delay_; } + int typePriority() const override; + bool tighterThan(ExceptionPath *exception) const override; + bool ignoreClkLatency() const override { return ignore_clk_latency_; } + bool breakPath() const override { return break_path_; } protected: bool ignore_clk_latency_; @@ -237,24 +237,24 @@ public: int path_multiplier, bool own_pts, const char *comment); - virtual ExceptionPath *clone(ExceptionFrom *from, - ExceptionThruSeq *thrus, - ExceptionTo *to, - bool own_pts); - virtual bool isMultiCycle() const { return true; } - virtual ExceptionPathType type() const { return ExceptionPathType::multi_cycle; } - virtual bool matches(const MinMax *min_max, - bool exactly) const; - virtual const char *asString(const Network *network) const; - virtual const char *typeString() const; - virtual bool mergeable(ExceptionPath *exception) const; - virtual bool overrides(ExceptionPath *exception) const; - virtual bool useEndClk() const { return use_end_clk_; } - virtual int pathMultiplier(const MinMax *min_max) const; - virtual int pathMultiplier() const { return path_multiplier_; } - virtual int priority(const MinMax *min_max) const; - virtual int typePriority() const; - virtual bool tighterThan(ExceptionPath *exception) const; + ExceptionPath *clone(ExceptionFrom *from, + ExceptionThruSeq *thrus, + ExceptionTo *to, + bool own_pts) override; + bool isMultiCycle() const override { return true; } + ExceptionPathType type() const override { return ExceptionPathType::multi_cycle; } + bool matches(const MinMax *min_max, + bool exactly) const override; + const char *asString(const Network *network) const override; + const char *typeString() const override; + bool mergeable(ExceptionPath *exception) const override; + bool overrides(ExceptionPath *exception) const override; + bool useEndClk() const override { return use_end_clk_; } + int pathMultiplier(const MinMax *min_max) const; // overload, not override + int pathMultiplier() const override { return path_multiplier_; } + int priority(const MinMax *min_max) const override; + int typePriority() const override; + bool tighterThan(ExceptionPath *exception) const override; using ExceptionPath::priority; @@ -271,22 +271,22 @@ public: ExceptionThruSeq *thrus, ExceptionTo *to, bool own_pts); - virtual ExceptionPath *clone(ExceptionFrom *from, - ExceptionThruSeq *thrus, - ExceptionTo *to, - bool own_pts); - virtual bool isFilter() const { return true; } - virtual ExceptionPathType type() const { return ExceptionPathType::filter; } - virtual const char *typeString() const; - virtual bool mergeable(ExceptionPath *exception) const; - virtual bool overrides(ExceptionPath *exception) const; - virtual bool resetMatch(ExceptionFrom *from, - ExceptionThruSeq *thrus, - ExceptionTo *to, - const MinMaxAll *min_max, - const Network *network); - virtual int typePriority() const; - virtual bool tighterThan(ExceptionPath *exception) const; + ExceptionPath *clone(ExceptionFrom *from, + ExceptionThruSeq *thrus, + ExceptionTo *to, + bool own_pts) override; + bool isFilter() const override { return true; } + ExceptionPathType type() const override { return ExceptionPathType::filter; } + const char *typeString() const override; + bool mergeable(ExceptionPath *exception) const override; + bool overrides(ExceptionPath *exception) const override; + bool resetMatch(ExceptionFrom *from, + ExceptionThruSeq *thrus, + ExceptionTo *to, + const MinMaxAll *min_max, + const Network *network) override; + int typePriority() const override; + bool tighterThan(ExceptionPath *exception) const override; }; class GroupPath : public ExceptionPath @@ -299,20 +299,20 @@ public: ExceptionTo *to, bool own_pts, const char *comment); - virtual ~GroupPath(); - virtual ExceptionPath *clone(ExceptionFrom *from, - ExceptionThruSeq *thrus, - ExceptionTo *to, - bool own_pts); - virtual bool isGroupPath() const { return true; } - virtual ExceptionPathType type() const { return ExceptionPathType::group_path; } - virtual const char *typeString() const; - virtual bool mergeable(ExceptionPath *exception) const; - virtual bool overrides(ExceptionPath *exception) const; - virtual int typePriority() const; - virtual bool tighterThan(ExceptionPath *exception) const; - virtual const char *name() const { return name_; } - virtual bool isDefault() const { return is_default_; } + ~GroupPath() override; + ExceptionPath *clone(ExceptionFrom *from, + ExceptionThruSeq *thrus, + ExceptionTo *to, + bool own_pts) override; + bool isGroupPath() const override { return true; } + ExceptionPathType type() const override { return ExceptionPathType::group_path; } + const char *typeString() const override; + bool mergeable(ExceptionPath *exception) const override; + bool overrides(ExceptionPath *exception) const override; + int typePriority() const override; + bool tighterThan(ExceptionPath *exception) const override; + const char *name() const override { return name_; } + bool isDefault() const override { return is_default_; } protected: const char *name_; @@ -385,39 +385,39 @@ public: bool own_pts, const Network *network); ~ExceptionFromTo(); - virtual PinSet *pins() { return pins_; } + PinSet *pins() override { return pins_; } bool hasPins() const; - ClockSet *clks() { return clks_; } + ClockSet *clks() override { return clks_; } bool hasClocks() const; - InstanceSet *instances() { return insts_; } + InstanceSet *instances() override { return insts_; } bool hasInstances() const; - virtual NetSet *nets() { return nullptr; } - virtual EdgePinsSet *edges() { return nullptr; } + NetSet *nets() override { return nullptr; } + EdgePinsSet *edges() override { return nullptr; } bool hasObjects() const; void deleteObjects(ExceptionFromTo *pt, const Network *network); - virtual PinSet allPins(const Network *network); + PinSet allPins(const Network *network) override; bool equal(ExceptionFromTo *from_to) const; - virtual int compare(ExceptionPt *pt, - const Network *network) const; - virtual void mergeInto(ExceptionPt *pt, - const Network *network); - virtual const char *asString(const Network *network) const; - virtual size_t objectCount() const; + int compare(ExceptionPt *pt, + const Network *network) const override; + void mergeInto(ExceptionPt *pt, + const Network *network) override; + const char *asString(const Network *network) const override; + size_t objectCount() const override; void deleteClock(Clock *clk); - virtual void addPin(const Pin *pin, - const Network *network); - virtual void addClock(Clock *clk); - virtual void addInstance(const Instance *inst, - const Network *network); - virtual void addNet(const Net *, - const Network *) {} - virtual void addEdge(const EdgePins &, - const Network *) {} - virtual void connectPinAfter(PinSet *, - Network *) {} - virtual void deletePinBefore(const Pin *, - Network *); + void addPin(const Pin *pin, + const Network *network) override; + void addClock(Clock *clk) override; + void addInstance(const Instance *inst, + const Network *network) override; + void addNet(const Net *, + const Network *) override {} + void addEdge(const EdgePins &, + const Network *) override {} + void connectPinAfter(PinSet *, + Network *) override {} + void deletePinBefore(const Pin *, + Network *) override; void deleteInstance(const Instance *inst, const Network *network); @@ -443,14 +443,14 @@ public: bool own_pts, const Network *network); ExceptionFrom *clone(const Network *network); - virtual bool isFrom() const { return true; } + bool isFrom() const override { return true; } bool intersectsPts(ExceptionFrom *from, const Network *network) const; - virtual int typePriority() const { return 0; } + int typePriority() const override { return 0; } protected: - virtual const char *cmdKeyword() const; - virtual void findHash(const Network *network); + const char *cmdKeyword() const override; + void findHash(const Network *network) override; }; class ExceptionTo : public ExceptionFromTo @@ -466,12 +466,12 @@ public: bool own_pts, const Network *network); ExceptionTo *clone(const Network *network); - virtual bool isTo() const { return true; } - const char *asString(const Network *network) const; + bool isTo() const override { return true; } + const char *asString(const Network *network) const override; const RiseFallBoth *endTransition() { return end_rf_; } bool intersectsPts(ExceptionTo *to, const Network *network) const; - virtual int typePriority() const { return 1; } + int typePriority() const override { return 1; } bool matches(const Pin *pin, const ClockEdge *clk_edge, const RiseFall *end_rf, @@ -486,8 +486,8 @@ public: const ClockEdge *clk_edge, const RiseFall *end_rf, const Network *network) const; - virtual int compare(ExceptionPt *pt, - const Network *network) const; + int compare(ExceptionPt *pt, + const Network *network) const override; protected: bool matches(const Pin *pin, @@ -495,7 +495,7 @@ protected: const RiseFall *end_rf, bool inst_matches_reg_clk_pin, const Network *network) const; - virtual const char *cmdKeyword() const; + const char *cmdKeyword() const override; // -rise|-fall endpoint transition. const RiseFallBoth *end_rf_; @@ -512,48 +512,48 @@ public: const Network *network); ~ExceptionThru(); ExceptionThru *clone(const Network *network); - virtual const char *asString(const Network *network) const; - virtual bool isThru() const { return true; } - PinSet *pins() { return pins_; } - EdgePinsSet *edges() { return edges_; } - NetSet *nets() { return nets_; } - InstanceSet *instances() { return insts_; } - virtual ClockSet *clks() { return nullptr; } + const char *asString(const Network *network) const override; + bool isThru() const override { return true; } + PinSet *pins() override { return pins_; } + EdgePinsSet *edges() override { return edges_; } + NetSet *nets() override { return nets_; } + InstanceSet *instances() override { return insts_; } + ClockSet *clks() override { return nullptr; } bool hasObjects() const; void deleteObjects(ExceptionThru *pt, const Network *network); - virtual PinSet allPins(const Network *network); + PinSet allPins(const Network *network) override; bool matches(const Pin *from_pin, const Pin *to_pin, const RiseFall *to_rf, const Network *network); bool equal(ExceptionThru *thru) const; - virtual int compare(ExceptionPt *pt, - const Network *network) const; - virtual void mergeInto(ExceptionPt *pt, - const Network *network); + int compare(ExceptionPt *pt, + const Network *network) const override; + void mergeInto(ExceptionPt *pt, + const Network *network) override; bool intersectsPts(ExceptionThru *thru, const Network *network) const; - virtual int typePriority() const { return 2; } - virtual size_t objectCount() const; - virtual void connectPinAfter(PinSet *drvrs, - Network *network); - virtual void deletePinBefore(const Pin *pin, - Network *network); + int typePriority() const override { return 2; } + size_t objectCount() const override; + void connectPinAfter(PinSet *drvrs, + Network *network) override; + void deletePinBefore(const Pin *pin, + Network *network) override; void deleteInstance(const Instance *inst, const Network *network); protected: void findHash(const Network *network); - virtual void addPin(const Pin *pin, - const Network *network); - virtual void addEdge(const EdgePins &edge, - const Network *network); - virtual void addNet(const Net *net, - const Network *network); - virtual void addInstance(const Instance *inst, - const Network *network); - virtual void addClock(Clock *) {} + void addPin(const Pin *pin, + const Network *network) override; + void addEdge(const EdgePins &edge, + const Network *network) override; + void addNet(const Net *net, + const Network *network) override; + void addInstance(const Instance *inst, + const Network *network) override; + void addClock(Clock *) override {} void deletePin(const Pin *pin, const Network *network); void deleteEdge(const EdgePins &edge); diff --git a/include/sta/FuncExpr.hh b/include/sta/FuncExpr.hh index b32cf023..00ff6dee 100644 --- a/include/sta/FuncExpr.hh +++ b/include/sta/FuncExpr.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Fuzzy.hh b/include/sta/Fuzzy.hh index 0ae490aa..5517190b 100644 --- a/include/sta/Fuzzy.hh +++ b/include/sta/Fuzzy.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Graph.hh b/include/sta/Graph.hh index 7d9557b4..e96a2c64 100644 --- a/include/sta/Graph.hh +++ b/include/sta/Graph.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/GraphClass.hh b/include/sta/GraphClass.hh index ebe184c8..c56cea17 100644 --- a/include/sta/GraphClass.hh +++ b/include/sta/GraphClass.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/GraphCmp.hh b/include/sta/GraphCmp.hh index 7f51b87f..bf67c963 100644 --- a/include/sta/GraphCmp.hh +++ b/include/sta/GraphCmp.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/GraphDelayCalc.hh b/include/sta/GraphDelayCalc.hh index aea61fcb..a1f5373a 100644 --- a/include/sta/GraphDelayCalc.hh +++ b/include/sta/GraphDelayCalc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Hash.hh b/include/sta/Hash.hh index be6d5375..ebd833a9 100644 --- a/include/sta/Hash.hh +++ b/include/sta/Hash.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/HpinDrvrLoad.hh b/include/sta/HpinDrvrLoad.hh index 995e6e14..974156fc 100644 --- a/include/sta/HpinDrvrLoad.hh +++ b/include/sta/HpinDrvrLoad.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/InputDrive.hh b/include/sta/InputDrive.hh index 9a3e3119..6eacc7e7 100644 --- a/include/sta/InputDrive.hh +++ b/include/sta/InputDrive.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/InternalPower.hh b/include/sta/InternalPower.hh index 0f183662..e37003ac 100644 --- a/include/sta/InternalPower.hh +++ b/include/sta/InternalPower.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Iterator.hh b/include/sta/Iterator.hh index 06416b23..83e799eb 100644 --- a/include/sta/Iterator.hh +++ b/include/sta/Iterator.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/LeakagePower.hh b/include/sta/LeakagePower.hh index f14c8db2..15f84db2 100644 --- a/include/sta/LeakagePower.hh +++ b/include/sta/LeakagePower.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Liberty.hh b/include/sta/Liberty.hh index 981b2a26..76bc763e 100644 --- a/include/sta/Liberty.hh +++ b/include/sta/Liberty.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/LibertyClass.hh b/include/sta/LibertyClass.hh index 5436f480..af00c3a4 100644 --- a/include/sta/LibertyClass.hh +++ b/include/sta/LibertyClass.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/LibertyWriter.hh b/include/sta/LibertyWriter.hh index 1b142af5..a58ce44e 100644 --- a/include/sta/LibertyWriter.hh +++ b/include/sta/LibertyWriter.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/LinearModel.hh b/include/sta/LinearModel.hh index a173ad6b..aa7ba59e 100644 --- a/include/sta/LinearModel.hh +++ b/include/sta/LinearModel.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Machine.hh b/include/sta/Machine.hh index 68e95577..b02e1e5f 100644 --- a/include/sta/Machine.hh +++ b/include/sta/Machine.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/MakeConcreteNetwork.hh b/include/sta/MakeConcreteNetwork.hh index 3247a6f2..7f82834a 100644 --- a/include/sta/MakeConcreteNetwork.hh +++ b/include/sta/MakeConcreteNetwork.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/MinMax.hh b/include/sta/MinMax.hh index 4642c790..24b91155 100644 --- a/include/sta/MinMax.hh +++ b/include/sta/MinMax.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/MinMaxValues.hh b/include/sta/MinMaxValues.hh index 6a96ee0b..7814c256 100644 --- a/include/sta/MinMaxValues.hh +++ b/include/sta/MinMaxValues.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Mode.hh b/include/sta/Mode.hh index b47adc00..ddb824ad 100644 --- a/include/sta/Mode.hh +++ b/include/sta/Mode.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Mutex.hh b/include/sta/Mutex.hh index 943596ed..a3668582 100644 --- a/include/sta/Mutex.hh +++ b/include/sta/Mutex.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Network.hh b/include/sta/Network.hh index 5e88b04c..64480738 100644 --- a/include/sta/Network.hh +++ b/include/sta/Network.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -520,10 +520,6 @@ public: virtual Pin *connect(Instance *inst, LibertyPort *port, Net *net) = 0; - // makePin/connectPin replaced by connect. - // deprecated 2018-09-28 - virtual void connectPin(Pin *pin, - Net *net) __attribute__ ((deprecated)); // Disconnect pin from net. virtual void disconnectPin(Pin *pin) = 0; virtual void deletePin(Pin *pin) = 0; diff --git a/include/sta/NetworkClass.hh b/include/sta/NetworkClass.hh index 9e72fef6..3480d587 100644 --- a/include/sta/NetworkClass.hh +++ b/include/sta/NetworkClass.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/NetworkCmp.hh b/include/sta/NetworkCmp.hh index dd7b871f..ac5ffc5b 100644 --- a/include/sta/NetworkCmp.hh +++ b/include/sta/NetworkCmp.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ObjectId.hh b/include/sta/ObjectId.hh index b4c04ef7..cd455858 100644 --- a/include/sta/ObjectId.hh +++ b/include/sta/ObjectId.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ObjectTable.hh b/include/sta/ObjectTable.hh index 515d476a..4736b5e0 100644 --- a/include/sta/ObjectTable.hh +++ b/include/sta/ObjectTable.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Parasitics.hh b/include/sta/Parasitics.hh index bd2a0940..5d1800a9 100644 --- a/include/sta/Parasitics.hh +++ b/include/sta/Parasitics.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ParasiticsClass.hh b/include/sta/ParasiticsClass.hh index 02a7e2e4..d75ff05f 100644 --- a/include/sta/ParasiticsClass.hh +++ b/include/sta/ParasiticsClass.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ParseBus.hh b/include/sta/ParseBus.hh index a33daf01..d62bd982 100644 --- a/include/sta/ParseBus.hh +++ b/include/sta/ParseBus.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Path.hh b/include/sta/Path.hh index c7fcd081..6ca1d8cc 100644 --- a/include/sta/Path.hh +++ b/include/sta/Path.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PathEnd.hh b/include/sta/PathEnd.hh index ee8deb39..899c96ac 100644 --- a/include/sta/PathEnd.hh +++ b/include/sta/PathEnd.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PathExpanded.hh b/include/sta/PathExpanded.hh index 0269f685..ebb9d080 100644 --- a/include/sta/PathExpanded.hh +++ b/include/sta/PathExpanded.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PathGroup.hh b/include/sta/PathGroup.hh index 03bcb0c5..418238bf 100644 --- a/include/sta/PathGroup.hh +++ b/include/sta/PathGroup.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -67,6 +67,7 @@ public: float min_slack, float max_slack, const StaState *sta); + ~PathGroup(); const std::string &name() const { return name_; } const MinMax *minMax() const { return min_max_;} PathEndSeq pathEnds() const; diff --git a/include/sta/PatternMatch.hh b/include/sta/PatternMatch.hh index 03c308aa..429aef04 100644 --- a/include/sta/PatternMatch.hh +++ b/include/sta/PatternMatch.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PinPair.hh b/include/sta/PinPair.hh index bdc51135..073212ef 100644 --- a/include/sta/PinPair.hh +++ b/include/sta/PinPair.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PortDelay.hh b/include/sta/PortDelay.hh index 9f36e396..78cb246d 100644 --- a/include/sta/PortDelay.hh +++ b/include/sta/PortDelay.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PortDirection.hh b/include/sta/PortDirection.hh index b61f48f6..38ca9b5b 100644 --- a/include/sta/PortDirection.hh +++ b/include/sta/PortDirection.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PortExtCap.hh b/include/sta/PortExtCap.hh index 716dcbb9..3e186b69 100644 --- a/include/sta/PortExtCap.hh +++ b/include/sta/PortExtCap.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/PowerClass.hh b/include/sta/PowerClass.hh index bedb018b..55fb292f 100644 --- a/include/sta/PowerClass.hh +++ b/include/sta/PowerClass.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Property.hh b/include/sta/Property.hh index 4bfa86ca..ae89b599 100644 --- a/include/sta/Property.hh +++ b/include/sta/Property.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Report.hh b/include/sta/Report.hh index 9e8aed56..3ca8ffe0 100644 --- a/include/sta/Report.hh +++ b/include/sta/Report.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ReportStd.hh b/include/sta/ReportStd.hh index a580b628..c1743de8 100644 --- a/include/sta/ReportStd.hh +++ b/include/sta/ReportStd.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/ReportTcl.hh b/include/sta/ReportTcl.hh index fe3391fc..127cb23c 100644 --- a/include/sta/ReportTcl.hh +++ b/include/sta/ReportTcl.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/RiseFallMinMax.hh b/include/sta/RiseFallMinMax.hh index 81511ec5..3f9bca81 100644 --- a/include/sta/RiseFallMinMax.hh +++ b/include/sta/RiseFallMinMax.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/RiseFallMinMaxDelay.hh b/include/sta/RiseFallMinMaxDelay.hh index 5d102fdb..22b999c9 100644 --- a/include/sta/RiseFallMinMaxDelay.hh +++ b/include/sta/RiseFallMinMaxDelay.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/RiseFallValues.hh b/include/sta/RiseFallValues.hh index a02c979e..e1198afe 100644 --- a/include/sta/RiseFallValues.hh +++ b/include/sta/RiseFallValues.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Scene.hh b/include/sta/Scene.hh index 28986377..83e57668 100644 --- a/include/sta/Scene.hh +++ b/include/sta/Scene.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Sdc.hh b/include/sta/Sdc.hh index add84e7f..01e07ca7 100644 --- a/include/sta/Sdc.hh +++ b/include/sta/Sdc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/SdcClass.hh b/include/sta/SdcClass.hh index adf15947..dc0563b5 100644 --- a/include/sta/SdcClass.hh +++ b/include/sta/SdcClass.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/SdcCmdComment.hh b/include/sta/SdcCmdComment.hh index 0ad099f1..5e995fb5 100644 --- a/include/sta/SdcCmdComment.hh +++ b/include/sta/SdcCmdComment.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/SdcNetwork.hh b/include/sta/SdcNetwork.hh index c20627f3..e462af6d 100644 --- a/include/sta/SdcNetwork.hh +++ b/include/sta/SdcNetwork.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Search.hh b/include/sta/Search.hh index ba4f8d0d..5e9c5ccb 100644 --- a/include/sta/Search.hh +++ b/include/sta/Search.hh @@ -1,5 +1,5 @@ // opensta, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/SearchClass.hh b/include/sta/SearchClass.hh index c8f45627..4e41e94e 100644 --- a/include/sta/SearchClass.hh +++ b/include/sta/SearchClass.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/SearchPred.hh b/include/sta/SearchPred.hh index 314c3dca..0d688369 100644 --- a/include/sta/SearchPred.hh +++ b/include/sta/SearchPred.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Sequential.hh b/include/sta/Sequential.hh index 67b62f3f..89b3f5a9 100644 --- a/include/sta/Sequential.hh +++ b/include/sta/Sequential.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Sta.hh b/include/sta/Sta.hh index 74408227..e5f7115a 100644 --- a/include/sta/Sta.hh +++ b/include/sta/Sta.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/StaMain.hh b/include/sta/StaMain.hh index 0d34ff07..db4291b8 100644 --- a/include/sta/StaMain.hh +++ b/include/sta/StaMain.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/StaState.hh b/include/sta/StaState.hh index 7d6ce5a7..2cfbede4 100644 --- a/include/sta/StaState.hh +++ b/include/sta/StaState.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Stats.hh b/include/sta/Stats.hh index 4d40594b..6968c8fe 100644 --- a/include/sta/Stats.hh +++ b/include/sta/Stats.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/TableModel.hh b/include/sta/TableModel.hh index 1e88faf6..59e26ba0 100644 --- a/include/sta/TableModel.hh +++ b/include/sta/TableModel.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/TclTypeHelpers.hh b/include/sta/TclTypeHelpers.hh index a551c584..95584b7b 100644 --- a/include/sta/TclTypeHelpers.hh +++ b/include/sta/TclTypeHelpers.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/TimingArc.hh b/include/sta/TimingArc.hh index 257e446d..fcec3c4c 100644 --- a/include/sta/TimingArc.hh +++ b/include/sta/TimingArc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/TimingModel.hh b/include/sta/TimingModel.hh index c9f5ee8a..db9caf08 100644 --- a/include/sta/TimingModel.hh +++ b/include/sta/TimingModel.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/TimingRole.hh b/include/sta/TimingRole.hh index d77a8454..23a075f0 100644 --- a/include/sta/TimingRole.hh +++ b/include/sta/TimingRole.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Transition.hh b/include/sta/Transition.hh index ba671453..4af601d4 100644 --- a/include/sta/Transition.hh +++ b/include/sta/Transition.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Units.hh b/include/sta/Units.hh index 79bf472a..3390c103 100644 --- a/include/sta/Units.hh +++ b/include/sta/Units.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Variables.hh b/include/sta/Variables.hh index 2bd99990..9e553193 100644 --- a/include/sta/Variables.hh +++ b/include/sta/Variables.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/VectorMap.hh b/include/sta/VectorMap.hh index 33cc5080..b78f76cf 100644 --- a/include/sta/VectorMap.hh +++ b/include/sta/VectorMap.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/VerilogNamespace.hh b/include/sta/VerilogNamespace.hh index 835bd45e..8649c2d7 100644 --- a/include/sta/VerilogNamespace.hh +++ b/include/sta/VerilogNamespace.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/VerilogReader.hh b/include/sta/VerilogReader.hh index e3aa94fa..35311f6d 100644 --- a/include/sta/VerilogReader.hh +++ b/include/sta/VerilogReader.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/VerilogWriter.hh b/include/sta/VerilogWriter.hh index a0ba6346..2867c7ea 100644 --- a/include/sta/VerilogWriter.hh +++ b/include/sta/VerilogWriter.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/VertexId.hh b/include/sta/VertexId.hh index c2dbcfbc..864139bf 100644 --- a/include/sta/VertexId.hh +++ b/include/sta/VertexId.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/VertexVisitor.hh b/include/sta/VertexVisitor.hh index b371ef8e..3b4a6176 100644 --- a/include/sta/VertexVisitor.hh +++ b/include/sta/VertexVisitor.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/VisitPathEnds.hh b/include/sta/VisitPathEnds.hh index e07fb2d0..74ef0496 100644 --- a/include/sta/VisitPathEnds.hh +++ b/include/sta/VisitPathEnds.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Wireload.hh b/include/sta/Wireload.hh index 42621171..01c54a88 100644 --- a/include/sta/Wireload.hh +++ b/include/sta/Wireload.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/include/sta/Zlib.hh b/include/sta/Zlib.hh index c1e14344..e7ca6fe8 100644 --- a/include/sta/Zlib.hh +++ b/include/sta/Zlib.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/EquivCells.cc b/liberty/EquivCells.cc index af81a35e..d0b96b30 100644 --- a/liberty/EquivCells.cc +++ b/liberty/EquivCells.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/FuncExpr.cc b/liberty/FuncExpr.cc index 0d422d1a..b127cd27 100644 --- a/liberty/FuncExpr.cc +++ b/liberty/FuncExpr.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/InternalPower.cc b/liberty/InternalPower.cc index 2516a36d..5380a359 100644 --- a/liberty/InternalPower.cc +++ b/liberty/InternalPower.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LeakagePower.cc b/liberty/LeakagePower.cc index a5751c15..150a2cf1 100644 --- a/liberty/LeakagePower.cc +++ b/liberty/LeakagePower.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibExprParse.yy b/liberty/LibExprParse.yy index fe8f7e76..fc1a4a7d 100644 --- a/liberty/LibExprParse.yy +++ b/liberty/LibExprParse.yy @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibExprReader.cc b/liberty/LibExprReader.cc index dfb2d679..c3e1e5f9 100644 --- a/liberty/LibExprReader.cc +++ b/liberty/LibExprReader.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibExprReader.hh b/liberty/LibExprReader.hh index fa36aaa3..3f65600e 100644 --- a/liberty/LibExprReader.hh +++ b/liberty/LibExprReader.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibExprReaderPvt.hh b/liberty/LibExprReaderPvt.hh index 06a65ea2..aa7d0646 100644 --- a/liberty/LibExprReaderPvt.hh +++ b/liberty/LibExprReaderPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibExprScanner.hh b/liberty/LibExprScanner.hh index f3ec9cf1..f901be3d 100644 --- a/liberty/LibExprScanner.hh +++ b/liberty/LibExprScanner.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/Liberty.cc b/liberty/Liberty.cc index 825502f6..de019009 100644 --- a/liberty/Liberty.cc +++ b/liberty/Liberty.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/Liberty.i b/liberty/Liberty.i index d2856e68..2e1814ee 100644 --- a/liberty/Liberty.i +++ b/liberty/Liberty.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/Liberty.tcl b/liberty/Liberty.tcl index 6d93601d..698289c3 100644 --- a/liberty/Liberty.tcl +++ b/liberty/Liberty.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/liberty/LibertyBuilder.cc b/liberty/LibertyBuilder.cc index 988c32e9..72a72b1f 100644 --- a/liberty/LibertyBuilder.cc +++ b/liberty/LibertyBuilder.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibertyBuilder.hh b/liberty/LibertyBuilder.hh index 06538687..70879092 100644 --- a/liberty/LibertyBuilder.hh +++ b/liberty/LibertyBuilder.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibertyParse.yy b/liberty/LibertyParse.yy index a3d4b715..35ca7180 100644 --- a/liberty/LibertyParse.yy +++ b/liberty/LibertyParse.yy @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibertyParser.cc b/liberty/LibertyParser.cc index d85911b7..5d16566d 100644 --- a/liberty/LibertyParser.cc +++ b/liberty/LibertyParser.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -324,6 +324,24 @@ LibertyGroup::clear() deleteContents(variables_); } +bool +LibertyGroup::empty() const +{ + return subgroups_.empty() + && simple_attr_map_.empty() + && complex_attr_map_.empty() + && define_map_.empty(); +} + +bool +LibertyGroup::oneGroupOnly() const +{ + return subgroups_.size() == 1 + && simple_attr_map_.empty() + && complex_attr_map_.empty() + && define_map_.empty(); +} + void LibertyGroup::addSubgroup(LibertyGroup *subgroup) { diff --git a/liberty/LibertyParser.hh b/liberty/LibertyParser.hh index 2f533c36..00f2ac33 100644 --- a/liberty/LibertyParser.hh +++ b/liberty/LibertyParser.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -127,6 +127,8 @@ public: int line); ~LibertyGroup(); void clear(); + bool empty() const; + bool oneGroupOnly() const; const std::string &type() const { return type_; } const LibertyAttrValueSeq ¶ms() const { return params_; } // First param as a string. diff --git a/liberty/LibertyReader.cc b/liberty/LibertyReader.cc index 3164a17b..32e551b4 100644 --- a/liberty/LibertyReader.cc +++ b/liberty/LibertyReader.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -151,7 +151,8 @@ LibertyReader::endLibrary(const LibertyGroup *library_group, LibertyGroup *) { // If a library has no cells endCell is not called. - readLibraryAttributes(library_group); + if (!library_group->empty()) + readLibraryAttributes(library_group); checkThresholds(library_group); delete library_group; } @@ -166,7 +167,8 @@ LibertyReader::endCell(const LibertyGroup *cell_group, // Normally they are all defined by the first cell, but there // are libraries that define table templates and bus tyupes // between cells. - readLibraryAttributes(library_group); + if (!library_group->oneGroupOnly()) + readLibraryAttributes(library_group); const char *name = cell_group->firstName(); if (name) { @@ -984,6 +986,8 @@ LibertyReader::readCell(LibertyCell *cell, // Make ff/latch output ports. makeSequentials(cell, cell_group); + // Test cell ports may be referenced by a statetable. + readTestCell(cell, cell_group); readCellAttributes(cell, cell_group); @@ -998,8 +1002,6 @@ LibertyReader::readCell(LibertyCell *cell, readInternalPowerGroups(cell, ports, port_group); } - readTestCell(cell, cell_group); - cell->finish(infer_latches_, report_, debug_); } @@ -2967,6 +2969,9 @@ LibertyReader::readStatetable(LibertyCell *cell, LibertyPortSeq input_port_ptrs; for (const std::string &input : input_ports) { LibertyPort *port = cell->findLibertyPort(input.c_str()); + if (port == nullptr + && cell->testCell()) + port = cell->testCell()->findLibertyPort(input.c_str()); if (port) input_port_ptrs.push_back(port); else diff --git a/liberty/LibertyReader.hh b/liberty/LibertyReader.hh index 648e8f1f..ebf4503d 100644 --- a/liberty/LibertyReader.hh +++ b/liberty/LibertyReader.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibertyReaderPvt.hh b/liberty/LibertyReaderPvt.hh index 9cfca58b..474cc799 100644 --- a/liberty/LibertyReaderPvt.hh +++ b/liberty/LibertyReaderPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibertyScanner.hh b/liberty/LibertyScanner.hh index c53d3f88..b32369cd 100644 --- a/liberty/LibertyScanner.hh +++ b/liberty/LibertyScanner.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LibertyWriter.cc b/liberty/LibertyWriter.cc index 2622b1ba..19e08729 100644 --- a/liberty/LibertyWriter.cc +++ b/liberty/LibertyWriter.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/LinearModel.cc b/liberty/LinearModel.cc index 552533e6..85d158e7 100644 --- a/liberty/LinearModel.cc +++ b/liberty/LinearModel.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/Sequential.cc b/liberty/Sequential.cc index 782a22dc..5106f11c 100644 --- a/liberty/Sequential.cc +++ b/liberty/Sequential.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/TableModel.cc b/liberty/TableModel.cc index b7677e16..0d5257a8 100644 --- a/liberty/TableModel.cc +++ b/liberty/TableModel.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/TimingArc.cc b/liberty/TimingArc.cc index ba5f086b..5d77e931 100644 --- a/liberty/TimingArc.cc +++ b/liberty/TimingArc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/TimingModel.cc b/liberty/TimingModel.cc index fe955005..3acc7b95 100644 --- a/liberty/TimingModel.cc +++ b/liberty/TimingModel.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/TimingRole.cc b/liberty/TimingRole.cc index e772d1bc..ace8d7de 100644 --- a/liberty/TimingRole.cc +++ b/liberty/TimingRole.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/Units.cc b/liberty/Units.cc index 9cbb4631..98cad0aa 100644 --- a/liberty/Units.cc +++ b/liberty/Units.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/liberty/Wireload.cc b/liberty/Wireload.cc index e85ee603..cc88891b 100644 --- a/liberty/Wireload.cc +++ b/liberty/Wireload.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/ConcreteLibrary.cc b/network/ConcreteLibrary.cc index a1fb2b50..50bc62b2 100644 --- a/network/ConcreteLibrary.cc +++ b/network/ConcreteLibrary.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/ConcreteNetwork.cc b/network/ConcreteNetwork.cc index a6a0f65d..de4b0464 100644 --- a/network/ConcreteNetwork.cc +++ b/network/ConcreteNetwork.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/HpinDrvrLoad.cc b/network/HpinDrvrLoad.cc index a6f1bb1f..2c98c5fa 100644 --- a/network/HpinDrvrLoad.cc +++ b/network/HpinDrvrLoad.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/Link.tcl b/network/Link.tcl index 4dd5bae4..72196087 100644 --- a/network/Link.tcl +++ b/network/Link.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/network/Network.cc b/network/Network.cc index ec77fa7a..fe9a9c1d 100644 --- a/network/Network.cc +++ b/network/Network.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -1365,7 +1365,7 @@ class ConnectedPinIterator1 : public ConnectedPinIterator { public: ConnectedPinIterator1(PinSet *pins); - virtual ~ConnectedPinIterator1(); + ~ConnectedPinIterator1() override; bool hasNext() override; const Pin *next() override; @@ -1401,7 +1401,7 @@ class FindConnectedPins : public PinVisitor { public: FindConnectedPins(PinSet *pins); - virtual void operator()(const Pin *pin); + void operator()(const Pin *pin) override; protected: PinSet *pins_; @@ -1572,7 +1572,7 @@ class FindDrvrPins : public PinVisitor public: FindDrvrPins(PinSet *pins, const Network *network); - virtual void operator()(const Pin *pin); + void operator()(const Pin *pin) override; protected: PinSet *pins_; @@ -1694,13 +1694,6 @@ NetworkEdit::NetworkEdit() : { } -void -NetworkEdit::connectPin(Pin *pin, - Net *net) -{ - connect(instance(pin), port(pin), net); -} - //////////////////////////////////////////////////////////////// NetworkConstantPinIterator:: diff --git a/network/Network.i b/network/Network.i index 4334f648..6495ec8b 100644 --- a/network/Network.i +++ b/network/Network.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/Network.tcl b/network/Network.tcl index a8cd501c..376bd289 100644 --- a/network/Network.tcl +++ b/network/Network.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 @@ -147,23 +147,9 @@ define_cmd_args "report_net" {[-scene scene] [-digits digits]\ proc_redirect report_net { global sta_report_default_digits - parse_key_args "report_net" args keys {-corner -scene -digits} \ - flags {-connections -verbose -hier_pins} + parse_key_args "report_net" args keys {-corner -scene -digits} flags {} check_argc_eq1 "report_net" $args - if { [info exists flags(-connections)] } { - # deprecated 2024-01-17 - sta_warn 235 "report_net -connections is deprecated." - } - if { [info exists flags(-verbose)] } { - # deprecated 2024-01-17 - sta_warn 236 "report_net -verbose is deprecated." - } - if { [info exists flags(-hier_pins)] } { - # deprecated 2024-01-17 - sta_warn 237 "report_net -hier_pins is deprecated." - } - set scene [parse_scene_or_default keys] set digits $sta_report_default_digits if { [info exists keys(-digits)] } { diff --git a/network/NetworkCmp.cc b/network/NetworkCmp.cc index dd82c344..7dbc9511 100644 --- a/network/NetworkCmp.cc +++ b/network/NetworkCmp.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/NetworkEdit.i b/network/NetworkEdit.i index 4436c3ae..d52c2e1d 100644 --- a/network/NetworkEdit.i +++ b/network/NetworkEdit.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/NetworkEdit.tcl b/network/NetworkEdit.tcl index a13285fd..d135db40 100644 --- a/network/NetworkEdit.tcl +++ b/network/NetworkEdit.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/network/ParseBus.cc b/network/ParseBus.cc index c3dae9e5..83f097b3 100644 --- a/network/ParseBus.cc +++ b/network/ParseBus.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/PortDirection.cc b/network/PortDirection.cc index 4c6946af..5a6aaae5 100644 --- a/network/PortDirection.cc +++ b/network/PortDirection.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index 0495f943..5200367e 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/network/VerilogNamespace.cc b/network/VerilogNamespace.cc index 1d0231d9..a018782e 100644 --- a/network/VerilogNamespace.cc +++ b/network/VerilogNamespace.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/ConcreteParasitics.cc b/parasitics/ConcreteParasitics.cc index f6a156ff..db291c53 100644 --- a/parasitics/ConcreteParasitics.cc +++ b/parasitics/ConcreteParasitics.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/ConcreteParasitics.hh b/parasitics/ConcreteParasitics.hh index bf5ca547..f033ae35 100644 --- a/parasitics/ConcreteParasitics.hh +++ b/parasitics/ConcreteParasitics.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/ConcreteParasiticsPvt.hh b/parasitics/ConcreteParasiticsPvt.hh index 597512dc..ef363cab 100644 --- a/parasitics/ConcreteParasiticsPvt.hh +++ b/parasitics/ConcreteParasiticsPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/EstimateParasitics.cc b/parasitics/EstimateParasitics.cc index 415a7f1c..32b8b9d3 100644 --- a/parasitics/EstimateParasitics.cc +++ b/parasitics/EstimateParasitics.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/EstimateParasitics.hh b/parasitics/EstimateParasitics.hh index a6adf42e..f41cd5fe 100644 --- a/parasitics/EstimateParasitics.hh +++ b/parasitics/EstimateParasitics.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/Parasitics.cc b/parasitics/Parasitics.cc index d9a04ffe..8aaf5fc0 100644 --- a/parasitics/Parasitics.cc +++ b/parasitics/Parasitics.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/Parasitics.i b/parasitics/Parasitics.i index 548b5014..440945ec 100644 --- a/parasitics/Parasitics.i +++ b/parasitics/Parasitics.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/Parasitics.tcl b/parasitics/Parasitics.tcl index 2b4ce36e..e09f496b 100644 --- a/parasitics/Parasitics.tcl +++ b/parasitics/Parasitics.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/parasitics/ReduceParasitics.cc b/parasitics/ReduceParasitics.cc index f44b1a9f..6dbab37d 100644 --- a/parasitics/ReduceParasitics.cc +++ b/parasitics/ReduceParasitics.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/ReduceParasitics.hh b/parasitics/ReduceParasitics.hh index 283822f7..2fd62362 100644 --- a/parasitics/ReduceParasitics.hh +++ b/parasitics/ReduceParasitics.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/ReportParasiticAnnotation.cc b/parasitics/ReportParasiticAnnotation.cc index dc327468..a6726911 100644 --- a/parasitics/ReportParasiticAnnotation.cc +++ b/parasitics/ReportParasiticAnnotation.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/ReportParasiticAnnotation.hh b/parasitics/ReportParasiticAnnotation.hh index a3c7e6a8..6c9274d4 100644 --- a/parasitics/ReportParasiticAnnotation.hh +++ b/parasitics/ReportParasiticAnnotation.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/SpefNamespace.cc b/parasitics/SpefNamespace.cc index e9c1ab7d..2822875c 100644 --- a/parasitics/SpefNamespace.cc +++ b/parasitics/SpefNamespace.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/SpefNamespace.hh b/parasitics/SpefNamespace.hh index 17b15046..042019f4 100644 --- a/parasitics/SpefNamespace.hh +++ b/parasitics/SpefNamespace.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/SpefParse.yy b/parasitics/SpefParse.yy index 921db703..42983f0b 100755 --- a/parasitics/SpefParse.yy +++ b/parasitics/SpefParse.yy @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/SpefReader.cc b/parasitics/SpefReader.cc index 77dea552..99c53633 100644 --- a/parasitics/SpefReader.cc +++ b/parasitics/SpefReader.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/SpefReader.hh b/parasitics/SpefReader.hh index a3cae771..f5a9efcb 100644 --- a/parasitics/SpefReader.hh +++ b/parasitics/SpefReader.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/SpefReaderPvt.hh b/parasitics/SpefReaderPvt.hh index 2ddb52ad..cf58eb51 100644 --- a/parasitics/SpefReaderPvt.hh +++ b/parasitics/SpefReaderPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/parasitics/SpefScanner.hh b/parasitics/SpefScanner.hh index eb59d16f..0ae97b07 100644 --- a/parasitics/SpefScanner.hh +++ b/parasitics/SpefScanner.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/Power.cc b/power/Power.cc index 38d1dea1..eb8d40cc 100644 --- a/power/Power.cc +++ b/power/Power.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/Power.hh b/power/Power.hh index 1082af53..49a6dc0a 100644 --- a/power/Power.hh +++ b/power/Power.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/Power.i b/power/Power.i index 9ff3438a..bc818668 100644 --- a/power/Power.i +++ b/power/Power.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/Power.tcl b/power/Power.tcl index f56681d6..1c624e5b 100644 --- a/power/Power.tcl +++ b/power/Power.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/power/ReportPower.cc b/power/ReportPower.cc index 3cd77090..3f0d0d76 100644 --- a/power/ReportPower.cc +++ b/power/ReportPower.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/ReportPower.hh b/power/ReportPower.hh index c069a8b2..966e8acb 100644 --- a/power/ReportPower.hh +++ b/power/ReportPower.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/SaifParse.yy b/power/SaifParse.yy index 0cae9d63..be4f723f 100644 --- a/power/SaifParse.yy +++ b/power/SaifParse.yy @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/SaifReader.cc b/power/SaifReader.cc index bd62602a..17345229 100644 --- a/power/SaifReader.cc +++ b/power/SaifReader.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/SaifReader.hh b/power/SaifReader.hh index 7fa8b988..e9197914 100644 --- a/power/SaifReader.hh +++ b/power/SaifReader.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/SaifReaderPvt.hh b/power/SaifReaderPvt.hh index 1ed8e790..3616231e 100644 --- a/power/SaifReaderPvt.hh +++ b/power/SaifReaderPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/SaifScanner.hh b/power/SaifScanner.hh index 2e7e6dcb..0fa4a805 100644 --- a/power/SaifScanner.hh +++ b/power/SaifScanner.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/VcdParse.cc b/power/VcdParse.cc index 83e171cf..1227e1b2 100644 --- a/power/VcdParse.cc +++ b/power/VcdParse.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/VcdParse.hh b/power/VcdParse.hh index 0fdb2301..6979b0ad 100644 --- a/power/VcdParse.hh +++ b/power/VcdParse.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/VcdReader.cc b/power/VcdReader.cc index 5e624273..7a1b312a 100644 --- a/power/VcdReader.cc +++ b/power/VcdReader.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/power/VcdReader.hh b/power/VcdReader.hh index ca1d6d2e..3a2e63f5 100644 --- a/power/VcdReader.hh +++ b/power/VcdReader.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/Clock.cc b/sdc/Clock.cc index 1b39e585..b54f4302 100644 --- a/sdc/Clock.cc +++ b/sdc/Clock.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/ClockGatingCheck.cc b/sdc/ClockGatingCheck.cc index 1e890baf..ca706cfe 100644 --- a/sdc/ClockGatingCheck.cc +++ b/sdc/ClockGatingCheck.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/ClockGroups.cc b/sdc/ClockGroups.cc index 7a67fca7..9729a15c 100644 --- a/sdc/ClockGroups.cc +++ b/sdc/ClockGroups.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/ClockInsertion.cc b/sdc/ClockInsertion.cc index ee317e4b..6a0b0545 100644 --- a/sdc/ClockInsertion.cc +++ b/sdc/ClockInsertion.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/ClockLatency.cc b/sdc/ClockLatency.cc index d9267663..7912cd3f 100644 --- a/sdc/ClockLatency.cc +++ b/sdc/ClockLatency.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/CycleAccting.cc b/sdc/CycleAccting.cc index 9df530e5..3c674e05 100644 --- a/sdc/CycleAccting.cc +++ b/sdc/CycleAccting.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/DataCheck.cc b/sdc/DataCheck.cc index 23d3abd2..c3095188 100644 --- a/sdc/DataCheck.cc +++ b/sdc/DataCheck.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/DeratingFactors.cc b/sdc/DeratingFactors.cc index 3da41c41..f187f20b 100644 --- a/sdc/DeratingFactors.cc +++ b/sdc/DeratingFactors.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/DisabledPorts.cc b/sdc/DisabledPorts.cc index 0e736b9d..599f970b 100644 --- a/sdc/DisabledPorts.cc +++ b/sdc/DisabledPorts.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/ExceptionPath.cc b/sdc/ExceptionPath.cc index 8849d9c5..4ca26e4e 100644 --- a/sdc/ExceptionPath.cc +++ b/sdc/ExceptionPath.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/InputDrive.cc b/sdc/InputDrive.cc index 2c647562..26b06e57 100644 --- a/sdc/InputDrive.cc +++ b/sdc/InputDrive.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/PinPair.cc b/sdc/PinPair.cc index e88801da..05eac4d1 100644 --- a/sdc/PinPair.cc +++ b/sdc/PinPair.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/PortDelay.cc b/sdc/PortDelay.cc index 073c8e26..db0c0263 100644 --- a/sdc/PortDelay.cc +++ b/sdc/PortDelay.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/PortExtCap.cc b/sdc/PortExtCap.cc index 48287fec..377c818f 100644 --- a/sdc/PortExtCap.cc +++ b/sdc/PortExtCap.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/Sdc.cc b/sdc/Sdc.cc index 7517020d..6d035b05 100644 --- a/sdc/Sdc.cc +++ b/sdc/Sdc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -1289,7 +1289,7 @@ public: const Pin *load); protected: - virtual void visit(HpinDrvrLoad *drvr_load); + void visit(HpinDrvrLoad *drvr_load) override; void makeClkHpinDisables(const Pin *clk_src, const Pin *drvr, const Pin *load); @@ -3173,7 +3173,7 @@ public: float &fanout, bool &has_net_load, const Sdc *sdc); - virtual void operator()(const Pin *pin); + void operator()(const Pin *pin) override; protected: const RiseFall *rf_; @@ -3560,8 +3560,8 @@ public: Graph *graph); protected: - virtual void visit(const Pin *drvr, - const Pin *load); + void visit(const Pin *drvr, + const Pin *load) override; PinPairSet *pairs_; Graph *graph_; @@ -3601,8 +3601,8 @@ public: Graph *graph); protected: - virtual void visit(const Pin *drvr, - const Pin *load); + void visit(const Pin *drvr, + const Pin *load) override; PinPairSet *pairs_; Graph *graph_; @@ -5151,9 +5151,9 @@ public: ExpandException(ExceptionPath *exception, ExceptionPathSet &expansions, Network *network); - virtual void visit(ExceptionFrom *from, - ExceptionThruSeq *thrus, - ExceptionTo *to); + void visit(ExceptionFrom *from, + ExceptionThruSeq *thrus, + ExceptionTo *to) override; private: ExceptionPathSet &expansions_; diff --git a/sdc/Sdc.i b/sdc/Sdc.i index 2bca70b0..1347ac25 100644 --- a/sdc/Sdc.i +++ b/sdc/Sdc.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/Sdc.tcl b/sdc/Sdc.tcl index 744657e2..50f49e95 100644 --- a/sdc/Sdc.tcl +++ b/sdc/Sdc.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/sdc/SdcCmdComment.cc b/sdc/SdcCmdComment.cc index 667cacd0..3033ad63 100644 --- a/sdc/SdcCmdComment.cc +++ b/sdc/SdcCmdComment.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/Variables.cc b/sdc/Variables.cc index c97bbba1..6aae9894 100644 --- a/sdc/Variables.cc +++ b/sdc/Variables.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/WriteSdc.cc b/sdc/WriteSdc.cc index 9ca25826..cd58f136 100644 --- a/sdc/WriteSdc.cc +++ b/sdc/WriteSdc.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/WriteSdc.hh b/sdc/WriteSdc.hh index 02abd693..3ac822e1 100644 --- a/sdc/WriteSdc.hh +++ b/sdc/WriteSdc.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdc/WriteSdcPvt.hh b/sdc/WriteSdcPvt.hh index 7fd42340..b4adae56 100644 --- a/sdc/WriteSdcPvt.hh +++ b/sdc/WriteSdcPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/ReportAnnotation.cc b/sdf/ReportAnnotation.cc index c4e875b1..0e516e0e 100644 --- a/sdf/ReportAnnotation.cc +++ b/sdf/ReportAnnotation.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/ReportAnnotation.hh b/sdf/ReportAnnotation.hh index 1973fe74..cc810464 100644 --- a/sdf/ReportAnnotation.hh +++ b/sdf/ReportAnnotation.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/Sdf.i b/sdf/Sdf.i index 395e0f7e..66c47924 100644 --- a/sdf/Sdf.i +++ b/sdf/Sdf.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/Sdf.tcl b/sdf/Sdf.tcl index ab6572c2..df0a775c 100644 --- a/sdf/Sdf.tcl +++ b/sdf/Sdf.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/sdf/SdfParse.yy b/sdf/SdfParse.yy index 8475dafe..60e8b7ef 100644 --- a/sdf/SdfParse.yy +++ b/sdf/SdfParse.yy @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/SdfReader.cc b/sdf/SdfReader.cc index 59beb9f9..93804d87 100644 --- a/sdf/SdfReader.cc +++ b/sdf/SdfReader.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/SdfReader.hh b/sdf/SdfReader.hh index fd17bb84..f894ebd6 100644 --- a/sdf/SdfReader.hh +++ b/sdf/SdfReader.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/SdfReaderPvt.hh b/sdf/SdfReaderPvt.hh index d5a623ab..3b140a4e 100644 --- a/sdf/SdfReaderPvt.hh +++ b/sdf/SdfReaderPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/SdfScanner.hh b/sdf/SdfScanner.hh index e66e8593..14407236 100644 --- a/sdf/SdfScanner.hh +++ b/sdf/SdfScanner.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/SdfWriter.cc b/sdf/SdfWriter.cc index f42d54a9..6cc3cd1d 100644 --- a/sdf/SdfWriter.cc +++ b/sdf/SdfWriter.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/sdf/SdfWriter.hh b/sdf/SdfWriter.hh index 3c992366..c14df631 100644 --- a/sdf/SdfWriter.hh +++ b/sdf/SdfWriter.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Bdd.cc b/search/Bdd.cc index 89d77655..7d5bf55f 100644 --- a/search/Bdd.cc +++ b/search/Bdd.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Bfs.cc b/search/Bfs.cc index 4597d93b..ba73f780 100644 --- a/search/Bfs.cc +++ b/search/Bfs.cc @@ -1,6 +1,6 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckCapacitances.cc b/search/CheckCapacitances.cc index c084ca8c..41ccd9c2 100644 --- a/search/CheckCapacitances.cc +++ b/search/CheckCapacitances.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckCapacitances.hh b/search/CheckCapacitances.hh index 4d395cf5..bcd72051 100644 --- a/search/CheckCapacitances.hh +++ b/search/CheckCapacitances.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckFanouts.cc b/search/CheckFanouts.cc index 7b5a03d0..07e2f0af 100644 --- a/search/CheckFanouts.cc +++ b/search/CheckFanouts.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckFanouts.hh b/search/CheckFanouts.hh index 0cd3d1c3..1bcb647b 100644 --- a/search/CheckFanouts.hh +++ b/search/CheckFanouts.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckMaxSkews.cc b/search/CheckMaxSkews.cc index 8e71b8a5..8682f6f1 100644 --- a/search/CheckMaxSkews.cc +++ b/search/CheckMaxSkews.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckMaxSkews.hh b/search/CheckMaxSkews.hh index 0c7a5882..ac1660cc 100644 --- a/search/CheckMaxSkews.hh +++ b/search/CheckMaxSkews.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckMinPeriods.cc b/search/CheckMinPeriods.cc index 7008d413..bb9b9282 100644 --- a/search/CheckMinPeriods.cc +++ b/search/CheckMinPeriods.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckMinPeriods.hh b/search/CheckMinPeriods.hh index a8e0b918..9a0caa13 100644 --- a/search/CheckMinPeriods.hh +++ b/search/CheckMinPeriods.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckMinPulseWidths.cc b/search/CheckMinPulseWidths.cc index b13de4e3..0f7ff320 100644 --- a/search/CheckMinPulseWidths.cc +++ b/search/CheckMinPulseWidths.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckMinPulseWidths.hh b/search/CheckMinPulseWidths.hh index 0acda273..27e2aff3 100644 --- a/search/CheckMinPulseWidths.hh +++ b/search/CheckMinPulseWidths.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckSlews.cc b/search/CheckSlews.cc index faa3a77c..760aeee5 100644 --- a/search/CheckSlews.cc +++ b/search/CheckSlews.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckSlews.hh b/search/CheckSlews.hh index 60a167db..6921c53d 100644 --- a/search/CheckSlews.hh +++ b/search/CheckSlews.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckTiming.cc b/search/CheckTiming.cc index 965a8d15..de4ad8b4 100644 --- a/search/CheckTiming.cc +++ b/search/CheckTiming.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/CheckTiming.hh b/search/CheckTiming.hh index 75bd63ac..9cdd4227 100644 --- a/search/CheckTiming.hh +++ b/search/CheckTiming.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkDelays.hh b/search/ClkDelays.hh index 1b394914..2b9d6a36 100644 --- a/search/ClkDelays.hh +++ b/search/ClkDelays.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkInfo.cc b/search/ClkInfo.cc index ac8e1bf9..767a44a1 100644 --- a/search/ClkInfo.cc +++ b/search/ClkInfo.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkInfo.hh b/search/ClkInfo.hh index 8b0432bf..5efe7cab 100644 --- a/search/ClkInfo.hh +++ b/search/ClkInfo.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkLatency.cc b/search/ClkLatency.cc index 09d09bd5..0c186704 100644 --- a/search/ClkLatency.cc +++ b/search/ClkLatency.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkLatency.hh b/search/ClkLatency.hh index c8fbd49b..a07a4b76 100644 --- a/search/ClkLatency.hh +++ b/search/ClkLatency.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkNetwork.cc b/search/ClkNetwork.cc index a27ad610..5f757b89 100644 --- a/search/ClkNetwork.cc +++ b/search/ClkNetwork.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkSkew.cc b/search/ClkSkew.cc index 9deb4c91..ddbeb397 100644 --- a/search/ClkSkew.cc +++ b/search/ClkSkew.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ClkSkew.hh b/search/ClkSkew.hh index cedefa8a..349589e3 100644 --- a/search/ClkSkew.hh +++ b/search/ClkSkew.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Crpr.cc b/search/Crpr.cc index e782aef0..4d1bc3a0 100644 --- a/search/Crpr.cc +++ b/search/Crpr.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Crpr.hh b/search/Crpr.hh index 379608c1..5c7e6e4f 100644 --- a/search/Crpr.hh +++ b/search/Crpr.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/FindRegister.cc b/search/FindRegister.cc index a3607f61..8c0f3969 100644 --- a/search/FindRegister.cc +++ b/search/FindRegister.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -322,9 +322,9 @@ public: const Mode *mode); private: - virtual void visitReg(Instance *inst); - virtual void visitSequential(Instance *inst, - const Sequential *seq); + void visitReg(Instance *inst) override; + void visitSequential(Instance *inst, + const Sequential *seq) override; InstanceSet regs_; }; @@ -383,9 +383,9 @@ public: const Mode *mode); protected: - virtual void visitReg(Instance *inst); - virtual void visitSequential(Instance *inst, - const Sequential *seq); + void visitReg(Instance *inst) override; + void visitSequential(Instance *inst, + const Sequential *seq) override; virtual bool matchPin(Pin *pin); void visitExpr(FuncExpr *expr, Instance *inst, @@ -461,9 +461,9 @@ public: FindRegDataPins(const StaState *sta); private: - virtual bool matchPin(Pin *pin); - virtual FuncExpr *seqExpr1(const Sequential *seq); - virtual FuncExpr *seqExpr2(const Sequential *seq); + bool matchPin(Pin *pin) override; + FuncExpr *seqExpr1(const Sequential *seq) override; + FuncExpr *seqExpr2(const Sequential *seq) override; }; FindRegDataPins::FindRegDataPins(const StaState *sta) : @@ -528,9 +528,9 @@ public: FindRegClkPins(const StaState *sta); private: - virtual bool matchPin(Pin *pin); - virtual FuncExpr *seqExpr1(const Sequential *seq); - virtual FuncExpr *seqExpr2(const Sequential *seq); + bool matchPin(Pin *pin) override; + FuncExpr *seqExpr1(const Sequential *seq) override; + FuncExpr *seqExpr2(const Sequential *seq) override; }; FindRegClkPins::FindRegClkPins(const StaState *sta) : @@ -586,9 +586,9 @@ public: FindRegAsyncPins(const StaState *sta); private: - virtual bool matchPin(Pin *pin); - virtual FuncExpr *seqExpr1(const Sequential *seq) { return seq->clear(); } - virtual FuncExpr *seqExpr2(const Sequential *seq) { return seq->preset(); } + bool matchPin(Pin *pin) override; + FuncExpr *seqExpr1(const Sequential *seq) override { return seq->clear(); } + FuncExpr *seqExpr2(const Sequential *seq) override { return seq->preset(); } }; FindRegAsyncPins::FindRegAsyncPins(const StaState *sta) : @@ -629,14 +629,14 @@ public: FindRegOutputPins(const StaState *sta); private: - virtual bool matchPin(Pin *pin); - virtual void visitSequential(Instance *inst, - const Sequential *seq); + bool matchPin(Pin *pin) override; + void visitSequential(Instance *inst, + const Sequential *seq) override; void visitOutput(LibertyPort *port, Instance *inst); // Unused. - virtual FuncExpr *seqExpr1(const Sequential *seq); - virtual FuncExpr *seqExpr2(const Sequential *seq); + FuncExpr *seqExpr1(const Sequential *seq) override; + FuncExpr *seqExpr2(const Sequential *seq) override; }; FindRegOutputPins::FindRegOutputPins(const StaState *sta) : diff --git a/search/FindRegister.hh b/search/FindRegister.hh index 96cd5062..65ec3d61 100644 --- a/search/FindRegister.hh +++ b/search/FindRegister.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/GatedClk.cc b/search/GatedClk.cc index e7fa73fc..fdba28de 100644 --- a/search/GatedClk.cc +++ b/search/GatedClk.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/GatedClk.hh b/search/GatedClk.hh index 6cec6bc4..aeade0c5 100644 --- a/search/GatedClk.hh +++ b/search/GatedClk.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Genclks.cc b/search/Genclks.cc index 225dfcf0..ca81bb0a 100644 --- a/search/Genclks.cc +++ b/search/Genclks.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -707,8 +707,8 @@ public: BfsFwdIterator *insert_iter, GenclkInfo *genclk_info, const Mode *mode); - virtual VertexVisitor *copy() const; - virtual void visit(Vertex *vertex); + VertexVisitor *copy() const override; + void visit(Vertex *vertex) override; protected: GenclkSrcArrivalVisitor(Clock *gclk, diff --git a/search/Genclks.hh b/search/Genclks.hh index b3da5bbd..195e9538 100644 --- a/search/Genclks.hh +++ b/search/Genclks.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Latches.cc b/search/Latches.cc index 9dcd688a..8389c9c1 100644 --- a/search/Latches.cc +++ b/search/Latches.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Latches.hh b/search/Latches.hh index 864904e5..33980a20 100644 --- a/search/Latches.hh +++ b/search/Latches.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Levelize.cc b/search/Levelize.cc index ad510eb2..ce5db3ab 100644 --- a/search/Levelize.cc +++ b/search/Levelize.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Levelize.hh b/search/Levelize.hh index aab99a00..3a30d869 100644 --- a/search/Levelize.hh +++ b/search/Levelize.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/MakeTimingModel.cc b/search/MakeTimingModel.cc index d709f477..e1f9cba7 100644 --- a/search/MakeTimingModel.cc +++ b/search/MakeTimingModel.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -236,9 +236,9 @@ class MakeEndTimingArcs : public PathEndVisitor public: MakeEndTimingArcs(Sta *sta); MakeEndTimingArcs(const MakeEndTimingArcs&) = default; - virtual ~MakeEndTimingArcs() {} - virtual PathEndVisitor *copy() const; - virtual void visit(PathEnd *path_end); + ~MakeEndTimingArcs() override {} + PathEndVisitor *copy() const override; + void visit(PathEnd *path_end) override; void setInputRf(const RiseFall *input_rf); const ClockEdgeDelays &margins() const { return margins_; } diff --git a/search/MakeTimingModel.hh b/search/MakeTimingModel.hh index bf929526..c09634bb 100644 --- a/search/MakeTimingModel.hh +++ b/search/MakeTimingModel.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/MakeTimingModelPvt.hh b/search/MakeTimingModelPvt.hh index 8184c46e..aeca4267 100644 --- a/search/MakeTimingModelPvt.hh +++ b/search/MakeTimingModelPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Mode.cc b/search/Mode.cc index 1c44a73f..6bced47a 100644 --- a/search/Mode.cc +++ b/search/Mode.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Path.cc b/search/Path.cc index 5514d559..8ec27d20 100644 --- a/search/Path.cc +++ b/search/Path.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/PathEnd.cc b/search/PathEnd.cc index 33b6e1cd..6c644592 100644 --- a/search/PathEnd.cc +++ b/search/PathEnd.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/PathEnum.cc b/search/PathEnum.cc index 67465a1b..ed57ed28 100644 --- a/search/PathEnum.cc +++ b/search/PathEnum.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -246,11 +246,11 @@ public: bool unique_pins, bool unique_edges, PathEnum *path_enum); - virtual VertexVisitor *copy() const override; + VertexVisitor *copy() const override; void visitFaninPathsThru(Path *before_div, Vertex *prev_vertex, TimingArc *prev_arc); - virtual bool visitFromToPath(const Pin *from_pin, + bool visitFromToPath(const Pin *from_pin, Vertex *from_vertex, const RiseFall *from_rf, Tag *from_tag, @@ -277,7 +277,7 @@ private: Edge *edge, const Pin *to_pin, Vertex *to_vertex) override; - virtual void visit(Vertex *) override {} // Not used. + void visit(Vertex *) override {} // Not used. void insertUniqueEdgeDiv(Diversion *div); void reportDiversion(const Edge *edge, const TimingArc *div_arc, diff --git a/search/PathEnum.hh b/search/PathEnum.hh index 72b2ddb8..8fbab624 100644 --- a/search/PathEnum.hh +++ b/search/PathEnum.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/PathExpanded.cc b/search/PathExpanded.cc index 6f77a595..1f9713a1 100644 --- a/search/PathExpanded.cc +++ b/search/PathExpanded.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/PathGroup.cc b/search/PathGroup.cc index 8f3738c6..47086f3b 100644 --- a/search/PathGroup.cc +++ b/search/PathGroup.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -105,6 +105,12 @@ PathGroup::PathGroup(const char *name, { } +PathGroup::~PathGroup() +{ + PathEndSeq path_ends = heap_.extract(); + deleteContents(path_ends); +} + PathEndSeq PathGroup::pathEnds() const { @@ -170,15 +176,20 @@ void PathGroup::insert(PathEnd *path_end) { LockGuard lock(lock_); - heap_.insert(path_end); - path_end->setPathGroup(this); + auto [inserted, displaced] = heap_.insert(path_end); + if (inserted) + path_end->setPathGroup(this); + else + delete path_end; + if (displaced) + delete *displaced; } void PathGroup::pushEnds(PathEndSeq &path_ends) { if (!heap_.empty()) { - PathEndSeq ends = heap_.extract(); + PathEndSeq ends = heap_.contents(); path_ends.reserve(path_ends.size() + ends.size()); // Append heap path ends to path_ends. path_ends.insert(path_ends.end(), @@ -601,9 +612,9 @@ class MakePathEnds1 : public PathEndVisitor public: MakePathEnds1(PathGroups *path_groups); MakePathEnds1(const MakePathEnds1&) = default; - virtual PathEndVisitor *copy() const; - virtual void visit(PathEnd *path_end); - virtual void vertexEnd(Vertex *vertex); + PathEndVisitor *copy() const override; + void visit(PathEnd *path_end) override; + void vertexEnd(Vertex *vertex) override; private: void visitPathEnd(PathEnd *path_end, @@ -676,10 +687,10 @@ public: MakePathEndsAll(int endpoint_path_count, PathGroups *path_groups); MakePathEndsAll(const MakePathEndsAll&) = default; - virtual ~MakePathEndsAll(); - virtual PathEndVisitor *copy() const; - virtual void visit(PathEnd *path_end); - virtual void vertexEnd(Vertex *vertex); + ~MakePathEndsAll() override; + PathEndVisitor *copy() const override; + void visit(PathEnd *path_end) override; + void vertexEnd(Vertex *vertex) override; private: void visitPathEnd(PathEnd *path_end, @@ -906,8 +917,8 @@ public: const StaState *sta); MakeEndpointPathEnds(const MakeEndpointPathEnds &make_path_ends); ~MakeEndpointPathEnds(); - virtual VertexVisitor *copy() const; - virtual void visit(Vertex *vertex); + VertexVisitor *copy() const override; + void visit(Vertex *vertex) override; private: VisitPathEnds visit_path_ends_; diff --git a/search/Property.cc b/search/Property.cc index ba12610a..3a2a973b 100644 --- a/search/Property.cc +++ b/search/Property.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Property.i b/search/Property.i index 45f02d08..d6d2425b 100644 --- a/search/Property.i +++ b/search/Property.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ReportPath.cc b/search/ReportPath.cc index bf6d83fe..b7d3c9d2 100644 --- a/search/ReportPath.cc +++ b/search/ReportPath.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/ReportPath.hh b/search/ReportPath.hh index b934bc9e..642d4314 100644 --- a/search/ReportPath.hh +++ b/search/ReportPath.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Scene.cc b/search/Scene.cc index 154eab34..0bd27aa3 100644 --- a/search/Scene.cc +++ b/search/Scene.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Search.cc b/search/Search.cc index 871b0e0d..92fe7f7d 100644 --- a/search/Search.cc +++ b/search/Search.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -733,8 +733,8 @@ public: Search *search); protected: - virtual void visit(const Pin *drvr, - const Pin *load); + void visit(const Pin *drvr, + const Pin *load) override; Graph *graph_; Search *search_; @@ -3444,9 +3444,9 @@ public: FindEndRequiredVisitor(RequiredCmp *required_cmp, const StaState *sta); FindEndRequiredVisitor(const StaState *sta); - virtual ~FindEndRequiredVisitor(); - virtual PathEndVisitor *copy() const; - virtual void visit(PathEnd *path_end); + ~FindEndRequiredVisitor() override; + PathEndVisitor *copy() const override; + void visit(PathEnd *path_end) override; protected: const StaState *sta_; @@ -4092,8 +4092,8 @@ public: FindEndSlackVisitor(SlackSeq &slacks, const StaState *sta); FindEndSlackVisitor(const FindEndSlackVisitor &) = default; - virtual PathEndVisitor *copy() const; - virtual void visit(PathEnd *path_end); + PathEndVisitor *copy() const override; + void visit(PathEnd *path_end) override; protected: SlackSeq &slacks_; diff --git a/search/Search.i b/search/Search.i index d75cbf8d..cb8dde7e 100644 --- a/search/Search.i +++ b/search/Search.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Search.tcl b/search/Search.tcl index a9c1312d..f7a548c5 100644 --- a/search/Search.tcl +++ b/search/Search.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/search/SearchPred.cc b/search/SearchPred.cc index d9e829cd..803bcf54 100644 --- a/search/SearchPred.cc +++ b/search/SearchPred.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Sim.cc b/search/Sim.cc index 19e47a2d..31e7ca8e 100644 --- a/search/Sim.cc +++ b/search/Sim.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Sim.hh b/search/Sim.hh index 84117094..337f5546 100644 --- a/search/Sim.hh +++ b/search/Sim.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Sta.cc b/search/Sta.cc index 4da53008..e6d7de67 100644 --- a/search/Sta.cc +++ b/search/Sta.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -114,9 +114,9 @@ class StaDelayCalcObserver : public DelayCalcObserver { public: StaDelayCalcObserver(Search *search); - virtual void delayChangedFrom(Vertex *vertex); - virtual void delayChangedTo(Vertex *vertex); - virtual void checkDelayChangedTo(Vertex *vertex); + void delayChangedFrom(Vertex *vertex) override; + void delayChangedTo(Vertex *vertex) override; + void checkDelayChangedTo(Vertex *vertex) override; private: Search *search_; @@ -497,7 +497,6 @@ Sta::sta() Sta::~Sta() { - delete variables_; // Verilog modules refer to the network in the sta so it has // to deleted before the network. delete verilog_reader_; @@ -526,6 +525,7 @@ Sta::~Sta() delete power_; delete equiv_cells_; delete dispatch_queue_; + delete variables_; deleteContents(parasitics_name_map_); deleteContents(modes_); deleteContents(scenes_); @@ -3415,8 +3415,8 @@ public: bool include_port_paths, StaState *sta); MinPeriodEndVisitor(const MinPeriodEndVisitor &) = default; - virtual PathEndVisitor *copy() const; - virtual void visit(PathEnd *path_end); + PathEndVisitor *copy() const override; + void visit(PathEnd *path_end) override; float minPeriod() const { return min_period_; } private: diff --git a/search/StaState.cc b/search/StaState.cc index fca51792..6ba49123 100644 --- a/search/StaState.cc +++ b/search/StaState.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Tag.cc b/search/Tag.cc index ece8b14c..a242be9c 100644 --- a/search/Tag.cc +++ b/search/Tag.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/Tag.hh b/search/Tag.hh index 1b24c190..b989c644 100644 --- a/search/Tag.hh +++ b/search/Tag.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/TagGroup.cc b/search/TagGroup.cc index 93e0251e..67d0d5eb 100644 --- a/search/TagGroup.cc +++ b/search/TagGroup.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/TagGroup.hh b/search/TagGroup.hh index 2a02f2b9..972b3e73 100644 --- a/search/TagGroup.hh +++ b/search/TagGroup.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/VertexVisitor.cc b/search/VertexVisitor.cc index 900c7823..fc04c892 100644 --- a/search/VertexVisitor.cc +++ b/search/VertexVisitor.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/VisitPathEnds.cc b/search/VisitPathEnds.cc index 52859010..0c414c86 100644 --- a/search/VisitPathEnds.cc +++ b/search/VisitPathEnds.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/WorstSlack.cc b/search/WorstSlack.cc index 9eae159b..d2e6d5ce 100644 --- a/search/WorstSlack.cc +++ b/search/WorstSlack.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/search/WorstSlack.hh b/search/WorstSlack.hh index b23b8a9e..de3b0372 100644 --- a/search/WorstSlack.hh +++ b/search/WorstSlack.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/spice/WritePathSpice.cc b/spice/WritePathSpice.cc index 6c7034be..95fabc42 100644 --- a/spice/WritePathSpice.cc +++ b/spice/WritePathSpice.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/spice/WritePathSpice.hh b/spice/WritePathSpice.hh index c8823aeb..027cc04d 100644 --- a/spice/WritePathSpice.hh +++ b/spice/WritePathSpice.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/spice/WriteSpice.cc b/spice/WriteSpice.cc index 1e5cfb12..3e646bea 100644 --- a/spice/WriteSpice.cc +++ b/spice/WriteSpice.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/spice/WriteSpice.hh b/spice/WriteSpice.hh index b728d154..ace2b78b 100644 --- a/spice/WriteSpice.hh +++ b/spice/WriteSpice.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/spice/WriteSpice.i b/spice/WriteSpice.i index 30bf14e4..a6d5dbec 100644 --- a/spice/WriteSpice.i +++ b/spice/WriteSpice.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/spice/WriteSpice.tcl b/spice/WriteSpice.tcl index 7bf9674e..7cbb9be2 100644 --- a/spice/WriteSpice.tcl +++ b/spice/WriteSpice.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/spice/Xyce.cc b/spice/Xyce.cc index 500a677b..ff3e4b59 100644 --- a/spice/Xyce.cc +++ b/spice/Xyce.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/spice/Xyce.hh b/spice/Xyce.hh index 79db5821..84cf4f34 100644 --- a/spice/Xyce.hh +++ b/spice/Xyce.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/tcl/CmdArgs.tcl b/tcl/CmdArgs.tcl index 094fc633..fb962df6 100644 --- a/tcl/CmdArgs.tcl +++ b/tcl/CmdArgs.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/tcl/CmdUtil.tcl b/tcl/CmdUtil.tcl index 3eab6018..74fda26f 100644 --- a/tcl/CmdUtil.tcl +++ b/tcl/CmdUtil.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/tcl/Exception.i b/tcl/Exception.i index 0c4d788e..372d843e 100644 --- a/tcl/Exception.i +++ b/tcl/Exception.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/tcl/Init.tcl b/tcl/Init.tcl index bb5c5fd7..93632119 100644 --- a/tcl/Init.tcl +++ b/tcl/Init.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/tcl/Property.tcl b/tcl/Property.tcl index ed291091..87e0d3c3 100644 --- a/tcl/Property.tcl +++ b/tcl/Property.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/tcl/Splash.tcl b/tcl/Splash.tcl index 60b49931..701fcf16 100644 --- a/tcl/Splash.tcl +++ b/tcl/Splash.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 @@ -33,7 +33,7 @@ namespace eval sta { define_cmd_args show_splash {} proc show_splash {} { - report_line "OpenSTA [sta::version] [string range [sta::git_sha1] 0 9] Copyright (c) 2025, Parallax Software, Inc. + report_line "OpenSTA [sta::version] [string range [sta::git_sha1] 0 9] Copyright (c) 2026, Parallax Software, Inc. License GPLv3: GNU GPL version 3 This is free software, and you are free to change and redistribute it diff --git a/tcl/Sta.tcl b/tcl/Sta.tcl index 65d9d950..c1ceaf14 100644 --- a/tcl/Sta.tcl +++ b/tcl/Sta.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/tcl/StaTclTypes.i b/tcl/StaTclTypes.i index f8de82fd..e29d5a6b 100644 --- a/tcl/StaTclTypes.i +++ b/tcl/StaTclTypes.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/tcl/TclTypeHelpers.cc b/tcl/TclTypeHelpers.cc index 48104690..8667048b 100644 --- a/tcl/TclTypeHelpers.cc +++ b/tcl/TclTypeHelpers.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/tcl/Util.tcl b/tcl/Util.tcl index dc038e44..15443529 100644 --- a/tcl/Util.tcl +++ b/tcl/Util.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/tcl/Variables.tcl b/tcl/Variables.tcl index 336e7286..e37f7396 100644 --- a/tcl/Variables.tcl +++ b/tcl/Variables.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index ab1f6c62..edc16ee0 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -166,6 +166,7 @@ record_public_tests { verilog_attribute verilog_specify verilog_write_escape + verilog_unconnected_hpin } define_test_group fast [group_tests all] diff --git a/test/verilog_unconnected_hpin.ok b/test/verilog_unconnected_hpin.ok new file mode 100644 index 00000000..3c5cb8cf --- /dev/null +++ b/test/verilog_unconnected_hpin.ok @@ -0,0 +1,13 @@ +Find b1/out2: b1/out2 +Find b2/out2: b2/out2 +Net b2/out2 + Pin capacitance: 0.00 + Wire capacitance: 0.00 + Total capacitance: 0.00 + Number of drivers: 1 + Number of loads: 0 + Number of pins: 1 + +Driver pins + b2/u3/Y output (BUFx2_ASAP7_75t_R) + diff --git a/test/verilog_unconnected_hpin.tcl b/test/verilog_unconnected_hpin.tcl new file mode 100644 index 00000000..35163398 --- /dev/null +++ b/test/verilog_unconnected_hpin.tcl @@ -0,0 +1,9 @@ +read_liberty asap7_small.lib.gz +read_verilog verilog_unconnected_hpin.v +link_design top +puts "Find b1/out2: [get_full_name [get_pins b1/out2]]" +puts "Find b2/out2: [get_full_name [get_pins b2/out2]]" +# Check if net is connected to "b2/u3/Y" that was the b2/out2 in parent block +set iterm [sta::find_pin "b2/u3/Y"] +set net [get_net -of_object [get_pin $iterm]] +report_net [get_full_name $net] diff --git a/test/verilog_unconnected_hpin.v b/test/verilog_unconnected_hpin.v new file mode 100644 index 00000000..eec7865d --- /dev/null +++ b/test/verilog_unconnected_hpin.v @@ -0,0 +1,24 @@ +module top (in, clk1, clk2, out, out2); + input in, clk1, clk2; + output out, out2; + block1 b1 (.in(in), .clk(clk1), .out(b1out), .out2(out2)); + block2 b2 (.in(b1out), .clk(clk2), .out(out)); +endmodule // top + +module block1 (in, clk, out, out2); + input in, clk; + output out, out2; + BUFx2_ASAP7_75t_R u1 (.A(in), .Y(u1out)); + DFFHQx4_ASAP7_75t_R r1 (.D(u1out), .CLK(clk), .Q(r1q)); + BUFx2_ASAP7_75t_R u2 (.A(r1q), .Y(out)); + BUFx2_ASAP7_75t_R u3 (.A(out), .Y(out2)); +endmodule // block1 + +module block2 (in, clk, out, out2); + input in, clk; + output out, out2; + BUFx2_ASAP7_75t_R u1 (.A(in), .Y(u1out)); + DFFHQx4_ASAP7_75t_R r1 (.D(u1out), .CLK(clk), .Q(r1q)); + BUFx2_ASAP7_75t_R u2 (.A(r1q), .Y(out)); + BUFx2_ASAP7_75t_R u3 (.A(out), .Y(out2)); +endmodule // block2 diff --git a/util/Debug.cc b/util/Debug.cc index ba46f808..c2429db4 100644 --- a/util/Debug.cc +++ b/util/Debug.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Error.cc b/util/Error.cc index 4f0062fe..aa4b85e5 100644 --- a/util/Error.cc +++ b/util/Error.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Fuzzy.cc b/util/Fuzzy.cc index bd055f1d..0308bc9a 100644 --- a/util/Fuzzy.cc +++ b/util/Fuzzy.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Hash.cc b/util/Hash.cc index 2160ec1c..4f51bd57 100644 --- a/util/Hash.cc +++ b/util/Hash.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Machine.cc b/util/Machine.cc index d387e994..07e14182 100644 --- a/util/Machine.cc +++ b/util/Machine.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/MinMax.cc b/util/MinMax.cc index 864b09de..d3720ac3 100644 --- a/util/MinMax.cc +++ b/util/MinMax.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/PatternMatch.cc b/util/PatternMatch.cc index 7e814258..a8397e37 100644 --- a/util/PatternMatch.cc +++ b/util/PatternMatch.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Report.cc b/util/Report.cc index 6772484e..4a6e6bf8 100644 --- a/util/Report.cc +++ b/util/Report.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/ReportStd.cc b/util/ReportStd.cc index abf088d3..bcf73c2d 100644 --- a/util/ReportStd.cc +++ b/util/ReportStd.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -38,7 +38,7 @@ public: ReportStd(); protected: - virtual size_t printConsole(const char *buffer, size_t length); + size_t printConsole(const char *buffer, size_t length) override; virtual size_t printErrorConsole(const char *buffer, size_t length); }; diff --git a/util/ReportTcl.cc b/util/ReportTcl.cc index a8b9c159..d3e07048 100644 --- a/util/ReportTcl.cc +++ b/util/ReportTcl.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/RiseFallMinMax.cc b/util/RiseFallMinMax.cc index 4b21a426..0284e883 100644 --- a/util/RiseFallMinMax.cc +++ b/util/RiseFallMinMax.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/RiseFallMinMaxDelay.cc b/util/RiseFallMinMaxDelay.cc index c0746997..70cac609 100644 --- a/util/RiseFallMinMaxDelay.cc +++ b/util/RiseFallMinMaxDelay.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/RiseFallValues.cc b/util/RiseFallValues.cc index fb52568f..f04989fe 100644 --- a/util/RiseFallValues.cc +++ b/util/RiseFallValues.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Stats.cc b/util/Stats.cc index ccf1675f..ac6d98dd 100644 --- a/util/Stats.cc +++ b/util/Stats.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Transition.cc b/util/Transition.cc index 41b28643..9dd7fdc7 100644 --- a/util/Transition.cc +++ b/util/Transition.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/util/Util.i b/util/Util.i index 5bc47a53..32d9e0c1 100644 --- a/util/Util.i +++ b/util/Util.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/verilog/Verilog.i b/verilog/Verilog.i index c1485fea..3a60be30 100644 --- a/verilog/Verilog.i +++ b/verilog/Verilog.i @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/verilog/Verilog.tcl b/verilog/Verilog.tcl index 73e753de..216d7c3e 100644 --- a/verilog/Verilog.tcl +++ b/verilog/Verilog.tcl @@ -1,5 +1,5 @@ # OpenSTA, Static Timing Analyzer -# Copyright (c) 2025, Parallax Software, Inc. +# Copyright (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 diff --git a/verilog/VerilogParse.yy b/verilog/VerilogParse.yy index 8572f71d..71f056ad 100644 --- a/verilog/VerilogParse.yy +++ b/verilog/VerilogParse.yy @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/verilog/VerilogReader.cc b/verilog/VerilogReader.cc index de6099a5..3d402e79 100644 --- a/verilog/VerilogReader.cc +++ b/verilog/VerilogReader.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -1221,7 +1221,7 @@ public: VerilogNetConcatNameIterator(VerilogNetSeq *nets, VerilogModule *module, VerilogReader *reader); - virtual ~VerilogNetConcatNameIterator(); + ~VerilogNetConcatNameIterator() override; bool hasNext() override; const std::string &next() override; @@ -1824,14 +1824,13 @@ VerilogReader::makeModuleInstNetwork(VerilogModuleInst *mod_inst, } } - if (lib_cell) { - // Make all pins so timing arcs are built. - LibertyCellPortBitIterator port_iter(lib_cell); - while (port_iter.hasNext()) { - LibertyPort *port = port_iter.next(); - network_->makePin(inst, reinterpret_cast(port), nullptr); - } + // Make all pins so timing arcs are built and get_pins finds them. + CellPortBitIterator *port_iter = network_->portBitIterator(cell); + while (port_iter->hasNext()) { + Port *port = port_iter->next(); + network_->makePin(inst, port, nullptr); } + delete port_iter; bool is_leaf = network_->isLeaf(cell); VerilogBindingTbl bindings(zero_net_name_, one_net_name_); if (mod_inst->hasPins()) { @@ -1983,8 +1982,11 @@ VerilogReader::makeInstPin(Instance *inst, network_->connect(inst, port, net); } else { - Pin *pin = network_->makePin(inst, port, net); - if (!is_leaf && net) { + // Pin should already exist by prior makePin, then connect to parent + // net if present and create a term for the child-side net. + Pin *pin = network_->findPin(inst, port); + if (net) { + network_->connect(inst, port, net); const char *port_name = network_->name(port); Net *child_net = bindings->ensureNetBinding(port_name, inst, network_); network_->makeTerm(pin, child_net); diff --git a/verilog/VerilogReaderPvt.hh b/verilog/VerilogReaderPvt.hh index 23f24305..7a445ba4 100644 --- a/verilog/VerilogReaderPvt.hh +++ b/verilog/VerilogReaderPvt.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 @@ -61,7 +61,7 @@ public: const std::string &filename, int line, VerilogReader *reader); - virtual ~VerilogModule(); + ~VerilogModule() override; const std::string &name() { return name_; } const char *filename() { return filename_.c_str(); } VerilogAttrStmtSeq *attrStmts() { return attr_stmts_; } @@ -128,10 +128,10 @@ public: VerilogDclArg *arg, VerilogAttrStmtSeq *attr_stmts, int line); - virtual bool isBus() const { return true; } + bool isBus() const override { return true; } int fromIndex() const { return from_index_; } int toIndex() const { return to_index_; } - virtual int size() const; + int size() const override; private: int from_index_; @@ -161,8 +161,8 @@ public: VerilogAssign(VerilogNet *lhs, VerilogNet *rhs, int line); - virtual ~VerilogAssign(); - virtual bool isAssign() const { return true; } + ~VerilogAssign() override; + bool isAssign() const override { return true; } VerilogNet *lhs() const { return lhs_; } VerilogNet *rhs() const { return rhs_; } @@ -177,8 +177,8 @@ public: VerilogInst(const std::string &inst_name, VerilogAttrStmtSeq *attr_stmts, const int line); - virtual ~VerilogInst(); - virtual bool isInstance() const { return true; } + ~VerilogInst() override; + bool isInstance() const override { return true; } const std::string &instanceName() const { return inst_name_; } VerilogAttrStmtSeq *attrStmts() const { return attr_stmts_; } void setInstanceName(const std::string &inst_name); @@ -196,8 +196,8 @@ public: VerilogNetSeq *pins, VerilogAttrStmtSeq *attr_stmts, const int line); - virtual ~VerilogModuleInst(); - virtual bool isModuleInst() const { return true; } + ~VerilogModuleInst() override; + bool isModuleInst() const override { return true; } const std::string &moduleName() const { return module_name_; } VerilogNetSeq *pins() const { return pins_; } bool namedPins(); @@ -219,7 +219,7 @@ public: const StringSeq &net_names, VerilogAttrStmtSeq *attr_stmts, const int line); - virtual bool isLibertyInst() const { return true; } + bool isLibertyInst() const override { return true; } LibertyCell *cell() const { return cell_; } const StringSeq &netNames() const { return net_names_; } @@ -258,7 +258,7 @@ class VerilogNetNamed : public VerilogNet { public: VerilogNetNamed(const std::string &name); - virtual ~VerilogNetNamed(); + ~VerilogNetNamed() override; bool isNamed() const override { return true; } virtual bool isScalar() const = 0; const std::string &name() const override { return name_; } @@ -272,10 +272,10 @@ class VerilogNetScalar : public VerilogNetNamed { public: VerilogNetScalar(const std::string &name); - virtual bool isScalar() const { return true; } - virtual int size(VerilogModule *module); - virtual VerilogNetNameIterator *nameIterator(VerilogModule *module, - VerilogReader *reader); + bool isScalar() const override { return true; } + int size(VerilogModule *module) override; + VerilogNetNameIterator *nameIterator(VerilogModule *module, + VerilogReader *reader) override; }; class VerilogNetBitSelect : public VerilogNetNamed @@ -284,10 +284,10 @@ public: VerilogNetBitSelect(const std::string &name, int index); int index() { return index_; } - virtual bool isScalar() const { return false; } - virtual int size(VerilogModule *module); - virtual VerilogNetNameIterator *nameIterator(VerilogModule *module, - VerilogReader *reader); + bool isScalar() const override { return false; } + int size(VerilogModule *module) override; + VerilogNetNameIterator *nameIterator(VerilogModule *module, + VerilogReader *reader) override; private: int index_; }; @@ -298,10 +298,10 @@ public: VerilogNetPartSelect(const std::string &name, int from_index, int to_index); - virtual bool isScalar() const { return false; } - virtual int size(VerilogModule *module); - virtual VerilogNetNameIterator *nameIterator(VerilogModule *module, - VerilogReader *reader); + bool isScalar() const override { return false; } + int size(VerilogModule *module) override; + VerilogNetNameIterator *nameIterator(VerilogModule *module, + VerilogReader *reader) override; int fromIndex() const { return from_index_; } int toIndex() const { return to_index_; } @@ -316,10 +316,10 @@ public: VerilogNetConstant(const std::string *constant, VerilogReader *reader, int line); - virtual ~VerilogNetConstant(); - virtual int size(VerilogModule *module); - virtual VerilogNetNameIterator *nameIterator(VerilogModule *module, - VerilogReader *reader); + ~VerilogNetConstant() override; + int size(VerilogModule *module) override; + VerilogNetNameIterator *nameIterator(VerilogModule *module, + VerilogReader *reader) override; private: void parseConstant(const std::string *constant, @@ -341,10 +341,10 @@ class VerilogNetConcat : public VerilogNetUnnamed { public: VerilogNetConcat(VerilogNetSeq *nets); - virtual ~VerilogNetConcat(); - virtual int size(VerilogModule *module); - virtual VerilogNetNameIterator *nameIterator(VerilogModule *module, - VerilogReader *reader); + ~VerilogNetConcat() override; + int size(VerilogModule *module) override; + VerilogNetNameIterator *nameIterator(VerilogModule *module, + VerilogReader *reader) override; private: VerilogNetSeq *nets_; @@ -355,7 +355,7 @@ class VerilogNetPortRef : public VerilogNetScalar { public: VerilogNetPortRef(const std::string &name); - virtual bool isNamedPortRef() { return true; } + bool isNamedPortRef() override { return true; } virtual bool hasNet() = 0; }; @@ -369,12 +369,12 @@ public: VerilogNetPortRefScalarNet(const std::string &name); VerilogNetPortRefScalarNet(const std::string &name, const std::string &net_name); - virtual bool isScalar() const { return true; } - virtual bool isNamedPortRefScalarNet() const { return true; } - virtual int size(VerilogModule *module); - virtual VerilogNetNameIterator *nameIterator(VerilogModule *module, - VerilogReader *reader); - virtual bool hasNet() { return !net_name_.empty(); } + bool isScalar() const override { return true; } + bool isNamedPortRefScalarNet() const override { return true; } + int size(VerilogModule *module) override; + VerilogNetNameIterator *nameIterator(VerilogModule *module, + VerilogReader *reader) override; + bool hasNet() override { return !net_name_.empty(); } const std::string &netName() const { return net_name_; } void setNetName(const std::string &net_name) { net_name_ = net_name; } @@ -387,12 +387,12 @@ class VerilogNetPortRefScalar : public VerilogNetPortRef public: VerilogNetPortRefScalar(const std::string &name, VerilogNet *net); - virtual ~VerilogNetPortRefScalar(); - virtual bool isScalar() const { return true; } - virtual int size(VerilogModule *module); - virtual VerilogNetNameIterator *nameIterator(VerilogModule *module, - VerilogReader *reader); - virtual bool hasNet() { return net_ != nullptr; } + ~VerilogNetPortRefScalar() override; + bool isScalar() const override { return true; } + int size(VerilogModule *module) override; + VerilogNetNameIterator *nameIterator(VerilogModule *module, + VerilogReader *reader) override; + bool hasNet() override { return net_ != nullptr; } private: VerilogNet *net_; diff --git a/verilog/VerilogScanner.hh b/verilog/VerilogScanner.hh index f2dbec19..1776062c 100644 --- a/verilog/VerilogScanner.hh +++ b/verilog/VerilogScanner.hh @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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 diff --git a/verilog/VerilogWriter.cc b/verilog/VerilogWriter.cc index 3d6e274c..d8ee7c6f 100644 --- a/verilog/VerilogWriter.cc +++ b/verilog/VerilogWriter.cc @@ -1,5 +1,5 @@ // OpenSTA, Static Timing Analyzer -// Copyright (c) 2025, Parallax Software, Inc. +// Copyright (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