What STA Checks
STA breaks a design into a graph of timing arcs: every register clock pin and every primary input is a possible startpoint; every register data pin and every primary output is a possible endpoint. Between any startpoint and endpoint there's a combinational path, and STA computes two numbers for each: the arrival time (how long the signal actually takes to get there, worst-case) and the required time (the deadline imposed by the clock and the next register's setup/hold requirements). The difference is slack — positive slack means the path meets timing with margin to spare, negative slack means a violation that has to be fixed before signoff.
Why static, not simulation
Dynamic simulation only tells you about the specific input vectors you happened to apply. STA analyzes every structural path in the design simultaneously, guaranteeing no timing path is missed — at the cost of being pessimistic about paths that can never actually be exercised by real functional behavior (see Timing Exceptions).
Path-based vs. graph-based
Most signoff STA is graph-based (GBA) for speed — propagating worst-case arrival times through the timing graph node by node. Path-based analysis (PBA) re-derives a specific reported path's true delay exactly, recovering pessimism GBA introduces when different paths share partial logic; used selectively on the worst-reported violations.
Where it sits in the flow
STA runs continuously from synthesis onward — as an optimization guide inside place-and-route — and one final time at signoff, alongside the DRC/LVS/IR-EM checks covered on Tapeout / GDSII, using post-route parasitics for the most accurate delay numbers available before the design is committed to a mask.
Timing Path Types
Every path STA analyzes falls into one of four categories, based on what's at each end.
Click a path type to jump to more detail. reg2reg, in2reg, reg2out, and in2out are the four structural path categories STA classifies every path into. Each has different sources for its required-time deadline.
set_input_delay/set_output_delay) are covered in full with real SDC examples on Physical Design → Interface Paths. This page focuses on the reg2reg setup/hold mechanics that apply to every path type.Setup & Hold Analysis
Every flip-flop has two timing requirements around its clock edge: data must be stable for a setup time (Tsu) before the edge, and remain stable for a hold time (Thd) after it. STA checks both, but against opposite path speeds — setup checks the slowest path can still make it in time; hold checks the fastest path doesn't arrive too early and corrupt the value the setup check was protecting.
The setup window sits just before the clock edge, the hold window just after — together they define the narrow slice of time around the edge where the data input must not be changing.
The setup check
Setup asks: does the slowest possible arrival at the capture flop's data pin still land before the setup window opens? The launch edge starts the clock-to-Q delay of the launching flop, then the combinational logic's worst-case (max) delay; the capture edge, one clock period later, minus the setup time and the clock's uncertainty budget, sets the deadline.
A positive result means the path meets setup with margin; negative means a violation. Uncertainty bundles clock jitter and (pre-CTS) an estimated skew margin — see Physical Design → SDC Clock Uncertainty for how that number is derived and how it shrinks once a real clock tree exists.
The hold check
Hold asks the opposite question at the opposite edge: does the fastest possible arrival stay away from the same clock edge for long enough afterward? Here the launching path's minimum delay is compared against the hold-time deadline at the very next clock edge, not one period later — which is why hold violations, unlike setup violations, can't be fixed by simply running the clock slower.
Hold violations are typically fixed by inserting delay buffers into the offending path (slowing it down just enough), since neither clock period nor voltage/temperature changes help — a hold violation exists at every operating point.
What setup and hold actually protect
The path-level formulas above treat Tsu and Thd as fixed numbers pulled from a library, but they come from something physical: every flip-flop is (almost always) built from two back-to-back latches — a master latch that's transparent while the clock is low and a slave latch that's transparent while the clock is high. Data only actually gets "captured" at one specific instant: the moment the master latch closes and stops being transparent, which happens some number of gate-delays after the clock signal crosses the flop's external clock pin. Setup and hold aren't really about the external pin edge at all — they're about guaranteeing the data is stable at that internal closing instant, referenced back out to the external pins design engineers actually see in SDC and timing reports.
Setup and hold time are specified relative to the external CP pin purely for convenience — the actual physics happens at internal node X, once the master latch's transmission gate closes.
How setup and hold are actually measured
Neither number can be read off a single delay measurement the way clock-to-Q delay can. Library characterization instead sweeps the data transition back and forth relative to the clock edge across many trial simulations, and watches what happens to the resulting clock-to-Q delay (Tcq) at the output.
This is the "bathtub curve." Tcq stays flat at its minimum for most of the sweep, then bends sharply upward as the data transition crowds either side of the clock edge. The industry-standard definition places Tsu and Thd at the offset where Tcq has degraded by a fixed 10% above its minimum — not at the true asymptote, which would technically require the data offset to reach infinity.
Tdc is the data-transition time relative to the clock edge. The two offsets where the curve crosses this 10%-degradation line, one on each side of the edge, are the definitions of −Tsu and +Thd. A tighter or looser percentage shifts both numbers together; some flows instead use a fixed absolute delay adder (e.g. +10ps over minimum) rather than a percentage, especially at low voltage where the curve's minimum region isn't flat enough for a percentage criterion to stay well-behaved.
| Criterion | Definition | Where it's used |
|---|---|---|
| Relative degradation (10%) | Tcq allowed to rise 10% above its minimum | Most common default across standard-cell characterization tools |
| Fixed absolute adder | Tcq allowed to rise by a fixed delay (e.g. 5–10ps) above minimum | Near-threshold / low-voltage libraries, where the Tcq curve is too nonlinear for a clean percentage point |
| Pass/fail (functional) | The offset closest to the edge that still produces a logically correct, non-metastable output at all | Conservative reference point; rarely used directly for signoff since it sits right at the edge of the metastability cliff |
Can setup or hold be negative? Yes — and here's the mechanism
Both numbers absolutely can be negative in a real cell library, and it isn't a data error when a timing report shows one. A negative Tsu means data is still safely captured even if it arrives slightly after the external clock edge; a negative Thd means data is allowed to change slightly before the external clock edge and the flop still reliably captures the old value. Both come from exactly the same source: the internal race, inside the flip-flop cell, between the clock buffer chain's delay and the D-pin-to-master-latch data path's delay — the two paths highlighted in the master-slave diagram above.
Same mechanism, opposite regime: whichever internal path (clock or data) is relatively slower "donates" margin to the other check. A cell can't get negative setup and negative hold at the same time from this effect — it's a trade, not a free gift on both sides.
Writing this out: let τclk be the internal delay from the CP pin to the real internal sampling instant, and τd be the internal delay from the D pin to the master latch's input. Deriving the external setup/hold requirement from the internal ones by simply shifting for these two delays gives:
Thd,ext = Thd,int + τclk − τd
The two equations share the same (τclk − τd) term with opposite sign — whatever this internal race adds to one check, it subtracts from the other. When the clock path dominates (τclk large), Tsu,ext can drop below zero. When the data path dominates (τd large), Thd,ext can drop below zero instead.
Worked example
Suppose a flop's internal setup requirement is Tsu,int = 50ps, its clock buffer chain adds τclk = 180ps, and its D-to-master-latch route adds only τd = 60ps. Then Tsu,ext = 50 + 60 − 180 = −70ps — the datasheet and the .lib model both report a setup time of −70ps, meaning data is still safely captured even 70ps after the external clock edge appears to have already passed.
setup_rising/hold_rising tables exactly like this, and STA tools consume them with no special-casing — the slack formulas from earlier in this section work correctly whether Tsu/Thd are positive or negative, since slack is still just required-time minus arrival-time. A negative hold time on a library flop is one of the quiet reasons some designs close hold with fewer buffer insertions than a naive by-hand estimate would predict.Clock Uncertainty & Reconvergence Pessimism
Both the launch and capture flip-flops in a reg2reg path get their clock from the same clock tree, which usually means the two clock paths share a common trunk before splitting off toward their respective leaf flops. A naive STA tool would apply the clock tree's latest possible delay to the launch path and its earliest possible delay to the capture path (or vice versa, whichever is pessimistic) — including along the segment both paths physically share, which cannot actually have two different delays at once in real silicon.
Clock reconvergence pessimism removal (CRPR), also called common clock path pessimism removal (CCPP removal), identifies the shared clock-tree segment between a launch and capture path and cancels the artificial early/late split applied to it.
CRPR matters most on paths where the launch and capture flops are physically close together and share most of their clock path — exactly the kind of path a clock mesh or H-tree topology (see Physical Design → CTS) is designed to produce plenty of. Without CRPR, signoff would report false violations on paths that are actually safe, forcing unnecessary and costly fixes.
| Uncertainty component | Present pre-CTS? | Present post-CTS? |
|---|---|---|
| Clock jitter | Yes (estimated) | Yes (from clock source / PLL spec) |
| Skew margin (generic guardband) | Yes — large, since no real tree exists yet | No — replaced by actual propagated skew |
| Reconvergence pessimism | N/A — no real clock topology to share paths | Present, removed by CRPR |
Timing Exceptions
Not every structural path in a netlist represents something that can actually happen functionally, and not every path needs to close in a single clock cycle. SDC timing exceptions tell STA to relax or skip specific paths — used carefully, since an incorrect exception silently turns off checking on a path that might actually matter.
False paths
A path that structurally exists in the netlist but can never be sensitized by real functional behavior — for example, two mutually-exclusive control paths that logic guarantees will never both be active, or paths through a synchronizer where only metastability settling time matters, not a specific delay number.
set_false_path -from [get_pins CTRL/mux_sel_reg/Q] \
-to [get_pins DATAPATH/mode_reg/D]
Multicycle paths
A path that's allowed more than one clock cycle to settle — common on wide, slow datapaths (large multipliers, deep adder chains) where forcing single-cycle closure would cost prohibitive area or power for no real benefit, as long as the receiving logic knows to wait the extra cycle(s) before sampling.
set_multicycle_path 2 -setup \
-from [get_pins MUL/a_reg/CP] \
-to [get_pins MUL/result_reg/D]
set_multicycle_path 1 -hold \
-from [get_pins MUL/a_reg/CP] \
-to [get_pins MUL/result_reg/D]
Corners & MCMM Signoff
A chip has to work correctly across every combination of manufacturing variation, supply voltage, temperature, and functional operating mode it might ever encounter — not just one. Multi-corner multi-mode (MCMM) analysis, sometimes called MMMC, runs the full STA path analysis across every combination simultaneously rather than one at a time, since the worst-case path is rarely the same path in every scenario.
Setup is typically dominant at the slow/worst-case corner (WCS), hold at the fast/best-case corner (BCF) — which is exactly why fixing one type of violation by changing corner assumptions doesn't work; both corners have to pass simultaneously.
| Dimension | What it varies | Typical signoff concern |
|---|---|---|
| PVT corner | Process (TT/FF/SS/…), voltage, temperature — see Fabrication → Process Corners | Setup dominant at slow corners, hold dominant at fast corners |
| Parasitic (RC) corner | Interconnect resistance/capacitance extraction extremes | Cmax/Cmin extraction corners stress setup vs. hold differently than device corners alone |
| Functional mode | Normal operation, low-power/sleep states, DFT scan-shift, JTAG/debug | Scan-shift mode in particular often has completely different critical paths than functional mode |
| On-chip variation | Within-die statistical spread — see Fabrication → On-Chip Variation & Sigma | Applied as derates or POCV distributions on top of every corner/mode combination |
Sigma & Statistical Guardbanding
"3-sigma" and "2-sigma" show up constantly in timing signoff conversations, and they mean exactly what they mean in any other statistical context: a process parameter like transistor gate length or threshold voltage varies randomly from device to device, that variation is well-approximated by a Gaussian (normal) distribution, and σ is the standard deviation of that distribution. A cell's delay inherits the same randomness — each library arc has a mean delay μ and a characterized spread σ around it, and "signing off at 3σ" means the design has to meet timing even if a given path's delay lands 3 standard deviations into the unfavorable tail of that distribution, not just at the mean.
Setup cares about the slow (right) tail of the delay distribution; hold cares about the fast (left) tail. A "3σ setup guardband" adds 3× the characterized σ on top of μ when computing the arrival time used in the setup check.
| Sigma level (N) | One-sided coverage | Approx. fraction left in the tail |
|---|---|---|
| 1σ | 84.13% | ≈158,700 ppm (1 in 6) |
| 2σ | 97.72% | ≈22,750 ppm (1 in 44) |
| 3σ | 99.87% | ≈1,350 ppm (1 in 741) — common signoff default |
| 4σ | 99.9968% | ≈31.7 ppm |
| 5σ | 99.99997% | ≈0.29 ppm |
| 6σ | 99.9999999% | ≈0.001 ppm — automotive/safety-critical territory |
Choosing N is a direct trade between design margin and residual risk, and it's the same trade the yield model on Fabrication → Yield makes for defect density — a higher sigma target covers more of the population but costs more area, power, or frequency to guarantee, since every path effectively has to be built to survive a rarer, more pessimistic version of itself. Consumer designs commonly sign off around 3σ; automotive and infrastructure parts, where a field failure is far more costly, often push to 4.5–6σ for the most safety-relevant paths.
Combining sigma along a path
A real timing path passes through many gates and wires, each with its own independent random variation. Naively adding each stage's Nσ guardband together (the old flat-AOCV approach) is far too pessimistic, because it implicitly assumes every gate on the path is simultaneously at its own worst case — astronomically unlikely for genuinely independent random sources. POCV instead combines the per-stage sigmas the way independent random variables actually combine: variances add, standard deviations don't.
The guardband actually added to the path's nominal delay is N × σpath, not N × (σ1 + σ2 + …). Because RSS grows with the square root of the number of stages rather than linearly, POCV recovers a meaningful amount of the pessimism that made older flat-derate AOCV methodology increasingly unusable as pipelines got deeper at advanced nodes. Systematic (chip-wide, fully-correlated) variation components still add linearly on top of this — only the random, independent component benefits from RSS.
Statistical STA (SSTA)
Corner-based STA treats process variation as a small handful of discrete worst-case points (TT/FF/SS/…), each analyzed as if every transistor on the chip were simultaneously at that exact extreme — a convenient simplification, but an increasingly pessimistic one as the number of independent variation sources grows at advanced nodes. Statistical static timing analysis (SSTA) instead models key parameters (gate length, threshold voltage, interconnect thickness) as probability distributions and propagates those distributions through the timing graph, producing a timing distribution for each path rather than a single worst-case number.
| Corner-based STA | SSTA | |
|---|---|---|
| Variation model | Discrete worst-case points | Continuous probability distributions |
| Output | Single slack number per path per corner | Timing yield / probability of meeting a target frequency |
| Pessimism | Higher — assumes full correlation at each corner | Lower — models partial correlation between parameters explicitly |
| Adoption | Universal, standard signoff methodology | Used selectively — complex flow, mostly at the most advanced nodes or for critical blocks |
SSTA hasn't replaced corner-based signoff industry-wide — POCV (parameterized on-chip variation, covered on Fabrication) captures much of SSTA's statistical benefit with far less flow complexity by applying statistically-derived derates on top of ordinary corner-based STA, which is why POCV rather than full SSTA is the more common statistical-timing technique in production signoff today.
Aging & Reliability
A chip that comfortably passes every setup and hold check on the day it's tested doesn't necessarily stay that way. Transistors physically wear out under electrical stress the same way any component does — not by breaking outright, but by slowly drifting. Over months and years of operation, two dominant mechanisms shift each transistor's threshold voltage (Vt) upward, which makes every gate a little slower than it was on day one, which in turn erodes the setup slack that was signed off against a "fresh" library.
Bias Temperature Instability (NBTI / PBTI)
NBTI affects PMOS devices held under negative gate-to-source stress (i.e. a gate held at logic-0 relative to source); PBTI is the NMOS analogue under positive stress. Both are caused by charge traps forming at the gate-oxide interface, which raises Vt and slows the device. A distinctive feature of BTI: it's partly recoverable — some of the trapped charge anneals out when the stress condition is removed (e.g. when a PMOS gate switches back to logic-1), so the damage isn't purely one-directional the way wear usually is. Still, a net permanent component accumulates over years of duty cycling.
Hot Carrier Injection (HCI)
During switching, some carriers gain enough kinetic energy ("hot" carriers) to be injected into and trapped within the gate oxide, again raising Vt and degrading mobility. Unlike BTI, HCI damage is essentially permanent and cumulative — it doesn't anneal out during idle periods. HCI severity scales with switching activity and supply voltage, so it hits high-frequency, high-toggle-rate logic (like clock buffers and heavily-used datapath cells) hardest.
Both mechanisms push delay in the same direction (slower), but with different shapes over time — which is why physics-based aging models, not a single flat percentage, are needed to project an accurate end-of-life (EOL) corner.
How STA accounts for it
| Approach | How it works | Tradeoff |
|---|---|---|
| Flat aging guardband | Multiply nominal signoff delay by a conservative fixed factor (e.g. 1.03–1.08×) meant to cover worst-case lifetime degradation | Simple, fast, but not physically grounded — can under- or over-guard specific paths depending on their actual switching activity and stress profile |
| Aging-aware STA | Degradation-aware cell libraries characterized at multiple aging checkpoints (fresh, 1yr, 5yr, EOL) from physics-based NBTI/HCI models fit to accelerated stress-test data; the EOL corner is run through STA like any other MCMM corner | More accurate and path-specific, but requires reliability-characterized libraries and workload/mission-profile assumptions (voltage, temperature, duty cycle) up front |
| In-field adaptive compensation | Rather than guardbanding at design time, track real degradation with on-chip monitors and compensate at runtime | Reduces the design-time guardband needed, at the cost of added monitor/control circuitry — see below |
Reliability models commonly fit BTI-driven threshold-voltage shift to a power law in time, with the exponent n typically in the 0.15–0.25 range (and the prefactor A a strong function of voltage, temperature, and duty cycle) — the diminishing-returns shape visible in the NBTI/PBTI curve above. This is a simplified empirical fit used for guardband projection, not a full physical model; production aging tools calibrate it against measured accelerated-stress data for the specific process.
Sources
- Timing Analysis — IEEE Technology Navigator
- Timing Yield Estimation Using Statistical Static Timing Analysis — IEEE Xplore
- Why We Need Statistical Static Timing Analysis — IEEE Xplore
- A Statistical Static Timing Analysis Considering Correlations Between Delays — IEEE Xplore
- Practical Statistical Static Timing Analysis with Current Source Models — IEEE Xplore
- Path-Based Statistical Static Timing Analysis for Large Integrated Circuits in a Weak Correlation Approximation — IEEE Xplore
- The Ultimate Guide to Static Timing Analysis (STA) — AnySilicon
- Multi-Corner Multi-Mode Designs Are No Mean Feat — EE Times
- Verification of Multi-Cycle Paths and False Paths — Semiconductor Engineering
- General Framework for Removal of Clock Network Pessimism — ResearchGate
- A Parametric Approach for Handling Local Variation Effects in Timing Analysis (POCV) — IEEE Xplore
- A New Generation of Static Timing Analysis Technology Based on N7+ Process — POCV — IEEE Xplore
- Statistical Timing for Parametric Yield Prediction of Digital Integrated Circuits — IEEE Xplore
- Integrating Aging-Aware Timing Analysis into a Commercial STA Tool — IEEE Xplore
- NBTI-Aware Statistical Circuit Delay Assessment — IEEE Xplore
- NBTI-Aware DVFS: A New Approach to Saving Energy and Increasing Processor Lifetime — IEEE Xplore