Skip to content
BetterDL

Hold slack

Also called: hold margin

How much later new data arrives than a flip-flop's hold time requires: tcq(min) + tcd − th. Negative means a hold violation.

The hold constraint asks whether the fastest new data arrives after the capturing flip-flop's hold window has closed. Hold slack measures the margin:

hold slack = tcq(min) + tcd − th

where tcd is the contamination delay of the short path through the logic.

  • Positive or zero: the new data arrives after the window closes. Safe.
  • Negative: a hold violation. The new data arrives while the flip-flop is still locking in the old value, and may corrupt it.

With clock skew, the requirement grows by the skew: hold slack = tcq(min) + tcd − (th + tskew).

Unlike setup slack, hold slack has no clock period in it, so it's the same at every clock frequency. A negative hold slack needs a hold fix: more delay on the short path.

Worked example

Example

Hold slack on two paths

Flip-flops have tcq(min) = 30 ps and th = 45 ps. Path P has a logic tcd of 25 ps; path Q is a direct wire.

  1. 1.

    Path P: 30 + 25 − 45 = +10 ps. It passes.

  2. 2.

    Path Q: 30 + 0 − 45 = −15 ps. A hold violation.

  3. 3.

    Path Q needs at least 15 ps of extra contamination delay, for example a buffer.

Common mistakes

  • Subtracting the wrong way. Hold slack is arrival time minus th; positive is good.

  • Using tpd or tcq in place of tcd and tcq(min).

  • Expecting a slower clock to improve hold slack. The period isn't in the formula.

Practice Hold slack

Interactive questions with instant feedback and a worked solution for every wrong answer.

Learn it step by step

Hold slack is taught in Timing and Sequential Logic.