IntermediateQuestion 45 of 112

Why can a path have positive setup slack and negative hold slack at the same time?

From PDVerse STA Mentor Guide, part of the pdVerse Mentor Guide

Last updated:

Short Answer

Setup and hold are two separate checks on the same path, comparing different arrival times against different requirements โ€” one checks whether data arrives in time for the next clock edge, the other checks whether it stays stable long enough after the current edge. A path can easily pass one check with room to spare while failing the other, because nothing forces the two results to move together.

Technical Reference DiagramWhy can a path have positive setup slack and negative hold slack at the same time?

Technical Explanation

The two checks are independent, so a path's setup outcome tells you nothing about its hold outcome.

  • Setup checks the maximum path, hold checks the minimum path. Setup asks whether data arrives before the next clock edge; hold asks whether data stays stable long enough after the current edge. They use different arrival times and different requirements.
  • A slow, heavily buffered path is setup-friendly but hold-risky. Extra delay helps a path meet its setup deadline with room to spare, but that same delay can still be small compared to what hold needs if skew is unfavorable.
  • A very fast path is the opposite case. Minimal logic delay leaves generous setup slack, since there is plenty of time before the next edge, but a fast path is exactly the kind most likely to violate hold if there is any adverse skew at all.
  • The two checks do not trade off against each other on the same path. Fixing setup by adding delay can directly create or worsen a hold violation on the very same path, because the fix that helps one check works against the other.
  • This is why both must be checked and reported together, never one used as a proxy for the other โ€” a report showing only setup slack, however good, says nothing about whether that same path holds.
  • Why it matters: a path with +300ps setup slack and -20ps hold slack is common in real designs, especially reg2reg paths with short combinational logic, and both numbers need their own fix.

Common Mistake

The Trap: seeing a large positive setup slack and assuming the path is broadly healthy, without checking hold separately.

  • A designer reviewing a summary report sorted by setup slack can miss that the very same path, or a nearby one sharing the same clock branch, is failing hold by a small margin.
  • Adding delay to "clean up" a setup number that was already comfortably positive can push a marginal hold path further into violation, since the fix for one check works against the other.

Follow-up Question & Model Response

If you needed to add a buffer to fix a hold violation on a path that already has +300ps of setup slack, would that setup number get worse?

Candidate Model Response: Yes, adding delay to fix hold necessarily increases the data arrival time, which eats directly into that setup slack. With 300ps of margin to start, a typical hold-fix buffer of a few tens of picoseconds is unlikely to cause a new setup violation, but I would still re-check the setup number after the fix rather than assume it stays comfortable. On a path with tighter setup margin to begin with, the same hold fix could push it into a setup violation, which is why ECO tools re-verify both checks after every change rather than only the one being targeted.

Practical Example

A reg2reg path in a 900MHz domain has almost no combinational logic โ€” just a clock-to-Q delay of 90ps feeding directly into the next flop. Setup analysis at the 1.11ns period shows +950ps of slack, since the path is far shorter than the clock period allows. The same path's hold check, comparing that 90ps arrival against a 45ps hold-time requirement and 70ps of adverse skew from the capture flop's shorter clock branch, comes out to -25ps. The fix is a small delay buffer inserted in the data path, which trims the setup slack to roughly +920ps while bringing hold slack to +15ps โ€” both checks now pass.

Complete STA Handbook

Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle

Instant PDF by email · Secure checkout via Razorpay · Full refund if the files fail to arrive or open

Static Timing Analysis (STA) Handbook โ€” ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff.