HomeSTA CourseDay 6
DAY 6 · ADVANCED STA

PVT Corners and MCMM

By EcrioniX · Updated June 2026

A chip that passes timing at nominal conditions may fail catastrophically in the field. Process variation means your silicon might be slow. Low battery means voltage droops. High ambient temperature makes transistors sluggish. PVT corner analysis — and its industrial-scale version, MCMM — ensures your chip meets timing at every extreme it will realistically encounter.

1. The three dimensions of variation

Every chip operates across a range of conditions. STA captures this by running separate analyses at the corners of the PVT space:

P — Process

Semiconductor manufacturing has inherent variability. Even on the same wafer, transistors can be faster or slower than the target due to lithographic variation, doping concentration differences, and gate oxide thickness. The foundry characterises this as process corners:

SS and FF are the critical corners for timing sign-off. SF/FS are sometimes run for SRAM access timing and other technology-specific checks.

V — Voltage

A lower supply voltage slows transistors down (gate overdrive decreases). Higher voltage speeds them up. Voltage also droops transiently due to IR drop as large blocks switch simultaneously. The voltage range is specified by the chip’s datasheet and the regulator accuracy:

T — Temperature

Temperature effects on timing are more nuanced than voltage. At high temperature, carrier mobility decreases, slowing transistors. However, at very low temperatures, subthreshold leakage dominates and behaviour can reverse. For CMOS at typical voltages:

Temperature Inversion Effect (sub-28nm)

At 28nm and below with low supply voltages, cold temperature can actually make gates slower due to threshold voltage increase dominating over mobility. This “temperature inversion” effect means some foundries now run SS/0.9V/-40C as an additional setup corner. Always follow your PDK’s recommended corner table.

2. Standard PVT corners and what they check

PVT Corner Space SS/0.9V/125°C Worst Setup FF/1.1V/-40°C Worst Hold TT/1.0V/25°C Typical Voltage Process (Slow → Fast) Temp (Cold → Hot)
Corner NameProcessVoltageTemperaturePrimary CheckWhy?
SS/0.9V/125CSlow-Slow0.9V (low)125°C (hot)Setup sign-offGates are slowest; data paths take longest
FF/1.1V/-40CFast-Fast1.1V (high)−40°C (cold)Hold sign-offGates are fastest; data can arrive before hold window closes
TT/1.0V/25CTypical1.0V (nominal)25°C (room)Functional verificationNominal conditions; used for power analysis and simulation correlation
SS/0.9V/-40CSlow-Slow0.9V−40°CCold-corner setup (sub-28nm)Temperature inversion: cold can be slower at low voltage
FF/1.1V/125CFast-Fast1.1V125°CLeakage/powerWorst-case leakage current for power sign-off

3. How PVT affects each timing component

Timing elementSS corner effectFF corner effect
Combinational gate delayIncreases (slower transistors)Decreases (faster transistors)
Clock-to-Q delay (flip-flop)IncreasesDecreases
Setup time requirementIncreases (flip-flop is slower)Decreases
Hold time requirementDecreases (less of a threat)Increases (flip-flop captures faster, needs data to hold longer)
Wire delay (RC)Higher resistance at hot tempLower resistance at cold temp
Clock skewHigher (buffers have more delay variation)Lower (less variation)

4. set_operating_conditions

In SDC (and in PrimeTime directly), you tell the tool which corner to use with set_operating_conditions. This selects the matching condition from the Liberty file’s operating_conditions block.

set_operating_conditions — examples
## Use the slow-slow corner for setup analysis
## Library must be loaded: sc9_ss_0p9v_125c.lib
set_operating_conditions -max "ss_0p9v_125c" \
  -max_library sc9_ss_0p9v_125c

## For hold, use fast-fast
set_operating_conditions -min "ff_1p1v_n40c" \
  -min_library sc9_ff_1p1v_n40c

## Typical-Typical for functional verification
set_operating_conditions "typical" \
  -library sc9_tt_1p0v_25c

## Dual-corner in one PT session (for simultaneous setup+hold)
## read_lib loads both files
read_lib sc9_ss_0p9v_125c.lib
read_lib sc9_ff_1p1v_n40c.lib
set_operating_conditions \
  -max "ss_0p9v_125c" -max_library sc9_ss_0p9v_125c \
  -min "ff_1p1v_n40c" -min_library sc9_ff_1p1v_n40c

5. What is MCMM?

In a real design flow, a chip has not just multiple PVT corners but also multiple functional modes. A mobile SoC might have a high-performance mode (all blocks running at maximum frequency), a low-power mode (clock gating and frequency scaling), a test/scan mode, and a sleep mode. Each mode can have a different clock frequency, different clock enables, and different constraints.

MCMM (Multi-Corner Multi-Mode) runs STA across all combinations of corners and modes simultaneously. The tool maintains separate constraint scenarios and timing graphs for each combination, then reports the worst-case slack across all of them. This eliminates the manual process of running separate STA sessions per corner and manually comparing results.

MCMM: Corners × Modes Mode: Func Mode: Scan Mode: LowPwr SS/0.9V/125C FF/1.1V/-40C TT/1.0V/25C Setup check Scan setup LP setup Hold check Scan hold LP hold Functional Scan func LP func MCMM runs all 9 scenarios simultaneously — worst WNS reported across all

6. MCMM setup in PrimeTime

MCMM scenario setup — PrimeTime Tcl
## ── Step 1: Load all corner Liberty files ──
read_lib sc9_ss_0p9v_125c.lib
read_lib sc9_ff_1p1v_n40c.lib
read_lib sc9_tt_1p0v_25c.lib

## ── Step 2: Load netlist (shared across all scenarios) ──
read_verilog top_netlist.v
link_design TOP

## ── Step 3: Create scenarios ──

## Scenario 1: Functional mode, SS corner (setup check)
create_scenario func_ss_setup
set_scenario_options -setup true -hold false
set_operating_conditions -max ss_0p9v_125c \
  -max_library sc9_ss_0p9v_125c
source func_mode.sdc

## Scenario 2: Functional mode, FF corner (hold check)
create_scenario func_ff_hold
set_scenario_options -setup false -hold true
set_operating_conditions -min ff_1p1v_n40c \
  -min_library sc9_ff_1p1v_n40c
source func_mode.sdc

## Scenario 3: Scan mode, SS corner
create_scenario scan_ss_setup
set_scenario_options -setup true -hold false
set_operating_conditions -max ss_0p9v_125c \
  -max_library sc9_ss_0p9v_125c
source scan_mode.sdc

## ── Step 4: Run timing analysis across all scenarios ──
update_timing -full
report_timing_summary  ; ## worst WNS/TNS per scenario

## ── Step 5: Report worst case ──
report_global_timing -significant_digits 4

7. Corner selection in practice

Not every possible corner combination needs to be run. The engineering team selects corners based on what is likely to be limiting. A practical set for a 28nm mobile SoC:

Practical corner selection — 28nm SoC
## Corner Purpose ## SS / 0.81V / 125C Worst-case setup (main performance sign-off) ## SS / 0.81V / -40C Cold-corner setup (temperature inversion node) ## FF / 0.99V / -40C Worst-case hold (main hold sign-off) ## TT / 0.9V / 25C Functional verification (correlation to simulation) ## FF / 0.99V / 125C Leakage / power sign-off ## SS / 0.81V / 25C Library characterization correlation check ## For each corner, modes: ## func — normal operation (3.0 GHz on Cortex-A core) ## scan — test mode (scan at 250 MHz) ## lp — low-power sleep islands (100 MHz on management core) ## Total scenarios: 6 corners × 3 modes = 18 scenarios ## MCMM runs all 18 simultaneously

Rule: Never tape out with only TT-corner timing clean

The most common mistake made by first-time ASIC engineers is running STA only at TT and declaring timing clean. A chip that passes at TT may have 20% slack violation at SS/low-V/hot. Sign-off requires WNS ≥ 0 at the slow corner for setup, and WNS ≥ 0 at the fast corner for hold, across all modes.

8. Derating factors per corner

Each corner may also apply timing derating factors (OCV) on top of the Liberty delay. These are multiplicative scaling factors that account for within-die variation:

OCV derating with PVT corner
## SS corner: derate data path by +5% (pessimistic) ## Derate clock path by -5% (optimistic) to maximise setup pessimism set_timing_derate -cell_delay -data -late 1.05 set_timing_derate -cell_delay -data -early 0.95 set_timing_derate -cell_delay -clock -late 1.05 set_timing_derate -cell_delay -clock -early 0.95 ## Derating values come from your PDK sign-off guide ## Typical: 5% at 28nm, 8-10% at 16nm/7nm (higher variation at smaller nodes) ## After CTS, use CPPR to remove the shared clock path pessimism set_timing_derate -clock -late 1.03 ; ## tighter post-CTS set_timing_derate -clock -early 0.97

Day 6 Key Takeaways

Frequently Asked Questions

What are PVT corners in STA?

PVT corners are the extreme combinations of Process (SS/TT/FF silicon speed), Voltage (low/nominal/high supply), and Temperature (hot/room/cold) that a chip will experience in the field. STA must pass at every corner to guarantee timing correctness across the chip’s full operating range.

Why is SS corner used for setup and FF corner for hold?

SS/low-voltage/hot corner makes gates slowest, causing data paths to be longest — this is when setup violations occur. FF/high-voltage/cold makes gates fastest, causing data to arrive so quickly that it violates the capture flip-flop’s hold time requirement. Each corner stresses a different timing check.

What is MCMM in STA?

MCMM (Multi-Corner Multi-Mode) is the practice of running STA simultaneously across all PVT corners and all operational modes of the design. A modern MCMM run might cover 18–30 scenarios (6 corners × 3–5 modes). The tool finds the worst-case violating path across all scenarios and reports a unified result.

What does set_operating_conditions do?

It tells the STA tool which PVT corner the current analysis represents, selecting the correct Liberty delay tables. Without it, the tool uses the default condition in the Liberty file. For MCMM, each scenario has its own set_operating_conditions pointing to a different Liberty file.

How many PVT corners do real chips need to pass?

Typical ASIC tape-out requires 8–20+ scenarios. At minimum: SS setup corner, FF hold corner, TT functional corner. Advanced flows add cold-corner setup, temperature inversion corners, leakage corners, and multiple voltage-island combinations. All must show WNS ≥ 0 and TNS = 0.

← Previous
Day 5: Liberty Files & Timing Arcs