How do you read a POCV Liberty variation table?
From PDVerse STA Mentor Guide · pdVerse Mentor Guide
Short Answer
A POCV Liberty variation table, such as an ocv_sigma_cell_rise (LIB) group, stores the standard deviation of a cell's delay as a function of input transition and output load, exactly the way a normal delay table stores the nominal delay itself, with a separate sigma_type of early or late for each direction of variation. PrimeTime looks up the sigma value for the arc's actual transition and load, then scales it by a corner multiplier - the K sigma value, 3 by default - to get the derate actually applied at each timing corner.
Technical Explanation
- The table has the same shape as an ordinary delay table, but stores sigma instead of delay.
ocv_sigma_cell_rise ("delay_template_7x7") { sigma_type: "early"; index_1(...); index_2(...); values(...); }(LIB) is indexed by input transition (index_1) and output load (index_2), just like a normalcell_risetable. - Two separate tables cover early and late variation. A
sigma_type: "early"table and asigma_type: "late"table for the same arc can hold different sigma values, because the amount of variation is not always symmetric between the fast and slow direction of the same cell. - The mean of the distribution is the cell's own nominal delay value. The sigma table only adds the spread around that nominal number - it does not replace or shift the nominal delay itself in the simplest, non-moment-based case.
- A K sigma multiplier converts the raw sigma value into the margin actually applied.
set_app_var timing_pocvm_corner_sigma K_value(PT) sets that multiplier, and PrimeTime's default is 3 sigma, meaning the applied margin is three standard deviations from the mean unless changed. - Reading a specific number off the table means finding the row and column that match the arc's real transition and load. The
valuesblock lines up with the crossedindex_1/index_2entries exactly like a normal delay table lookup, just returning a sigma instead of a delay. - LVF (Liberty variation format) tables measure sigma in absolute library time units, not as a percentage. A POCV side file, by contrast, measures variation as a coefficient of variation - standard deviation divided by nominal - which is a unitless, normalized number; the two formats are not interchangeable without converting one to the other.
Common Mistake
- Reading the sigma value straight out of an
ocv_sigma_cell_rise(LIB) table and treating it as the derate PrimeTime actually applies to that arc. - The table value is one standard deviation; the real applied margin is that sigma multiplied by the K corner-sigma value (3 by default), so the same table can produce very different effective derates depending on
timing_pocvm_corner_sigma. - Cost: an engineer manually cross-checking a POCV-derated delay against the raw Liberty sigma table concludes the numbers don't add up, when the missing step is simply the corner-sigma multiplication.
Follow-up Question & Model Response
If a project changes timing_pocvm_corner_sigma from the default of 3 to 4.5 without touching the Liberty library at all, what happens to every POCV-derated setup and hold margin in the design, and why does this not require re-characterizing anything?
Candidate Model Response: Every POCV-derated margin gets more conservative, because the raw sigma values stored in the library tables are unchanged - only the multiplier applied to them changes, from three standard deviations to four and a half. This does not require re-characterization because the sigma tables describe the underlying variation once, as a library property, and the corner-sigma value is purely an analysis-time setting for how conservatively PrimeTime chooses to interpret that same variation data. In effect, raising the corner sigma is equivalent to deciding you want a higher-confidence, lower-probability-of-failure margin on every arc that has POCV data, without having to characterize a single new table.
Practical Example
A library's ocv_sigma_cell_rise table for a particular buffer, at an input transition of 0.0532 and an output load of 0.0221, interpolates to a sigma of about 0.00368 library time units (nanoseconds) in the sigma_type: "late" table. With the default timing_pocvm_corner_sigma of 3, PrimeTime applies an additional late-direction margin of roughly 3 times 0.00368, or about 0.011ns, on top of that arc's nominal cell delay. If the project later raises the corner sigma to 4, the same 0.00368 sigma value now contributes about 0.0147ns of margin instead - a roughly 34% increase in derate on that one arc, from a single application-wide setting change and no new characterization.
Complete STA Handbook
Master Signoff-Ready Static Timing Analysis
Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Continue practising