OpenSTA is an open-source STA tool by Parallax (hence a.k.a. Parallax STA/Static Timing Analyzer). User Manual is part of the repository.
sudo apt-get install cmake clang gcc tcl swig bison flex libeigen3-dev libz-dev tcl-dev
git clone https://github.com/parallaxsw/OpenSTA
mkdir OpenSTA/build && cd OpenSTA/build
cmake ..
make
Part of this gist is a compiled version of OpenSTA (commit fdca0dff7ae32edcecf2008977a084d92dc11190
) for Ubuntu Jammy.
wget https://gist.github.com/brabect1/2b57a2bd4b097ecf473825faee5b379e/raw/5f7e1eea7671fcbbb5d1f04000c44f30c796f6a5/opensta.build.fdca0dff7ae32edcecf2008977a084d92dc11190.jammy.tgz
sudo apt-get install tcl swig
tar xzvf opensta.build.fdca0dff7ae32edcecf2008977a084d92dc11190.jammy.tgz
export PATH=$PATH:$(pwd)/OpenSTA/bin
% read_liberty ~/sta_basics_course/src/prime_time/sample_lib1.lib
% read_verilog ~/sta_basics_course/src/prime_time/circ01.v
% link_design circ01
% create_clock -name CLK -period 20 clk
% report_checks
Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK)
Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK)
Path Group: CLK
Path Type: max
Delay Time Description
---------------------------------------------------------
0.00 0.00 clock CLK (rise edge)
0.00 0.00 clock network delay (ideal)
0.00 0.00 ^ FF1/CK (dffrx1)
3.00 3.00 v FF1/Q (dffrx1)
2.00 5.00 ^ G1/Y (invx1)
0.00 5.00 ^ FF2/D (dffrx1)
5.00 data arrival time
20.00 20.00 clock CLK (rise edge)
0.00 20.00 clock network delay (ideal)
0.00 20.00 clock reconvergence pessimism
20.00 ^ FF2/CK (dffrx1)
-0.70 19.30 library setup time
19.30 data required time
---------------------------------------------------------
19.30 data required time
-5.00 data arrival time
---------------------------------------------------------
14.30 slack (MET)