What is clock uncertainty?
From PDVerse STA Mentor Guide · pdVerse Mentor Guide
Short Answer
Clock uncertainty is a margin subtracted from the available timing budget to account for imperfections in the clock, chiefly jitter, plus any additional margin or guardband the designer wants to add.
Example
Before clock tree synthesis (CTS), a designer might set set_clock_uncertainty 120 to cover both jitter and an estimated amount of tree skew that doesn't exist as a real, built structure yet; after CTS, since skew is now actually propagated through the real tree, that number can shrink to set_clock_uncertainty 45, covering just jitter and margin.
Why It Matters
Uncertainty directly eats into the setup budget — in the worked example, adding 40 ps of uncertainty turned a +25 ps passing slack into a -15 ps failing slack, showing how a seemingly small margin can flip a path's verdict.
Equation
required (with uncertainty) = period - setup - uncertainty; required
(without) = period - setupCommand
set_clock_uncertainty 120 (pre-CTS, covers jitter + estimated tree skew);
set_clock_uncertainty 45 (post-CTS, jitter + margin only)Mentor Note — Common Mistake
Using the same, larger pre-CTS uncertainty value after the real clock tree has been built — this double-counts skew that is now already modeled explicitly, making the analysis overly pessimistic.
Continue learning free
Get a practical low-power chapter
Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.
Continue practising