Module 512 min

On-Chip Variation (OCV, AOCV, POCV)

On-chip variation in STA made clear: OCV flat derating, AOCV depth and distance aware derating, and POCV/SOCV statistical timing, with a worked derate example and CRPR.

Pro Tip

Two copies of the same buffer, placed a millimetre apart, do not have the same delay. Process variation across the die, plus local voltage and temperature differences, mean every cell's real delay sits in a range, not on a point. On-chip variation (OCV) is how STA accounts for that spread so a path that passes in the tool also passes in silicon. It is one of the most-asked STA interview topics, practice it on our [128 STA questions](/sta-interview-questions).

Why on-chip variation matters

A single-corner STA run assumes every cell on the die behaves at exactly the same PVT point. Real silicon does not: process gradients, IR-drop-induced voltage differences and temperature hot spots make the same cell faster in one place and slower in another. If STA ignored this, a path could pass in the tool and still fail on the bench. OCV adds margin for that intra-die spread, on top of the PVT corners that cover die-to-die variation.

OCV, flat derating

The original method applies a flat derate factor to cell and net delays: for a setup (max) check it pushes the launch and data path slower (for example x1.05) and the capture clock path faster (x0.95), which is the pessimistic worst case, data as late as possible, capture as early as possible. For a hold check it does the opposite. It is simple and safe, but flat OCV is pessimistic: it derates a deep, long path by the same percentage as a short one, even though variation averages out over many stages.

OCV for setup: derate the launch/data path slower and the capture clock faster, the pessimistic corner — click to enlarge

A quick number makes it concrete. Say a path's launch-plus-data delay is 1.60 ns and its capture-clock delay is 1.00 ns, with a ±5% OCV derate. For the setup check STA pushes the data path to 1.60 × 1.05 = 1.68 ns (slower) and the capture clock to 1.00 × 0.95 = 0.95 ns (faster). The path now looks 0.13 ns worse than nominal, that deliberate extra pessimism is the margin OCV holds back against real-silicon variation.

AOCV: depth and distance aware derating

Advanced OCV (AOCV), also called stage-based OCV, makes the derate smarter by splitting variation into two parts. Random variation (device-to-device mismatch) partly cancels along a path: over many stages the fast and slow cells average out, so a deep path deserves less derate. Systematic variation (a gradient across the die) does the opposite: the further apart a path's cells sit physically, the larger it gets. So AOCV does not use one flat number. It reads the derate from a look-up table indexed by two things: path depth (the number of stages, which scales the random part down) and distance (the physical span of the path, which scales the systematic part up).

Because depth averages out the random component, the derate shrinks as a path gets deeper. A typical AOCV derate table looks like this (the exact values come from the foundry's characterization data):

Path depth (stages)Late derate (setup)Early derate (hold)
11.1000.900
21.0500.950
41.0250.975
81.0130.987
16 or more1.0060.994

Read it like this: a 1-stage path is derated the full amount (about 10% here) because a single cell's random variation has nowhere to average out, while a 16-stage path is derated under 1% because across sixteen cells the random ups and downs almost cancel. The late (max) column is used for the setup check and the early (min) column for hold, and both converge toward 1.0 as depth grows. Distance pulls the other way, adding pessimism back for physically spread-out paths. The result is a derate that fits each path instead of punishing them all equally, and it still runs at fast graph-based speed.

POCV / SOCV, statistical

Parametric (or statistical) OCV, POCV/SOCV, is the modern, least-pessimistic method. Instead of a single derate, each cell carries a statistical delay distribution (a mean and a sigma, from an LVF-annotated library). STA sums the variances along the path statistically rather than adding worst cases linearly, so the margin scales naturally with path depth. It is the most accurate and the least wasteful, and it is what advanced nodes use.

Common path pessimism (CRPR)

Derating the launch clock slow and the capture clock fast double-counts the part of the clock tree they share, which is not physically possible. Common path pessimism removal (CRPR/CPPR) credits that shared segment back. It is important enough to have its own module: CRPR, Removing Clock Pessimism.

MethodHow it deratesPessimism
OCVFlat percentage on all cellsHigh (simple, safe)
AOCVTable by path depth + distanceMedium
POCV / SOCVPer-cell statistical (sigma, LVF)Low (most accurate)
Note

Recap: on-chip variation covers intra-die spread. OCV applies a flat derate (launch slow, capture fast for setup); AOCV scales the derate by path depth and distance; POCV/SOCV models each cell statistically for the least pessimism. CRPR then removes the double-counting on the shared clock path.