HomeSTA CourseDay 1
DAY 1 · STA FUNDAMENTALS

What is Static Timing Analysis?

By EcrioniX · Updated June 2026

Every chip that goes to tapeout must pass Static Timing Analysis. It is the primary method used to verify that a digital design meets its timing constraints — that signals propagate fast enough to meet setup time, and slow enough not to violate hold time. Understanding STA is not optional for a VLSI engineer: it is the language the entire industry speaks from synthesis to sign-off.

1. The problem STA solves

A modern SoC has hundreds of millions of flip-flops. Every flip-flop has a setup time requirement: data must be stable for a minimum window before the clock edge arrives. If any signal — anywhere, across any combination of inputs — arrives too late, the chip fails.

The naive approach is simulation: apply input vectors, measure timing. But a design with even 1,000 flip-flops has more possible states than atoms in the observable universe. You cannot simulate them all. A simulation might run for weeks and still miss the one input combination that causes a timing violation.

Static Timing Analysis solves this by working on the circuit graph directly. It traces every possible timing path through the netlist, computes the worst-case delay along each path, and checks whether constraints are met — without applying a single input vector. This makes STA exhaustive by construction.

STA is not functional verification

STA verifies timing only — that signals arrive at the right time. It does not verify function — that signals carry the correct values. A design can pass STA perfectly and still have a logic bug. Simulation and formal equivalence checking handle functional correctness. You need both.

2. Static vs Dynamic timing analysis

PropertyStatic Timing AnalysisDynamic Simulation
Input vectors needed?No — analyzes all paths structurallyYes — timing depends on applied stimuli
Coverage100% of paths checked exhaustivelyOnly paths exercised by test vectors
SpeedMinutes to hours on a full chipDays to weeks for equivalent coverage
What it checksSetup, hold, recovery, removal, pulse widthWhatever the testbench exercises
Functional bugsCannot detectCan detect
Industry useMandatory sign-off method for all ASICsFunctional verification, not timing sign-off

3. What STA actually does — step by step

The STA tool reads three inputs: the gate-level netlist, extracted parasitics (SPEF), and SDC constraints. It then:

  1. Builds a timing graph — directed graph where nodes are pins, edges carry delay values from Liberty models
  2. Propagates clock arrival times forward from all clock sources through the clock network
  3. Propagates data arrival times forward from all startpoints through combinational logic
  4. Computes slack at each endpoint — the margin between required and actual arrival time
  5. Reports violations — any path with negative slack is a timing failure
Slack = Required Time − Arrival Time
Setup slack = (Tclk − Tsetup) − Tdata_path   |   Hold slack = Tdata_path − Thold

Positive slack → timing met  |  Negative slack → violation  |  Worst slack path = critical path

4. The four types of timing paths

TYPE 1

Input → Register

From a primary input port to the data pin (D) of a flip-flop. Constrained by set_input_delay in SDC.

TYPE 2

Register → Register

From the clock pin (CK) of one FF through combinational logic to the data pin (D) of another FF. The most common path — checked for both setup and hold.

TYPE 3

Register → Output

From the clock pin of a FF through combinational logic to a primary output port. Constrained by set_output_delay in SDC.

TYPE 4

Input → Output

Purely combinational — from a primary input directly to a primary output with no flip-flops in the path.

The four STA timing path types Four Timing Path Types in STA FF Launch CK pin Combinational Logic cells + interconnect FF Capture D pin TYPE 2: Register-to-Register (most common) Input FF (D) TYPE 1: Input to Register FF (Q) Output TYPE 3: Register to Output Input Output TYPE 4: Input to Output (combinational)
Figure — The four STA timing path types. Register-to-register (Type 2) is most numerous. Input/output paths require SDC constraints to define external timing.

5. The five timing checks STA performs

CheckWhereWhat it verifiesFix if violated
SetupFF data pin (D)Data stable before clock edge by TsetupShorten data path; upsize cells; use LVT
HoldFF data pin (D)Data stable after clock edge for TholdInsert delay buffers on data path
RecoveryFF async reset pinAsync reset de-asserted before active clock edgeFix reset synchronizer timing
RemovalFF async reset pinAsync reset held for minimum time after clock edgeFix reset assertion timing
Pulse widthFF clock pinClock high/low pulse meets minimum widthFix clock gating or division logic

6. STA tools in the industry

ToolVendorUse
PrimeTime (PT)SynopsysIndustry-standard ASIC sign-off — used at virtually every semiconductor company
TempusCadenceIntegrated with Innovus PnR; sign-off grade
DesignCompiler (DC)SynopsysSynthesis-time STA — estimation only, not sign-off
Vivado TimingAMD/XilinxFPGA timing analysis
Quartus TimingIntelIntel FPGA timing analysis

This course uses Synopsys PrimeTime syntax

All SDC commands, timing reports, and flows in this course are written in PrimeTime format — the industry standard for ASIC sign-off. The concepts apply equally to Cadence Tempus; command syntax is nearly identical.

7. A minimal PrimeTime session

To run STA with PrimeTime you need three inputs: gate-level netlist, Liberty libraries, and an SDC file.

run_sta.tcl — minimal PrimeTime script
## 1. Read Liberty library (standard cell timing model)
read_lib /pdk/tsmc28/typical/sc9_cln28hp_svt_ff0p99vg25c.lib

## 2. Read the gate-level netlist
read_verilog /design/out/soc_top.v
link_design soc_top

## 3. Read extracted parasitics (post-layout RC values from router)
read_parasitics /design/out/soc_top.spef

## 4. Apply SDC timing constraints (clocks, I/O delays, exceptions)
source /design/constraints/soc_top.sdc

## 5. Setup check -- worst 10 paths
report_timing -max_paths 10 -delay_type max \
              -path_type full_clock_expanded

## 6. Hold check -- worst 10 paths
report_timing -max_paths 10 -delay_type min \
              -path_type full_clock_expanded

## 7. Summary: worst negative slack (WNS) and total negative slack (TNS)
report_timing_summary

What the output tells you

report_timing prints the full path from startpoint to endpoint: every cell delay, net delay, clock arrival time, required time, and slack. report_timing_summary shows WNS (Worst Negative Slack) and TNS (Total Negative Slack). If WNS is negative, timing is violated. Day 11 covers reading and interpreting these reports in full detail.

8. What STA cannot check

Day 1 Key Takeaways

Frequently Asked Questions

What is the difference between STA and gate-level simulation?

Gate-level simulation applies specific input vectors and checks timing using SDF back-annotation — only paths your testbench activates. STA checks every path structurally without vectors. Use both: STA for complete timing sign-off, gate-level sim for corner-case functional verification at specific operating points.

Can STA be run before physical design?

Yes — synthesis tools run STA using estimated wire delays (wireload models). This is pre-layout STA. It is less accurate but fast, useful for early timing feedback. Post-layout STA uses actual extracted RC parasitics from the routed design and is the sign-off standard.

What is the critical path?

The critical path is the timing path with the worst (most negative) setup slack — the path that limits maximum operating frequency. Fixing the critical path reveals the next-worst path. Timing closure is the iterative process of fixing critical paths until all slacks are non-negative.

What is SDC?

Synopsys Design Constraints (SDC) is a Tcl-based format for specifying timing requirements: clock frequencies, clock relationships, I/O delays, timing exceptions (false paths, multicycle paths), and load/drive constraints. Without a correct SDC, STA produces meaningless results. Day 4 covers SDC in full.

What is WNS and TNS?

WNS (Worst Negative Slack) is the most negative slack across all timing paths — the worst single violation. TNS (Total Negative Slack) is the sum of all negative slacks. WNS tells you severity; TNS tells you total work needed to close timing.

Course hub
← STA Course Home