🔬 STA Signoff Standard • Static Timing Analysis & Timing Closure Reference

Static Timing Analysis (STA) & Timing Closure Cheatsheet

The definitive silicon engineering handbook for static timing analysis: Liberty (.lib) models, NLDM tables, setup/hold silicon math, clock skew, OCV/CRPR, clock domain crossing (CDC), and physical design ECO timing closure across PrimeTime, Tempus, AMD Vivado, and OpenSTA.

🧠 STA Mental Model

Vector-independent analysis, the 4 timing path types, and arrival vs required times.

📑 Liberty (.lib) Modeling

NLDM lookup tables, CCS/ECSM drivers, timing arcs, unateness, and characterization.

📐 Setup & Hold Math

Mathematical derivations, slack formulas, and why hold violations kill silicon at any frequency.

⚡ CDC & Metastability

MTBF formulations, 2-FF/3-FF synchronizers, Gray code pointers, and async FIFO safety.

FILTER:
Showing 65 topics
Module 1 • 5 Topics

STA Foundations & Core Mental Model

Why static timing analysis replaced gate-level dynamic simulation, the 4 timing path categories, vector-independent mathematical guarantees, and arrival vs required timing slack definitions.

§1

STA vs Dynamic Simulation

Foundations Core Theory

In early VLSI design, circuits were verified using dynamic gate-level simulation by applying test vectors and simulating waveforms. For modern systems-on-chip with 50+ billion transistors, dynamic simulation requires $2^N$ input vectors—an astronomical impossibility.

Static Timing Analysis (STA) solves this by being completely input-vector independent. Instead of exercising logic functions, STA breaks the netlist into graph segments, identifies all possible signal paths, and calculates the mathematical worst-case maximum delay (for setup) and best-case minimum delay (for hold) across all operating corners in minutes.

Characteristic Dynamic Gate-Level Simulation Static Timing Analysis (STA)
Vector Dependency Strictly dependent on testbench stimulus vectors Vector-independent (checks 100% of topological paths)
Coverage Only paths exercised by simulation vectors Exhaustive (100% path coverage guaranteed)
Execution Speed Extremely slow (days to weeks for full SoC) Very fast (minutes to hours for 50B transistors)
Functional Verification Verifies Boolean logic correctness & timing simultaneously Does NOT verify logic correctness; only checks propagation delay
False Path Risk Naturally ignores logically impossible paths Pessimistic: flags logically impossible paths unless constrained
Key Takeaway: STA proves that if a transition occurs, it will arrive on time. It does not prove that your state machine functions correctly—combine STA with Formal Equivalence Checking (LEC) and RTL Simulation for full signoff.
§2

The 4 Timing Path Categories

Foundations Paths

Every timing path in a digital integrated circuit has a defined Startpoint where data is launched and an Endpoint where data is captured. Every path in the design falls into exactly one of four categories:

The 4 Fundamental Path Types in Synchronous Silicon
  1. In-to-Reg:      [Primary Input Port] ──(ext delay + logic)──> [FF2 / D Pin]
  2. Reg-to-Reg:     [FF1 / CLK Pin] ─────(C-to-Q + logic)───────> [FF2 / D Pin]
  3. Reg-to-Out:     [FF1 / CLK Pin] ─────(C-to-Q + logic)───────> [Primary Output Port]
  4. In-to-Out:      [Primary Input Port] ──(pure comb logic)────> [Primary Output Port]
              
Path Type Startpoint Endpoint Governing SDC Constraints
Reg-to-Reg (Core) Clock pin of sequential cell (Flip-Flop / Latch) Data input pin (D pin) of sequential cell create_clock, create_generated_clock
In-to-Reg (Input) Primary chip input port Data pin of sequential cell set_input_delay -clock ...
Reg-to-Out (Output) Clock pin of sequential cell Primary chip output port set_output_delay -clock ...
In-to-Out (Feedthrough) Primary chip input port Primary chip output port set_input_delay & set_output_delay
Common Trap: An asynchronous reset pin on a flip-flop (e.g. CDN or RSTB) acts as a timing endpoint during Recovery/Removal analysis, not a clock startpoint!
§3

Max vs Min Timing Analysis

Foundations Setup/Hold

STA decomposes all temporal checks into two complementary mathematical extremes:

  • MAX Timing Analysis (Setup Check): Evaluates the slowest possible propagation of data. The signal must reach the capture element before the setup time window closes. If data takes too long, setup is violated.
  • MIN Timing Analysis (Hold Check): Evaluates the fastest possible propagation of data. The newly launched data must not arrive so fast that it corrupts the previous cycle's data currently being captured. If data arrives too quickly, hold is violated.
Max vs Min Core Dualism
MAX Analysis → Slow Corner (SS, Low VDD, High Temp) → Limits Maximum Operating Frequency
MIN Analysis → Fast Corner (FF, High VDD, Low Temp) → Functional Fatal Defect (Zero-Frequency Fail)

Crucial Insight: Setup violations can be avoided in the lab by simply lowering the clock frequency ($T_{period} \to \infty$). Hold violations cannot be salvaged by changing the clock frequency because the launch and capture edges are identical ($T_{period}$ cancels out)!

§4

Path Delay Accumulation & Segments

Foundations Delay Calc

A complete register-to-register timing path consists of three distinct physical segments. The STA engine calculates delays along these paths independently before comparing them:

The Three Physical Delay Segments of a Timing Path
   [Clock Source]
         │
         ├─── Launch Clock Tree (T_launch_clk) ──> [FF1 / CLK]
         │                                            │
         │                                            └──> [FF1 / Q] ── Data Path (T_dp) ──> [FF2 / D]
         │                                                                                      │
         └─── Capture Clock Tree (T_capture_clk) ─────────────────────────────────> [FF2 / CLK] ─┘
              
  • 1. Launch Clock Path: The latency from the clock source (PLL or port) through clock buffers/inverters to the clock pin of the launching register (FF1).
  • 2. Data Path: The time from the clock edge arriving at FF1, through the internal clock-to-Q delay of FF1 ($T_{cq}$), plus the propagation delay through all intervening combinational logic gates ($T_{logic}$) and interconnect wires ($T_{net}$).
  • 3. Capture Clock Path: The latency from the clock source through the clock distribution network to the clock pin of the capturing register (FF2).
§5

Slack Metrics: WNS, TNS & FEP

Foundations Metrics

Slack represents the timing margin of a path. A positive slack indicates that the timing constraint is met with room to spare; a negative slack indicates a timing violation.

Mathematical Definition of Slack
Setup Slack = Data Required Time - Data Arrival Time
Hold Slack = Data Arrival Time - Data Required Time

Notice the inversion: For Setup, data must arrive before it is required ($Arrival \le Required \implies Slack \ge 0$). For Hold, data must arrive after the hold window ($Arrival \ge Required \implies Slack \ge 0$).

Metric Name Full Name Significance in Timing Signoff
WNS Worst Negative Slack The single worst slack across the entire design (e.g., -185 ps). Sets the maximum clock frequency deficit. Signoff requirement: $\text{WNS} \ge 0.00\text{ ps}$.
TNS Total Negative Slack The sum of all negative slacks across all failing endpoints. Indicates the magnitude of design effort required to close timing.
FEP Failing Endpoints The raw count of distinct register data pins or output ports that have slack < 0.
WHS / THS Worst / Total Hold Slack The worst and cumulative hold slack across all fast corners. Must strictly be $\ge 0.00\text{ ps}$ for fabrication signoff.
Module 2 • 5 Topics

Cell Characterization & Liberty (.lib) Modeling

How SPICE simulations are distilled into industrial Liberty standard cell models: Non-Linear Delay Models (NLDM), 2D lookup tables, CCS/ECSM current sources, timing arcs, and unateness.

§6

Anatomy of a Liberty (.lib) File

Liberty Syntax

A Liberty file (.lib) is the industry standard ASCII database characterizing the timing, power, noise, and functional behavior of standard cells. It does not contain geometric transistor layouts (which live in GDSII/LEF); instead, it records thousands of pre-simulated SPICE measurements.

Liberty Syntax • library / cell / pin hierarchy
library (typical_1v0_25c) {
  delay_model               : table_lookup;
  time_unit                 : "1ps";
  voltage_unit              : "1V";
  current_unit              : "1mA";
  capacitive_load_unit      : (1, ff);
  slew_upper_threshold_pct_rise : 80.0;
  slew_lower_threshold_pct_rise : 20.0;
  slew_derate_from_library      : 1.0;

  /* Standard Inverter Cell */
  cell (INV_X1) {
    area : 0.864;
    pin (A) {
      direction : input;
      capacitance : 0.85; /* fF */
    }
    pin (Y) {
      direction : output;
      function : "!A";
      max_capacitance : 45.0; /* DRC max load */
      timing () {
        related_pin : "A";
        timing_sense : negative_unate;
        cell_rise (delay_template_7x7) { ... }
        cell_fall (delay_template_7x7) { ... }
        rise_transition (delay_template_7x7) { ... }
        fall_transition (delay_template_7x7) { ... }
      }
    }
  }
}
§7

NLDM & 2D Lookup Tables

Liberty NLDM

Under the Non-Linear Delay Model (NLDM), gate propagation delay and output slew are modeled as 2D lookup tables indexed by two physical parameters:

  1. Input Transition Time (Input Slew, $S_{in}$): How fast the input signal switches.
  2. Output Load Capacitance ($C_{load}$): The sum of all driven fanout pin capacitances and interconnect wire capacitance.
NLDM Delay Formulation
Cell Delay = f(Input Slew, Output Load Capacitance)
Output Slew = g(Input Slew, Output Load Capacitance)

When actual operating parameters fall between characterized table indices, the STA engine performs bilinear interpolation. When values exceed table limits, it performs linear extrapolation (which introduces severe pessimism or error).

Liberty 2D Lookup Table • cell_rise template
lu_table_template(delay_template_3x3) {
  variable_1 : input_net_transition;
  variable_2 : total_output_net_capacitance;
  index_1 ("10.0, 30.0, 80.0");     /* Input Slew (ps) */
  index_2 ("1.0,  5.0,  20.0");     /* Output Load (fF) */
}

/* Inside cell pin timing arc: */
cell_rise(delay_template_3x3) {
  /* Values: delay in ps for (Slew, Load) grid */
  values ( \
    "15.2, 24.8, 52.1", \
    "19.4, 29.1, 56.7", \
    "28.5, 38.6, 67.2"  \
  );
}
§8

Composite Current Source (CCS) & ECSM

Liberty Advanced Models

At technologies $\le 40\text{nm}$ and especially FinFET nodes ($\le 16\text{nm}$), NLDM becomes inaccurate because interconnect wires exhibit significant resistance (distributed RC), making the load non-purely capacitive.

Modern signoff relies on advanced current-source driver models:

  • CCS (Composite Current Source - Synopsys): Models the driver as a time-varying current source $I(t)$ dependent on input slew and output voltage, including receiver pin capacitance modeled as split $C_{pin1}$ and $C_{pin2}$ across the waveform.
  • ECSM (Effective Current Source Model - Cadence): Represents the cell as a dynamic voltage source driving a non-linear driver resistance $R_d(V)$ with multi-segment receiver capacitance.
Accuracy Gain: CCS and ECSM match SPICE golden simulations to within 1–2% on highly resistive nanoscale interconnects, compared to 15–30% error with traditional NLDM.
§9

Timing Arcs & Unateness

Liberty Arcs

A timing arc represents the path a signal takes from an input pin to an output pin of a cell. Unateness defines the mathematical polarity relationship between input transitions and output transitions:

Unateness Type Input Transition → Output Transition Typical Gates
Positive Unate (positive_unate) Rise at In → Rise at Out
Fall at In → Fall at Out
AND gates, OR gates, Buffers
Negative Unate (negative_unate) Rise at In → Fall at Out
Fall at In → Rise at Out
Inverters, NAND gates, NOR gates
Non-Unate (non_unate) Transition at Out depends on the state of other inputs XOR gates, XNOR gates, Multiplexers
STA Implication: For non-unate gates (XOR), an input rising transition can trigger either a rising or a falling output transition. STA engines must evaluate both paths, expanding the timing search tree.
§10

Sequential Cell Liberty Characterization

Liberty Sequential

Sequential cells (D-Flip-Flops, Latches) contain both propagation arcs (Clock to Q) and constraint arcs (Setup and Hold requirements on the D pin relative to the Clock pin).

Liberty Setup & Hold Constraint Arcs • DFF Cell
/* Setup Constraint Arc on Pin D */
timing () {
  related_pin : "CLK";
  timing_type : setup_rising;
  rise_constraint(constraint_template_3x3) {
    /* 2D table indexed by (Data Slew, Clock Slew) */
    values ( ... );
  }
}

/* Hold Constraint Arc on Pin D */
timing () {
  related_pin : "CLK";
  timing_type : hold_rising;
  rise_constraint(constraint_template_3x3) {
    values ( ... );
  }
}

/* Clock-to-Q Propagation Arc on Pin Q */
timing () {
  related_pin : "CLK";
  timing_type : rising_edge;
  cell_rise(delay_template_3x3) { ... }
}
Module 3 • 5 Topics

Slew, Transition Time & Delay Calculation

How voltages transition in physical silicon, standard threshold conventions (20%-80% vs 10%-90%), propagation delay measurement, interconnect RC models, and Max Slew DRC fixing.

§11

Slew & Transition Thresholds

Slew Physics

In ideal digital theory, voltages switch instantaneously. In real silicon, gate capacitance and channel resistance cause finite charging/discharging curves. Slew (or transition time) measures how quickly a waveform transitions between specified voltage thresholds.

Waveform Transition Thresholds (20% - 80% VDD)
  VDD ─── 1.0V ───────────────────────────────────────────────
                      /│
  80% ─── 0.8V ──────/ │                      \               
                    /  │                       \              
                   /   │                        \             
  20% ─── 0.2V ───/    │                         \            
                 /     │                          \│          
  0V  ─── 0.0V ─/──────┴───────────────────────────┴──────────
                |<-- Slew_rise -->|        |<-- Slew_fall -->|
                t_20%            t_80%     t_80%            t_20%
              
Mathematical Formulation of Slew
Slew_rise = t(V_upper) - t(V_lower) = t_80% - t_20%
Slew_fall = t(V_lower) - t(V_upper) = t_20% - t_80%

Threshold Derating: Many libraries characterize between 20% and 80% $V_{DD}$ (a $60\%$ delta), but normalize values to a $10\%-90\%$ range ($80\%$ delta). The library defines slew_derate_from_library : 0.6 or 1.0 to instruct the STA engine how to scale values.

§12

Rising vs Falling Slew Asymmetry

Slew CMOS

In CMOS technology, pull-up networks use PMOS transistors while pull-down networks use NMOS transistors. Because electron mobility in silicon is $2\times$ to $3\times$ higher than hole mobility ($\mu_n \approx 2.5 \mu_p$), an NMOS transistor of identical width can discharge a load significantly faster than a PMOS transistor can charge it.

Even after sizing PMOS up to balance drive strength, rising slew ($S_{rise}$) and falling slew ($S_{fall}$) rarely match identically. This asymmetry causes:

  • Duty Cycle Distortion (DCD): As a symmetric clock pulse propagates through multiple inverter stages, mismatched rise/fall delays shrink or expand high/low pulse widths.
  • Path Delay Divergence: Launching a '0' vs launching a '1' results in different arrival times at the capture flop. STA always analyzes the worst direction.
§13

Propagation Delay (50%-to-50%)

Slew Delay

The standard definition of gate propagation delay ($t_{pd}$) across any digital cell is the time elapsed between the input crossing the 50% $V_{DD}$ switching threshold and the output crossing its 50% $V_{DD}$ switching threshold:

Propagation Delay Equations
t_pHL = t_output(50% fall) - t_input(50% rise)
t_pLH = t_output(50% rise) - t_input(50% fall)
t_pd_avg = (t_pHL + t_pLH) / 2
§14

Interconnect RC Models & SPEF Parasitics

Interconnect Parasitics

In deep submicron processes, wire delay dominates cell gate delay. Interconnects cannot be treated as ideal equipotential nets. Parasitic extraction tools (e.g., StarRC, Quantus) output SPEF (Standard Parasitic Exchange Format) files containing distributed resistance ($R$), ground capacitance ($C_g$), and cross-coupling capacitance ($C_c$).

Distributed RC Pi-Model of a Routed Metal Track
  Driver Out ───[ R1 ]───┬───[ R2 ]───┬───[ R3 ]───> Receiver Pin
                         │            │
                       [ C1 ]       [ C2 ]
                         │            │
                        GND          GND
              
Elmore Delay Approximation
T_Elmore = ∑_k R_k · C_downstream(k)

STA engines reduce complex distributed RC networks into effective drive load models ($C_{eff}$) to query NLDM/CCS driver tables with high precision.

§15

Max Slew / Max Cap DRC Violations

DRC Fixes

Before reviewing setup and hold slack, an engineer must clear all Design Rule Check (DRC) timing violations:

  • Max Transition (Max Slew): Set by library characterization limits (e.g. max_transition : 200ps) or user SDC. Slow transitions burn excessive dynamic short-circuit power ($I_{sc}$) and increase susceptibility to crosstalk noise.
  • Max Capacitance: The maximum capacitive load a pin can safely drive without causing physical electromigration or severe table extrapolation.
Rule of Thumb: Always fix Max Transition and Max Capacitance violations before attempting timing closure ECOs. Fixing a slew violation by inserting a buffer or upsizing frequently fixes downstream setup violations automatically!
Module 4 • 5 Topics

Clock Skew, Jitter & Tree Topologies

Physical clock arrival variations: spatial skew vs temporal jitter, positive vs negative skew impacts on setup and hold, useful skew exploitation, and modern CTS tree architectures.

§16

Physical Definition of Clock Skew

Clock Physics

Clock Skew is the spatial difference in arrival times of the same clock edge at two different sequential registers in the design:

Clock Skew Equation
T_skew = T_capture_clk - T_launch_clk

Where $T_{launch\_clk}$ is the total insertion latency from the clock source to Launch FF1, and $T_{capture\_clk}$ is the insertion latency from the clock source to Capture FF2.

{
  "title": "Clock skew: the capture clock edge arrives 35 ps after the launch edge",
  "tickStart": 80, "tickStep": 5, "tickEvery": 2, "tickUnit": "ps",
  "signals": [
    { "name": "FF1/CLK (launch, 100 ps latency)", "wave": "0...1............" },
    { "name": "FF2/CLK (capture, 135 ps latency)", "wave": "0..........1....." },
    { "name": "skew", "wave": "0...=......0.....", "data": ["+35 ps"] }
  ]
}

Both flip-flops share one clock source; the different insertion latencies (100 ps vs 135 ps) make the capture edge arrive later, so T_skew = 135 − 100 = +35 ps.

§17

Positive vs Negative Skew Impact

Skew Timing Math

The sign of the clock skew fundamentally alters the available timing margins:

Skew Polarity Physical Meaning Impact on Setup Timing Impact on Hold Timing
Positive Skew
($T_{capture} > T_{launch}$)
Clock arrives at capture register later than launch register HELPS SETUP: Increases available clock period window ($T + T_{skew}$) HURTS HOLD: Capturing edge is delayed, demanding larger min datapath delay
Negative Skew
($T_{capture} < T_{launch}$)
Clock arrives at capture register earlier than launch register HURTS SETUP: Steals available time from combinational datapath ($T - |T_{skew}|$) HELPS HOLD: Capturing edge arrives early, preventing fast data race corruption
Crucial Rule: There is no free lunch in timing. Positive skew helps setup at the direct expense of hold; negative skew helps hold at the direct expense of setup.
§18

Useful Skew & Cycle Borrowing

Optimization CTS

Traditionally, Clock Tree Synthesis (CTS) aimed for zero skew ($T_{skew} = 0$). Modern physical synthesis uses Useful Skew (Clock Concurrent Optimization - CCOpt):

If Path A has -120 ps setup slack (violating) and downstream Path B has +350 ps slack (excess margin), the tool intentionally delays the clock buffer driving Path A's capture register by 150 ps. This shifts timing margin from Path B into Path A without adding pipeline stages or changing the master clock frequency!

§19

Clock Jitter vs Uncertainty Budget

Jitter Margins

It is vital to distinguish between Skew and Jitter:

  • Skew (Spatial): Variation in arrival time between different physical points at the same time instance. Deterministic and static.
  • Jitter (Temporal): Variation in arrival time at the same physical point across different clock cycles. Caused by thermal noise, PLL phase noise, and power rail fluctuations.
Clock Uncertainty Budget Breakdown
set_clock_uncertainty = Clock_Jitter + CTS_Target_Skew + Signoff_Margin

Prior to CTS (Pre-CTS), uncertainty includes expected CTS skew (e.g. 150 ps) + jitter (50 ps) = 200 ps. After CTS (Post-CTS), skew is physically propagated, so uncertainty is reduced to pure jitter + margin (e.g. 50 ps).

§20

Clock Tree Synthesis (CTS) Topologies

Physical Design CTS

The choice of clock distribution network topology dictates achievable skew and dynamic power dissipation:

CTS Architecture Description Advantages Disadvantages
H-Tree Recursive geometric branching with identical branch lengths Near-zero structural skew by symmetry Rigid layout requirements; blocks routing channels
Clock Mesh / Grid Pre-routed global metal grid driven by array of parallel drivers Extremely low skew; highly immune to on-chip variation (OCV) Very high dynamic clock power; difficult to gate branches
Multisource CTS (MSCTS) Coarse global H-tree driving local tap drivers and short leaf trees Optimal balance of low skew and acceptable power consumption Complex CAD tool optimization setup
Module 5 • 6 Topics

Setup & Hold Silicon Math & Derivations

Rigorous mathematical derivations of setup and hold inequalities, numeric slack walkthroughs, recovery and removal analysis for resets, and glitch-free integrated clock gating (ICG) checks.

§21

Setup (Max) Timing Mathematical Derivation

Setup Math Derivation

Setup time ($T_{setup}$) is the minimum time data must remain stable at the register input before the capturing clock active edge.

Setup Timing Path Edge Budgeting (Launch Cycle 0 → Capture Cycle 1)
  Launch CLK:  ___|‾‾‾‾‾|____________________________________ (Edge @ 0 ns)
                  │
                  └──> T_launch_latency + T_cq_max + T_data_max ────> Data Arrives @ FF2/D
                                                                              │
  Capture CLK: _______________________________|‾‾‾‾‾|________ (Edge @ T_period)
                                              │
                                              └──> T_capture_latency - T_setup - T_unc (Required Time)
              
Rigorous Setup Derivation
T_arrival = T_launch_clk + T_cq_max + T_net_max + T_logic_max
T_required = T_period + T_capture_clk - T_setup - T_uncertainty
Setup Slack = T_required - T_arrival ≥ 0
§22

Setup Slack Worked Numeric Walkthrough

Setup Math Example

Consider a $1.0\text{ GHz}$ design ($T_{period} = 1000\text{ ps}$) with the following extracted parameters:

  • Launch clock network latency ($T_{launch\_clk}$): $120\text{ ps}$
  • Capture clock network latency ($T_{capture\_clk}$): $160\text{ ps}$ (Skew = $+40\text{ ps}$)
  • Flip-Flop Clock-to-Q max delay ($T_{cq}$): $95\text{ ps}$
  • Combinational datapath delay ($T_{logic} + T_{net}$): $710\text{ ps}$
  • Flip-Flop Setup time requirement ($T_{setup}$): $45\text{ ps}$
  • Clock Uncertainty budget ($T_{unc}$): $50\text{ ps}$
Step-by-Step Calculation
Data Arrival Time = 120 ps + 95 ps + 710 ps = 925 ps
Data Required Time = 1000 ps + 160 ps - 45 ps - 50 ps = 1065 ps
Setup Slack = 1065 ps - 925 ps = +140 ps (MET ✓)
§23

Hold (Min) Timing Mathematical Derivation

Hold Math Derivation

Hold time ($T_{hold}$) is the minimum time data must remain stable at the register input after the capturing clock active edge. The data launched by clock edge $N$ must not reach the capture register before the hold window of clock edge $N$ expires.

Rigorous Hold Derivation
T_arrival = T_launch_clk + T_cq_min + T_net_min + T_logic_min
T_required = T_capture_clk + T_hold + T_uncertainty
Hold Slack = T_arrival - T_required ≥ 0

Crucial Observation: The clock period $T_{period}$ does NOT appear anywhere in the hold equation! Launch and capture occur on the same clock edge.

§24

Hold Slack: Why Hold Kills Silicon

Hold Math Signoff Alert

In production silicon testing, if a chip has a setup violation, engineers can reduce the operating clock frequency from $1\text{ GHz}$ down to $800\text{ MHz}$ ($T_{period}$ increases from $1.0\text{ ns}$ to $1.25\text{ ns}$), making setup slack positive and enabling the chip to operate at a derated speed grade.

If a chip has a hold violation, the fast data destroys the current state before the flip-flop can capture it. Because $T_{period}$ is absent from the hold equation:

The Zero-Frequency Hold Defect
lim_{T_period → ∞} (Hold Slack) = T_arrival - T_required < 0 (STILL FAILS!)

Even at $1\text{ Hz}$ or single-stepped on a testbench, the hold violation will corrupt data on every active clock edge. A hold violation renders the physical silicon completely dead.

§25

Recovery & Removal Timing for Asynchronous Resets

Async Reset Recovery/Removal

Asynchronous reset pins (e.g. RST_N) can be asserted at any time. However, when the reset is de-asserted (released), the transition must not occur too close to the active clock edge, or internal flip-flop nodes may enter metastability.

  • Recovery Check (Setup Equivalent): The minimum time an asynchronous control signal must remain stable at its inactive state before the active clock edge.
  • Removal Check (Hold Equivalent): The minimum time an asynchronous control signal must remain asserted after the active clock edge before it is allowed to de-assert.
§26

Clock Gating Checks & Glitch Prevention

Clock Gating Power

Clock gating disables the clock to idle registers to save dynamic power ($P_{dyn} = \alpha C V^2 f$). If an ordinary combinational AND gate is used to gate a clock with an asynchronous enable signal, glitches on the enable can create spurious clock pulses (chopping or runt pulses) that cause state corruption.

Signoff STA enforces Clock Gating Checks:

  • For an AND-gate clock gate (active-high clock), the enable must switch only while the clock is LOW.
  • For an OR-gate clock gate (active-low clock), the enable must switch only while the clock is HIGH.
Best Practice: Always instantiate dedicated Integrated Clock Gating (ICG) cells from the standard cell library. ICG cells integrate an internal negative-edge latch that holds the enable stable throughout the entire clock active window.
Module 6 • 5 Topics

Process Variations: OCV, CRPR, AOCV & POCV

Modeling physical manufacturing deviations across the die: On-Chip Variation (OCV) derates, Common Path Pessimism Removal (CRPR), depth-based AOCV, and statistical Parametric OCV (POCV/LVF).

§27

On-Chip Variation (OCV) Flat Derates

OCV Variation

Within a single silicon die, variations in oxide thickness ($t_{ox}$), dopant atom concentrations (RDF), metal track etching, and local voltage/temperature gradients mean two identical buffers will not have identical delays.

Traditional OCV models this by applying flat percentage derate factors:

Traditional OCV Derating Rules
Setup (Max): Launch Path × 1.15 (Late) | Capture Path × 0.90 (Early)
Hold (Min): Launch Path × 0.90 (Early) | Capture Path × 1.15 (Late)

This deliberately widens the worst-case spread: the launching path is assumed to be as slow as possible while the capturing clock is assumed to be as fast as possible.

§28

Clock Reconvergence Pessimism Removal (CRPR)

CRPR CPR

When applying early/late OCV derates, clock trees frequently share common buffers from the clock root up to a divergence point. Under basic OCV, the shared segment is derated as "late" for the launch path and "early" for the capture path!

Physically, a single gate on a single piece of silicon cannot be simultaneously fast and slow at the exact same moment. This artificial error is called Clock Reconvergence Pessimism (CRP).

Shared Common Clock Segment & Divergence Point
  Clock Source ──[BUF1]──[BUF2]── (Divergence Point) ──┬──[BUF3_L]──> FF1 / CLK (Launch)
                 |=============|                      │
                 Shared Common Path                   └──[BUF3_C]──> FF2 / CLK (Capture)
              
CRPR Correction Formula
CRP = T_common_late - T_common_early
Setup Slack_corrected = Setup Slack_raw + CRP
Hold Slack_corrected = Hold Slack_raw + CRP

Enabling CRPR (set_timing_derate -crpr or report_timing -cpr) restores tens to hundreds of picoseconds of legitimate margin back into both setup and hold paths.

§29

Advanced OCV (AOCV)

AOCV Deep Submicron

Flat OCV derates (e.g. 15%) are overly pessimistic for long timing paths. Random variations average out across a chain of multiple logic gates (by the Central Limit Theorem: $\sigma_{total} \propto \frac{1}{\sqrt{N}}$).

Advanced OCV (AOCV) replaces flat derates with two-dimensional tables indexed by:

  1. Logic Depth ($N$): Number of gates in the timing path. Deeper paths get smaller derates.
  2. Physical Bounding Box Distance ($D$): Spatial distance across the chip floorplan. Gates physically close to each other share identical thermal/voltage domains and get lower derates.
§30

Parametric OCV (POCV) & Statistical STA

POCV / LVF FinFET Signoff

At sub-10nm FinFET and GAA nodes, AOCV is insufficient. Standard cell libraries provide Liberty Variation Format (LVF) data modeling gate delay as a Gaussian distribution with a nominal mean ($\mu$) and standard deviation ($\sigma$).

POCV Statistical Delay Formulation
Delay_gate = μ + C · σ
Total_Path_Delay = ∑ μ_i + C · √(∑ σ_i^2)

Where $C$ is the signoff yield sigma target (typically $C = 3.0$ for a $3\sigma$ yield or $99.73\%$ confidence). Because independent gate sigmas add in quadrature ($\sqrt{\sum \sigma^2}$), POCV eliminates massive false timing pessimism.

§31

Dynamic IR Drop Impact on Timing

IR Drop Power Integrity

When millions of clock network leaf buffers switch simultaneously on a clock edge, peak current transients ($I(t)$) flowing through the power delivery network (PDN) create localized voltage droop ($\Delta V = I \cdot R + L \frac{dI}{dt}$).

A $10\%$ drop in supply voltage ($V_{DD}$) typically increases gate propagation delay by $15\%$ to $25\%$. Modern signoff couples vectorless power analysis (e.g. RedHawk, Voltus) into STA via dynamic IR-drop aware delay derating.

Module 7 • 5 Topics

Clock Domain Analysis & Classification

Classifying clock domains in physical silicon: synchronous vs asynchronous relationships, logically and physically exclusive clocks, harmonic frequencies, and the catastrophic danger of false paths without synchronizers.

§32

Synchronous Clock Domains

Clock Domains Synchronous

Two clocks are strictly synchronous if they share a common root source (such as the same master Phase-Locked Loop) and have a deterministic, constant phase and frequency relationship.

Because edge alignments between synchronous clocks are completely bounded, STA engines can compute the exact launch-to-capture timing requirements across the domains. Standard setup ($T_{period} - T_{setup}$) and hold checks apply without requiring special CDC synchronizers.

Synchronous Clock Derivation from Single Master PLL
  [Master PLL 800 MHz] ──┬──> CLK_A (800 MHz, Period = 1.25 ns)
                         └───[/2 Divider]──> CLK_B (400 MHz, Period = 2.50 ns)
              
§33

Asynchronous Clock Domains

CDC Asynchronous

Clocks driven by separate crystal oscillators (e.g. PCIe 100 MHz, DDR 1600 MHz, USB 480 MHz) are asynchronous. Because their oscillators drift independently due to manufacturing tolerances and thermal differences, their relative phase relationship varies continuously from $0^\circ$ to $360^\circ$ over time.

At some arbitrary point in real-world operation, active edges of the two clocks will occur simultaneously, causing the receiving flip-flop to sample during a data transition.

STA Signoff Rule: STA cannot close timing on asynchronous crossings using standard setup/hold checks. You must declare them asynchronous in SDC (set_clock_groups -asynchronous) and insert verified hardware CDC synchronizers.
§34

Logically & Physically Exclusive Clocks

Clock Muxing Modes

When a multiplexer selects between different clock sources driving the same logic tree:

  • Logically Exclusive: Clocks that share the same physical routing wires downstream of a clock multiplexer (e.g. CLK_FAST vs CLK_SLOW, or SCAN_CLK vs FUNC_CLK). They can exist simultaneously in the design, but only one active clock pulse can pass through the mux pin at any given instant.
  • Physically Exclusive: Clocks that cannot physically exist on the chip at the same time (e.g., bond-pad configuration pins tied off to select between differential oscillator modes).
SDC Clock Exclusivity Constraint
# Prevent false cross-clock timing paths between multiplexed clocks
set_clock_groups -logically_exclusive \
  -group {clk_func_fast clk_func_slow} \
  -group {clk_test_scan}
§35

Multi-Frequency Synchronous Clocks ($f, 2f$)

Harmonics LCM Base

When data transfers between synchronous clocks of harmonic frequencies (e.g., $10\text{ ns}$ period and $5\text{ ns}$ period), STA expands the timing timeline over the Least Common Multiple (LCM) of the two periods.

Fast-to-Slow and Slow-to-Fast Setup/Hold Check Edges
  Fast CLK (5 ns):  |‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_
  Slow CLK (10 ns): |‾|_____|‾|_____|‾|_____|‾|_____
                    0       5       10      15      20 ns
                    ^               ^
                    LCM Common Base Period = 10 ns
              

STA computes every possible (Launch, Capture) edge pair within the common base period:

  • Fast → Slow: Launch at $t=5\text{ ns}$, capture at $t=10\text{ ns}$. Available setup window is $5\text{ ns}$. Hold is checked between launch at $t=0\text{ ns}$ and capture at $t=0\text{ ns}$.
  • Slow → Fast: Launch at $t=0\text{ ns}$, capture at $t=5\text{ ns}$. Available setup window is $5\text{ ns}$.
§36

False Paths Between Unrelated Domains

CDC Risks Silent Failure

A catastrophic error in timing closure is applying set_false_path between two clock domains before confirming that a verified CDC circuit is instantiated in RTL.

When an engineer sees thousands of violating paths between asynchronous domains, applying set_false_path -from [get_clocks A] -to [get_clocks B] eliminates all reports, showing clean zero-slack closure.

The Silent Killer: Setting a false path disables STA checking. If the physical RTL logic transfers a multi-bit control vector directly without synchronizers, the circuit will suffer intermittent silicon crashes in the field that no dynamic test vector caught.
Module 8 • 6 Topics

Clock Domain Crossing (CDC) & Metastability

The physics of flip-flop metastability, mathematical Mean Time Between Failures (MTBF) derivations, 2-FF/3-FF synchronizers, pulse handshakes, multi-bit bus reconvergence skew, and async FIFO pointers.

§37

Physics of Metastability

Metastability Physics

A CMOS flip-flop consists of two cross-coupled inverters forming a bistable latch. When data violates the setup or hold window, the internal storage node is caught at an intermediate voltage near the inverter switching threshold ($V_{DD}/2$).

Metastability: The Analog "Hill" Analogy
                   Metastable Peak (Unstable Equilibrium @ VDD/2)
                                 ● (Ball balanced on knife-edge)
                                / \
                               /   \
                              /     \
  Stable State '0' (0V) <────         ────> Stable State '1' (VDD)
              

In this intermediate state, small thermal noise voltages determine whether the node resolves to '0' or '1'. The resolution time ($t_{resolve}$) is non-deterministic. If the node fails to resolve before the next clock cycle, metastable voltages propagate into downstream combinational logic, causing different gates to interpret the signal differently (some see '0', others see '1')—destroying state machine integrity.

§38

Mean Time Between Failures (MTBF) Formula

MTBF Reliability Math

The statistical probability of a synchronizer experiencing a metastable failure is quantified by the classic MTBF formula:

MTBF Mathematical Formulation
MTBF = e^(t_resolve / τ) / (T_0 · f_clk · f_data)

Where:
• $t_{resolve}$: Settling time available for the flip-flop to exit metastability ($t_{resolve} \approx T_{clk} - T_{cq} - T_{setup}$)
• $\tau$: Technology-dependent resolution time constant of the cross-coupled inverter (smaller in advanced FinFET nodes)
• $T_0$: Technology parameter representing the temporal setup/hold aperture window
• $f_{clk}$: Clock frequency of the receiving clock domain
• $f_{data}$: Transition frequency of the incoming asynchronous data signal

Signoff Target: Critical ASIC chips (automotive ISO 26262, aerospace, data centers) require an MTBF > 1,000,000 years per synchronizer instance.
§39

2-Flip-Flop & 3-Flip-Flop Synchronizers

Synchronizers Hardware

The standard industry defense for single-bit asynchronous signals is a 2-Flip-Flop Synchronizer (2-FF):

2-Stage Flip-Flop Synchronizer Architecture
  Async Input ────> [ FF_Meta (Stage 1) ] ────> [ FF_Sync (Stage 2) ] ────> Safe Output
                            │                               │
  Receiving CLK ────────────┴───────────────────────────────┴───────────────
              
  • Stage 1 (FF_Meta): Absorbs the asynchronous timing violation. It may become metastable, but has a full clock period ($T_{clk}$) to resolve.
  • Stage 2 (FF_Sync): Samples the settled, clean logic level from Stage 1 and outputs a glitch-free signal to downstream core logic.
  • 3-FF Synchronizer: Used in ultra-high frequency designs ($f_{clk} > 1.5\text{ GHz}$) where a single clock period is too short for $\tau$ decay, adding an extra stage to guarantee MTBF > $10^6$ years.
Physical Design Rule: Place FF_Meta and FF_Sync immediately adjacent in the floorplan (or use specialized dual-rank standard cells) to minimize net delay and eliminate routing capacitance between stages.
§40

Pulse Synchronizers & Toggle Handshakes

CDC Circuits Fast-to-Slow

If a single-cycle pulse is sent from a fast clock domain (e.g. $1\text{ GHz}$) to a slow clock domain (e.g. $100\text{ MHz}$), the slow domain may completely miss the pulse because its duration ($1\text{ ns}$) is shorter than the slow clock period ($10\text{ ns}$).

The Solution: Toggle-Based Handshake:

  1. The transmitter converts the pulse into a state transition (toggle: $0 \to 1$ or $1 \to 0$).
  2. The toggle signal crosses the 2-FF synchronizer into the destination slow domain.
  3. The destination domain detects the transition using an XOR edge detector, reconstructing a single-cycle destination pulse.
  4. An acknowledge toggle is returned to the transmitter before a new pulse can be accepted.
§41

Multi-Bit Bus CDC: Re-convergence Glitches

Multi-Bit Bus Fatal Bug

Never pass multi-bit data buses through parallel 2-FF synchronizers!

Consider a 4-bit counter value changing from 0111 (7) to 1000 (8). Because interconnect routing delays and buffer variations are not identical across bits, Bit 3 might arrive in cycle $N$ while Bits 2, 1, and 0 arrive in cycle $N+1$.

The receiving domain samples a transient intermediate value: 1111 (15) or 0000 (0)! This catastrophic error is called CDC Data Reconvergence.

Allowed Multi-Bit CDC Architectures
1. Gray-Code Conversion (Strictly 1 bit changes per cycle — Pointer FIFOs)
2. Mux-Data Recirculation with Synchronized Enable (MCP Formulation)
3. Asynchronous Dual-Clock FIFO Buffer
§42

Asynchronous FIFO Architecture

Async FIFO Silicon Golden

An Asynchronous FIFO (Dual-Clock FIFO) is the industry gold standard for streaming multi-bit data between unrelated clock domains.

Asynchronous FIFO Block Diagram (Clifford Cummings Architecture)
  [Write Domain (CLK_W)]                                   [Read Domain (CLK_R)]
    Write Data ────────────> [ Dual-Port RAM ] ─────────────> Read Data
    Binary WPTR ──[Bin2Gray]                                 Binary RPTR ──[Bin2Gray]
         │             │                                          │             │
         │          Gray WPTR ───[2-FF Sync]───> Gray WPTR_sync   │          Gray RPTR ───[2-FF Sync]───> Gray RPTR_sync
         │                                            │           │                                            │
         └──[Full Logic] <────────────────────────────┘           └──[Empty Logic] <───────────────────────────┘
              
  • Gray-Coded Pointers: Write pointer (wptr) and Read pointer (rptr) are converted to Gray code so that only one bit changes per address increment, eliminating reconvergence skew.
  • Safe Pessimistic Flags: Due to synchronizer latency, the write domain sees an older read pointer (causing early Full indication), and the read domain sees an older write pointer (causing early Empty indication). The FIFO may be slightly under-utilized, but underflow and overflow are physically impossible.
Module 9 • 5 Topics

Multi-Corner Multi-Mode (MCMM) Signoff

Signoff scenario matrix construction: PVT corners, the nanoscale Temperature Inversion phenomenon, interconnect extraction extremes (Cworst/RCworst), operational modes, and cross-corner ECO trade-offs.

§43

PVT Corners & Temperature Inversion Effect

PVT Physics

Silicon must function across three environmental axes: Process (Slow-Slow, Typical, Fast-Fast), Voltage ($V_{nom} \pm 10\%$), and Temperature ($-40^\circ\text{C}$ to $+125^\circ\text{C}$).

The Temperature Inversion Phenomenon at Nanoscale Nodes
  Legacy Nodes (> 65 nm):   Higher Temp (+125°C) → Lower Carrier Mobility (μ) → SLOWER (Worst Setup)
  FinFET Nodes (≤ 16 nm):   Lower Temp (-40°C)   → Higher Threshold Voltage (V_th) → SLOWER at Low VDD!
              

Why Temperature Inversion Occurs: Gate delay depends on $(V_{DD} - V_{th})^\alpha / \mu(T)$. At modern ultra-low voltages ($V_{DD} \le 0.75\text{V}$), the increase in threshold voltage ($V_{th}$) at $-40^\circ\text{C}$ dominates over carrier mobility improvement. Consequently, cold temperatures can become the slowest corner for setup timing!

§44

Interconnect Extraction Corners (RC Corners)

SPEF Interconnect

Metal chemical-mechanical polishing (CMP) and lithography variations cause metal track width, thickness, and dielectric spacing to vary independently of transistors:

RC Corner Physical Metal Geometry Timing Impact
Cworst / Cmax Wider metal tracks, thinner inter-layer dielectric Max total capacitance; worst-case for short, capacitive nets
RCworst / RCmax Narrower metal tracks, thinner dielectric High resistance and capacitance; worst-case for long RC-dominated interconnects
Cbest / Cmin Narrower tracks, thicker dielectric Minimum wire capacitance; critical for fast hold time signoff
RCbest / RCmin Wider metal, thicker dielectric Minimum resistance; fastest signal propagation (dangerous for hold)
§45

Operating Modes (Functional, Scan, BIST)

Modes SDC

Modern chips operate under multiple distinct functional regimes controlled by pin states or internal registers:

  • Functional Mode (func): Normal mission mode with high-speed mission clocks and functional SDC constraints.
  • Scan Shift Mode (scan_shift): Manufacturing test mode where all flip-flops are chained into serial shift registers running at a low frequency (e.g. $50\text{ MHz}$). Hold violations between scan chain flip-flops are rampant!
  • Scan Capture Mode (scan_capture): At-speed launch-off-capture testing to detect transitional delay defects in silicon.
  • Sleep / Deep Power Down Mode: Only retention registers and power management units remain clocked.
§46

Scenario Matrix Construction

Scenarios Signoff

In Multi-Corner Multi-Mode (MCMM) engines (PrimeTime, Tempus), a Scenario is defined as:

Scenario Definition
Scenario = Operating Mode × PVT Corner × Parasitic RC Corner
Tcl MCMM Scenario Setup (PrimeTime / Tempus)
# 1. Define Modes
create_mode func_mode
create_mode scan_mode

# 2. Define Corners
create_corner slow_corner
set_operating_conditions -corner slow_corner SS_0V75_125C
read_parasitics -corner slow_corner -spef routed_rcworst.spef

create_corner fast_corner
set_operating_conditions -corner fast_corner FF_0V95_M40C
read_parasitics -corner fast_corner -spef routed_rcbest.spef

# 3. Create Scenarios
create_scenario -name func_slow -mode func_mode -corner slow_corner
create_scenario -name func_fast -mode func_mode -corner fast_corner
set_analysis_view -setup {func_slow} -hold {func_fast}
§47

Cross-Corner Timing Optimization Trade-offs

Trade-offs ECO Dilemma

Fixing a timing violation in one scenario often degrades another scenario:

  • The Hold Fix Hazard: Inserting delay buffers to fix a hold violation in the Fast Corner (func_fast) adds capacitance and delay that directly degrades setup slack in the Slow Corner (func_slow).
  • The Leakage Trade-off: Swapping a cell to Low-$V_{th}$ (LVT) to fix setup increases exponential subthreshold leakage power by $5\times$ to $10\times$ in standby mode.
Signoff Law: An ECO fix is acceptable only if it passes concurrently across 100% of defined MCMM signoff scenarios without causing secondary DRC or hold violations.
Module 10 • 5 Topics

Timing Analysis Reports & Path Anatomy

Deconstructing industrial PrimeTime and Tempus timing reports line-by-line: arrival vs required path arithmetic, hold reports, global WNS/TNS/FEP metrics, clock network insertion latency, and signoff debug commands.

§48

Setup Report Line-by-Line Breakdown

Setup Report Path Anatomy

A standard signoff setup timing report (report_timing -delay_type max) is organized into three major sections: Path Metadata Header, Data Arrival Path, and Data Required Path:

PrimeTime / Tempus Setup Timing Report Anatomy
  Startpoint: u_core/u_alu/reg_a_reg[3] (rising edge-triggered flip-flop clocked by clk_core)
  Endpoint:   u_core/u_alu/reg_res_reg[3] (rising edge-triggered flip-flop clocked by clk_core)
  Path Group: clk_core
  Path Type:  max
  Scenario:   func_slow_ss_0p75v_125c

  Point                                    Incr       Path
  ---------------------------------------------------------------
  clock clk_core (rise edge)               0.000      0.000
  clock network delay (propagated)         0.185      0.185  <-- Launch Clock Insertion Latency
  u_core/u_alu/reg_a_reg[3]/CK (DFF_X2)    0.000      0.185 r
  u_core/u_alu/reg_a_reg[3]/Q (DFF_X2)     0.092 &    0.277 f<-- Clock-to-Q Delay
  u_core/u_alu/U45/Y (NAND2_X1)            0.048 &    0.325 r<-- Combinational Gate Delay
  u_core/u_alu/U89/Y (AOI22_X2)            0.086 &    0.411 f
  u_core/u_alu/reg_res_reg[3]/D (DFF_X1)   0.034 &    0.445 f<-- Net + Pin Arrival
  data arrival time                                   0.445  <-- Total Data Arrival Time

  clock clk_core (rise edge)               1.000      1.000  <-- Capture Clock Active Edge (T_period)
  clock network delay (propagated)         0.210      1.210  <-- Capture Clock Insertion Latency
  clock reconvergence pessimism            0.025      1.235  <-- CRPR Adjustment (+CRP)
  clock uncertainty                       -0.040      1.195  <-- Jitter & Uncertainty Derate
  u_core/u_alu/reg_res_reg[3]/CK (DFF_X1)  0.000      1.195 r
  library setup time                      -0.038      1.157  <-- Library Setup Requirement (T_setup)
  data required time                                  1.157  <-- Total Data Required Time
  ---------------------------------------------------------------
  data required time                                  1.157
  data arrival time                                  -0.445
  ---------------------------------------------------------------
  slack (MET)                                         0.712  <-- Positive Slack (+712 ps)
Understanding the Symbols: The r/f flag designates rising or falling transitions. The & symbol indicates that distributed RC interconnect delay is included from extracted SPEF.
§49

Hold Report Line-by-Line Breakdown

Hold Report Min Delay

In a hold report (report_timing -delay_type min), the active clock edge occurs at $t = 0.000\text{ ns}$ for both launch and capture:

Hold Timing Report Anatomy (Min Analysis)
  Point                                    Incr       Path
  ---------------------------------------------------------------
  clock clk_core (rise edge)               0.000      0.000
  clock network delay (propagated)         0.110      0.110  <-- Fast Launch Clock Latency
  u_pipe/stage1_reg/CK (DFF_X2)            0.000      0.110 r
  u_pipe/stage1_reg/Q (DFF_X2)             0.045 &    0.155 r<-- Fast Min Clock-to-Q
  u_pipe/stage2_reg/D (DFF_X1)             0.012 &    0.167 r<-- Very Short Wire
  data arrival time                                   0.167  <-- Data Arrives at 167 ps

  clock clk_core (rise edge)               0.000      0.000  <-- Same Clock Edge (0.000 ns!)
  clock network delay (propagated)         0.135      0.135  <-- Capture Clock Latency
  clock reconvergence pessimism            0.015      0.150  <-- CRPR Adjustment
  clock uncertainty                        0.025      0.175  <-- Uncertainty Added
  u_pipe/stage2_reg/CK (DFF_X1)            0.000      0.175 r
  library hold time                        0.022      0.197  <-- Library Hold Requirement
  data required time                                  0.197  <-- Data Required at 197 ps
  ---------------------------------------------------------------
  data arrival time                                   0.167
  data required time                                 -0.197
  ---------------------------------------------------------------
  slack (VIOLATED)                                   -0.030  <-- Hold Violation (-30 ps!)
Diagnosis: The data reached stage2_reg/D in only 167 ps, but the hold window required stability until 197 ps. A hold buffer (delay cell) adding at least $30\text{ ps} + 20\text{ ps margin} = 50\text{ ps}$ must be inserted.
§50

Global Timing Slack Metrics (WNS, TNS, FEP)

Metrics Signoff KPI

Timing signoff teams track three primary quantitative metrics across every design iteration:

Metric Formula Physical Meaning Signoff Target
WNS (Worst Negative Slack) $\min_i (\text{Slack}_i)$ for $\text{Slack}_i < 0$ The single critical path with maximum violation. Dictates the operating clock frequency. $\ge 0.000\text{ ns}$
TNS (Total Negative Slack) $\sum_{i \in \text{failing}} \text{Slack}_i$ Cumulative negative slack over all endpoints. Indicates how broadly broken the design timing is. $0.000\text{ ns}$
FEP (Failing Endpoints) $\text{Count}(\text{Endpoints with Slack} < 0)$ Total number of unique registers/ports failing timing. Measures ECO engineering effort. $0$ endpoints
§51

Clock Network Latency & Sinks

Clock Tree Latency

Timing reports separate clock latency into two components:

  • Source Latency: Delay from the primary oscillator pin or crystal input pad to the on-chip clock definition pin (e.g., PLL input or output). Specified in SDC via set_clock_latency -source.
  • Network Latency (Insertion Delay): Delay from the clock definition point through the synthesized on-chip clock tree buffers down to the register clock pin. Measured automatically when clocks are set to set_propagated_clock.
§52

Advanced Report Commands & Debugging

Tcl Commands Debugging

Essential command options for senior STA debugging:

PrimeTime / Tempus Detailed Signoff Reporting
# Comprehensive setup timing report with full clock trees and CRPR
report_timing \
  -delay_type max \
  -path_type full_clock_expanded \
  -max_paths 10 \
  -nworst 1 \
  -cpr \
  -derate \
  -input_pins \
  -nets \
  -significant_digits 4 \
  -nosplit > reports/setup_critical_paths.rpt

# Summary of Worst Slack across all clock path groups
report_qor
Module 11 • 6 Topics

Timing Closure & ECO Fix Strategy

The systematic physical design timing closure loop: setup violation ECO playbooks, hold fix buffer strategies, DRC clearing, crosstalk delta-delay remedies, and post-mask spare cell engineering change orders.

§53

The Timing Closure Flowchart

Flowchart Methodology

Timing closure is an iterative convergence loop between physical layout tools (Innovus, ICC2) and signoff STA engines (Tempus, PrimeTime):

The Physical Timing Closure Loop
  [Synthesized Netlist + SDC]
              │
              ▼
  [Placement & Optimization] ─────> (Pre-CTS STA: estimated clock latency)
              │
              ▼
  [Clock Tree Synthesis (CTS)] ───> (Post-CTS STA: propagated clocks, skew checked)
              │
              ▼
  [Detail Routing] ───────────────> [Parasitic Extraction (StarRC / Quantus SPEF)]
                                                   │
                                                   ▼
                                        [Signoff Post-Route STA]
                                                   │
                            ┌──────────────────────┴──────────────────────┐
                            ▼                                             ▼
                     [Violations Exist?]                           [WNS ≥ 0, THS ≥ 0, DRC=0]
                            │ YES                                         │
                            ▼                                             ▼
                 [Generate ECO Changes]                             [TAPE-OUT SIGNED OFF ✓]
                 (Size, Swap VT, Buffers)
                            │
                            └───────> [Incremental ECO Route] ──────┘
              
§54

Setup Violation ECO Playbook

Setup Fix Optimization

When resolving setup violations (data path too slow), apply the following hierarchy of interventions from lowest risk to highest:

Priority Optimization Technique Mechanism Trade-off / Risk
1 (Lowest Risk) VT Swapping (HVT → SVT → LVT) Swaps threshold voltage of cells on critical datapath; reduces cell delay by 25–40% without modifying layout placement. Exponentially increases static subthreshold leakage power.
2 Cell Upsizing (e.g. AND2_X1 → AND2_X4) Increases output driver transistor width, reducing gate delay and improving output transition. Increases input pin capacitance (can hurt upstream gate delay); increases area.
3 Buffer Insertion / Relocation Breaks long resistive RC metal tracks into shorter segments; restores degraded slew. Consumes routing tracks and placement whitespace.
4 Pin Swapping Swaps functionally symmetric inputs (e.g. Pin A vs Pin B on NAND2) so critical signal connects to the fastest internal transistor arc. Zero area/power penalty; only applicable to symmetric Boolean functions.
5 (High Impact) Logic Restructuring / Cloning Clones heavy-fanout drivers or restructures Boolean logic trees to reduce logic depth. Requires local re-routing; modifies netlist connectivity.
§55

Hold Violation ECO Playbook

Hold Fix Buffer Insert

Hold violations occur when data arrives too quickly. To fix hold without causing setup violations:

  1. Insert Delay Cells Near the Capture Register: Always insert hold delay buffers as close as possible to the endpoint (capture flop D pin). Placing them near the launch flop increases the risk of degrading branching paths that may already be setup-critical.
  2. Downsize Fast Drivers: Downsize aggressively oversized drivers on short datapaths.
  3. Swap to High-VT (HVT): Swapping cells from LVT to HVT increases delay while simultaneously saving static leakage power—a double win!
  4. Avoid Adding Buffers into Shared Clock Branches: Modifying clock tree nets alters downstream skew everywhere; only touch the datapath.
The Golden Setup Rule: Never fix a hold violation on a path that has less than $+100\text{ ps}$ setup margin in the Slow Corner. Inserting a hold buffer could create an unclosable setup violation!
§56

Max Slew & Max Cap DRC Fixing

DRC Fixing Cap/Slew

Electrical Design Rule Checks (DRC) must be 100% clean prior to final signoff:

  • Fixing Max Capacitance: Occurs when a single driver drives too many fanout pins or an extremely long wire. Fix by buffer tree insertion (splitting the fanout into balanced clusters) or driver upsizing.
  • Fixing Max Slew (Transition): Caused by weak drivers or long RC interconnects. Insert repeater buffers every $200\text{--}400\,\mu\text{m}$ along long metal tracks to restore sharp switching edges.
§57

Crosstalk & Noise-Induced Delta Delay

Crosstalk SI Noise

In sub-20nm nodes, adjacent parallel metal wires have high cross-coupling capacitance ($C_c$). When a neighboring wire (Aggressor) switches simultaneously with the signal wire (Victim):

Crosstalk Miller Coupling Effects
  Aggressor Net ───────────[ C_coupling ]───────────
                                 │
  Victim Net    ─────────────────┴──────────────────
  1. Opposite Direction Switching (Aggressor Rise, Victim Fall):
     Effective C_c = 2 * C_c  (Miller Effect) → HUGE DELAY INCREASE (Δt > 0) → SETUP VIOLATION!
  2. Same Direction Switching (Both Rise Together):
     Effective C_c = 0 → FASTER DELAY (Δt < 0) → HOLD VIOLATION!
              

Remedies for Signal Integrity (SI) Violations:

  • Shielding: Route sensitive clock or critical nets flanked on both sides by grounded $V_{SS}$ shield wires.
  • Spacing: Double-space routing tracks to reduce $C_c$ by > 60%.
  • Upsizing Victim Driver: A stronger driver lowers output impedance, holding the net firmly against capacitive noise injection.
§58

Spare-Cell & Tcl ECO Automation

Spare Cells Post-Mask

After silicon masks are fabricated, manufacturing defects or critical bugs can cost \$5M+ for a full re-spin. To allow Post-Mask Metal-Only ECOs, designers scatter unconnected Spare Cells (NAND, NOR, DFF, Inverters) uniformly across the base silicon layers.

A metal-only ECO modifies only the top metal routing masks to reconnect existing spare cells, fixing functional or timing defects without touching base diffusion layers—saving 80% of mask costs.

Production Tcl ECO Commands (PrimeTime / Tempus)
# 1. Automatic Hold Fixing with buffer insertion
fix_eco_timing -type hold -methods {insert_buffer} -buffer_list {BUF_X2 BUF_X4}

# 2. Automatic Setup Fixing via cell sizing and VT swapping
fix_eco_timing -type setup -methods {size_cell}

# 3. Fixing Max Transition and Max Capacitance DRCs
fix_eco_drc -type {max_transition max_capacitance}

# 4. Export ECO changes to Physical Design tool (Innovus/ICC2)
write_changes -format eco_tcl -output eco_fixes.tcl
Module 12 • 7 Topics

Tool Comparison, Signoff Checklists & Real-World Cheatsheets

EDA tool command translation matrix, pre-CTS vs post-route differences, complete signoff checklists, production batch scripts, formula quick reference cards, and senior interview drills.

§59

EDA Tool Command Translation Matrix

EDA Tools Comparison

Cross-platform command reference for the four major STA engines used in industry:

Function Synopsys PrimeTime Cadence Tempus AMD Vivado STA OpenSTA (OpenROAD)
Report Setup Timing report_timing -delay max report_timing -late report_timing -delay_type max report_checks -path_delay max
Report Hold Timing report_timing -delay min report_timing -early report_timing -delay_type min report_checks -path_delay min
Read Parasitics read_parasitics top.spef read_spef top.spef read_spef top.spef read_spef top.spef
Check Constraints check_timing check_timing -verbose check_timing check_setup
Report Clock Skew report_clock_timing -type skew report_clock_timing -skew report_clock_interaction report_clock_skew
Report DRC Violations report_constraint -all_violators report_constraint -drv report_drc report_check_types -max_slew -max_cap
§60

Pre-CTS vs Post-CTS vs Post-Route STA

Implementation Physical Stages

Timing models evolve as physical implementation progresses from logic synthesis to silicon tape-out:

Feature Pre-CTS (Placement) Post-CTS (Clock Tree Built) Post-Route (Tape-out Signoff)
Clock Network Ideal (0 latency, 0 skew) Propagated real buffers Propagated real buffers + routed RC wires
Clock Latency Virtual estimation (set_clock_latency) Propagated (set_propagated_clock) Propagated (set_propagated_clock)
Clock Uncertainty Large (Jitter + Expected Skew, ~200 ps) Small (Jitter only, ~50 ps) Small (Jitter + Signoff margin, ~30 ps)
Interconnect Delays Wire Load Model (WLM) or Steiner RC Global routed estimated RC Extracted 3D signoff SPEF with coupling $C_c$
Hold Violations Ignored (premature to fix) Initial coarse hold fix Mandatory zero-violation hold signoff
§61

Signoff DRC & Quality Checklist

Checklist Signoff

Prior to tape-out mask freezing, signoff engineers must review and satisfy the following checklist across all defined scenarios:

  • ✓ Setup Timing: $\text{WNS} \ge 0.000\text{ ps}$ across all Slow/Cworst scenarios.
  • ✓ Hold Timing: $\text{WHS} \ge 0.000\text{ ps}$ across all Fast/Cbest scenarios.
  • ✓ Max Transition (Slew): Zero violations against library threshold limits.
  • ✓ Max Capacitance: Zero pin overload violations.
  • ✓ Max Fanout: No unbuffered nets exceeding library fanout rules.
  • ✓ Clock Gating: No active-low/active-high gating glitch hazards.
  • ✓ Min Clock Pulse Width: High/low clock phase durations satisfy sequential library limits.
  • ✓ Asynchronous Recovery/Removal: 100% clean on all reset distribution trees.
  • ✓ No Unconstrained Endpoints: check_timing reports 0 unconstrained register pins or ports.
§62

Golden Signoff Tcl Script Template

Script Production
Production Batch Signoff Tcl Script (PrimeTime)
#################################################################
# Golden PrimeTime Signoff Batch Execution Script
#################################################################
set sh_continue_on_error false
set_host_options -max_cores 16

# 1. Setup Search Paths & Libraries
set_app_var search_path ". ./lib ./netlist ./spef"
set_app_var link_path "* sc_ss_0p75v_125c.db sc_ff_0p95v_m40c.db ram_ss.db"

# 2. Read Gate-Level Routed Netlist
read_verilog post_route_chip.v
current_design chip_top
link

# 3. Read SDC Timing Intent
read_sdc chip_top_signoff.sdc

# 4. Propagated Clocks & Parasitic SPEF
set_propagated_clock [all_clocks]
read_parasitics -format spef -keep_capacitive_coupling post_route_rcworst.spef

# 5. Advanced Variation & CRPR Settings
set_timing_derate -early 0.90
set_timing_derate -late  1.10
set_app_var timing_remove_clock_reconvergence_pessimism true

# 6. Verify Design Timing Integrity
check_timing -verbose > reports/check_timing.rpt

# 7. Generate Golden Signoff Reports
report_timing -delay_type max -max_paths 100 -significant_digits 3 > reports/signoff_setup.rpt
report_timing -delay_type min -max_paths 100 -significant_digits 3 > reports/signoff_hold.rpt
report_constraint -all_violators -significant_digits 3 > reports/signoff_all_violators.rpt
report_analysis_coverage > reports/signoff_coverage.rpt

puts "=== STA SIGNOFF EXECUTION COMPLETE ==="
§63

Common STA Traps & Pitfalls

Traps Debugging

Beware of these frequent high-impact pitfalls during STA reviews:

1. Missing Clock Uncertainty on Hold: Many novice engineers set uncertainty only for setup. Clock jitter still causes edge-to-edge variation that can lead to hold violations! Always set hold uncertainty (typically 20–50 ps).
2. False Path Masks Real Bugs: Using set_false_path -to [get_pins u_reg/*] masks every data input pin, including critical internal control loops you intended to check.
3. Unconstrained I/O Ports: An input port without set_input_delay is treated as having 0 ps external delay and zero transition time, giving false confidence to paths that fail miserably on the PCB.
§64

Formula Quick Reference Card

Formulas Reference
Consolidated Silicon Timing Equations
Setup Slack = (T_period + T_capture_clk - T_setup - T_unc) - (T_launch_clk + T_cq_max + T_logic_max)
Hold Slack = (T_launch_clk + T_cq_min + T_logic_min) - (T_capture_clk + T_hold + T_unc)
Clock Skew = T_capture_clk - T_launch_clk
CRPR Adjustment = T_common_late - T_common_early
Slew (20%-80%) = t_80% - t_20%
Elmore Delay = ∑_k R_k · C_downstream(k)
MTBF = e^(t_resolve / τ) / (T_0 · f_clk · f_data)
§65

Senior STA Interview & Knowledge Drills

Interview Q&A

Q1: Why do hold violations often appear on scan shift chains during test mode?
Answer: In scan chains, flip-flops are connected directly FF1/Q → FF2/SI with zero combinational logic between them. If clock skew between adjacent scan flops exceeds $T_{cq}$, a hold race occurs. Physical synthesis tools insert dedicated scan hold delay buffers during scan stitching.

Q2: Why does useful skew help setup but hurt hold?
Answer: Positive skew delays the capturing clock edge, effectively granting the launching data an extra $T_{skew}$ of time ($T_{period} + T_{skew}$) to complete logic evaluation. However, the capturing flop now holds its window open longer for the same clock edge, demanding that the newly launched data arrive later ($T_{arrival} \ge T_{capture} + T_{hold}$).

Q3: How does temperature inversion affect STA signoff in 5nm FinFET?
Answer: At low supply voltages ($< 0.75\text{V}$), $V_{th}$ shift at cold temperature ($-40^\circ\text{C}$) reduces gate overdrive $(V_{DD} - V_{th})$ so severely that gates switch slower than at $+125^\circ\text{C}$. Therefore, signoff engineers must check setup timing at both $-40^\circ\text{C}$ and $+125^\circ\text{C}$.