Intuition What this page is
The parent note built the two constraints. Here we stress-test them against every case that can occur : setup pass, setup fail, hold pass, hold fail, zero-delay logic, positive and negative skew, the degenerate "no logic at all" flop-to-flop path, a real-world word problem, and an exam-style twist. If a scenario exists in this topic, you will see it worked below.
Two formulas power everything (both from the parent). We restate them once so no symbol is unearned:
A reminder of what each letter is , in plain words:
Definition Symbols, in one breath
T c l k = seconds between two clock ticks (the deadline gap).
t c q = delay from a clock tick until the flip-flop's output actually changes.
t co mb , ma x / t co mb , min = longest / shortest travel time through the logic gates between two flops.
t s u = how early data must be steady before the tick.
t h = how long data must stay steady after the tick.
t s k e w = how much later (or earlier, if negative) the capture clock arrives vs the launch clock.
Every timing question you can be asked is one cell of this grid. The last column names the example that covers it.
#
Case class
What is stressed
Covered by
A
Setup, comfortable
slack > 0
Ex 1
B
Setup, exactly on the edge
slack = 0 (limiting value)
Ex 2
C
Setup, violation
slack < 0
Ex 3
D
Hold, pass
fast path still slow enough
Ex 4
E
Hold, violation
fast path too fast
Ex 5
F
Degenerate: zero combinational logic (t co mb = 0 )
flop-to-flop, worst hold case
Ex 5
G
Positive skew
helps setup, hurts hold
Ex 6
H
Negative skew
hurts setup, helps hold
Ex 7
I
Real-world word problem
pick the right frequency
Ex 8
J
Exam twist: find max allowed logic delay
solve inequality for t co mb
Ex 9
We now walk all ten cells.
The figure above is one timeline. The launch edge is at 0 , the capture edge at T c l k . Data leaves at t c q (blue), arrives at t c q + t co mb (orange dot), and the deadline (dashed red) sits at T c l k − t s u . Slack is the green gap; if orange sits past the red line, slack goes negative.
Worked example Ex 1 — Cell A: setup with comfortable slack
t c q = 0.3 , t co mb , ma x = 3.0 , t s u = 0.5 ns, skew = 0 , running at T c l k = 5.0 ns. Does it pass, and by how much?
Forecast: arrival = 0.3 + 3.0 = 3.3 ; deadline = 5.0 − 0.5 = 4.5 . Guess the sign of slack before reading.
Arrival time = t c q + t co mb , ma x = 0.3 + 3.0 = 3.3 ns.
Why this step? Data physically leaves (t c q ) then travels (t co mb , ma x ); we use max because setup fears the slowest path arriving late.
Required (deadline) = T c l k − t s u = 5.0 − 0.5 = 4.5 ns.
Why this step? Data must be steady t s u before the next tick.
Setup slack = required − arrival = 4.5 − 3.3 = + 1.2 ns.
Why this step? Positive slack = time to spare = pass .
Verify: plug into the boxed form: t c q + t co mb , ma x + t s u = 0.3 + 3.0 + 0.5 = 3.8 ≤ 5.0 = T c l k . True, with 1.2 ns headroom. Units all ns. ✓
Worked example Ex 2 — Cell B: setup exactly on the edge (limiting value)
Same t c q = 0.3 , t s u = 0.5 , skew 0 , but t co mb , ma x = 4.2 ns. Find the clock period at which slack is exactly zero .
Forecast: the tightest legal T c l k is just the sum. Guess it.
Set slack = 0 : T c l k − ( t c q + t co mb , ma x + t s u ) = 0 .
Why this step? The boundary between pass and fail is where required = arrival.
Solve: T c l k , min = 0.3 + 4.2 + 0.5 = 5.0 ns.
Why this step? This is the fastest we can tick without violating setup.
Convert to frequency: f ma x = 1/5.0 ns = 200 MHz.
Why this step? Frequency is the reciprocal of period; 1/ ( 5 × 1 0 − 9 s ) = 2 × 1 0 8 Hz.
Verify: at exactly T c l k = 5.0 : arrival 5.0 , deadline 5.0 , slack 0 — legal but with zero margin (a real chip would derate this). Any faster and it fails. This is the edge case the matrix demands. ✓
Worked example Ex 3 — Cell C: setup violation
Take the same 200 -MHz-capable circuit (t c q = 0.3 , t co mb , ma x = 4.2 , t s u = 0.5 ) and force it to run at 250 MHz.
Forecast: 250 MHz means T c l k = 4 ns, but the circuit needs 5 ns. Guess the slack.
Convert frequency to period: T c l k = 1/250 MHz = 4.0 ns.
Why this step? We compare against the requirement in the same units (time).
Requirement (from Ex 2) = 5.0 ns.
Why this step? This is the arrival+setup sum; it doesn't change with the clock.
Setup slack = T c l k − 5.0 = 4.0 − 5.0 = − 1.0 ns.
Why this step? Deadline (4.0 ) is earlier than the arrival (5.0 ) → data misses it → fail by 1 ns .
Verify: negative slack ⇒ violation, consistent with "circuit can only do 200 MHz." To fix: slow the clock back toward 5 ns, or shorten the logic. ✓
Hold is a same-edge race. Both flops feel the tick at 0 . The old value inside FF2 must survive until t h (red line). The new value racing through the fastest path arrives at t c q + t co mb , min (orange). If orange lands left of the red line, the new value overwrites the old too early — a hold violation.
Worked example Ex 4 — Cell D: hold passes
t c q = 0.3 , t co mb , min = 0.5 , t h = 0.6 ns, skew 0 .
Forecast: arrival = 0.8 , required = 0.6 . Guess sign.
Earliest arrival of new data = t c q + t co mb , min = 0.3 + 0.5 = 0.8 ns.
Why this step? Hold fears the shortest path — the earliest possible disturbance.
Hold slack = arrival − requirement = 0.8 − 0.6 = + 0.2 ns.
Why this step? Arrival must be ≥ t h ; positive slack = new data waited long enough = pass .
Verify: t c q + t co mb , min = 0.8 ≥ 0.6 = t h . True. Notice T c l k never appeared — hold is clock-independent. ✓
Worked example Ex 5 — Cells E + F: hold violation with
zero logic (degenerate)
t c q = 0.3 , t co mb , min = 0.0 (two flops wired directly, a shift register), t h = 0.6 ns, skew 0 .
Forecast: with no logic to slow it down, the new data arrives at just t c q = 0.3 . Is that enough hold?
Earliest arrival = t c q + t co mb , min = 0.3 + 0.0 = 0.3 ns.
Why this step? Cell F: the worst-case hold path is literally no gates — nothing delays the new value.
Hold slack = 0.3 − 0.6 = − 0.3 ns.
Why this step? New value arrives 0.3 ns after the tick, but FF2 needed the old value held for 0.6 ns → fail .
Fix: insert a buffer so t co mb , min rises to at least 0.6 − 0.3 = 0.3 ns.
Why this step? Slowing the clock does nothing here (no T c l k in the equation); we must lengthen the short path.
Verify: after adding a 0.3 ns buffer: 0.3 + 0.3 = 0.6 ≥ 0.6 → slack 0 , just legal. Confirms the fix is delay-in-data, not clock. ✓
Skew slides the capture clock edge. Positive skew (capture later, orange edge moves right) hands setup more time but makes the hold "hold-until" line move right too, so hold gets harder . Negative skew does the reverse. The figure shows both slides on one axis.
Worked example Ex 6 — Cell G: positive skew (helps setup, hurts hold)
t c q = 0.3 , t co mb , ma x = 4.2 , t s u = 0.5 , t co mb , min = 0.5 , t h = 0.6 ns, T c l k = 5.0 ns, skew = + 0.5 ns.
Forecast: capture edge arrives later. Predict: setup slack up, hold slack down.
Setup slack = ( T c l k + t s k e w ) − ( t c q + t co mb , ma x + t s u ) = ( 5.0 + 0.5 ) − 5.0 = + 0.5 ns.
Why this step? A later deadline (+ t s k e w ) is more forgiving to a late arrival → slack improves from 0 (Ex 2) to + 0.5 .
Hold slack = ( t c q + t co mb , min ) − ( t h + t s k e w ) = 0.8 − ( 0.6 + 0.5 ) = − 0.3 ns.
Why this step? The "hold until" bar also moved later by t s k e w , so the earlier-arriving new data now violates → hold worsens from + 0.2 (Ex 4) to − 0.3 .
Verify: setup went + 0.5 , hold went − 0.3 — exactly the asymmetry the parent warned about. Positive skew is a trade, not free lunch. ✓
Worked example Ex 7 — Cell H: negative skew (hurts setup, helps hold)
Same numbers, skew = − 0.4 ns (capture edge arrives earlier ).
Forecast: earlier deadline squeezes setup; earlier hold bar relaxes hold. Guess both signs.
Setup slack = ( 5.0 − 0.4 ) − 5.0 = − 0.4 ns → setup fails .
Why this step? Deadline moved earlier , so the same arrival now misses it.
Hold slack = 0.8 − ( 0.6 − 0.4 ) = 0.8 − 0.2 = + 0.6 ns → hold passes comfortably .
Why this step? The "hold until" bar moved earlier, so the new data easily clears it.
Verify: signs flipped versus Ex 6, confirming skew's opposite effect on the two checks. ✓
Worked example Ex 8 — Cell I: real-world word problem
A camera sensor pushes out pixels through a 12-stage image pipeline. Each stage: t c q = 0.2 ns, worst-stage logic t co mb , ma x = 2.3 ns, t s u = 0.3 ns, skew 0 . The vendor wants 330 MHz . Can the chip meet it? If not, what is the best it can do?
Forecast: each stage is a register-to-register hop; the slowest stage sets f ma x . Estimate before computing.
Per-stage minimum period = t c q + t co mb , ma x + t s u = 0.2 + 2.3 + 0.3 = 2.8 ns.
Why this step? STA finds the critical path ; here every stage is identical, so any one stage's period is the limit — pipelining doesn't shrink a single stage's delay.
f ma x = 1/2.8 ns ≈ 357 MHz.
Why this step? Reciprocal of the tightest period.
Compare: 357 > 330 MHz → the 330 MHz target passes with slack.
Why this step? Requested period = 1/330 MHz ≈ 3.03 ns; slack = 3.03 − 2.8 = + 0.23 ns.
Verify: 1/ ( 2.8 × 1 0 − 9 ) = 3.57 × 1 0 8 Hz = 357 MHz > 330 MHz. Positive slack ⇒ meets spec. ✓
Worked example Ex 9 — Cell J: exam twist, solve for the budget
You must run at 400 MHz. Given t c q = 0.25 ns, t s u = 0.35 ns, skew = + 0.10 ns, what is the maximum combinational delay t co mb , ma x your synthesis tool may leave on any path?
Forecast: rearrange the setup inequality to isolate t co mb , ma x . Guess whether skew loosens or tightens the budget.
Period: T c l k = 1/400 MHz = 2.5 ns.
Why this step? The frequency target fixes the deadline gap.
Setup inequality: t c q + t co mb , ma x + t s u ≤ T c l k + t s k e w .
Solve for the logic budget: t co mb , ma x ≤ T c l k + t s k e w − t c q − t s u .
Why this step? We want the largest logic delay still legal.
Plug in: t co mb , ma x ≤ 2.5 + 0.10 − 0.25 − 0.35 = 2.0 ns.
Why this step? Positive skew added 0.10 ns of budget — consistent with "positive skew helps setup."
Verify: at t co mb , ma x = 2.0 : 0.25 + 2.0 + 0.35 = 2.6 = T c l k + t s k e w = 2.5 + 0.10 . Equality ⇒ exactly zero setup slack, the boundary. ✓
Recall Which extreme path does each check use, and why?
Setup → longest path (fear arriving late ). Hold → shortest path (fear arriving too early ).
Recall Ex 5's fix for a zero-logic hold violation?
Insert buffer delay in the data path (raise t co mb , min ). Slowing the clock cannot help — T c l k isn't in the hold equation.
Recall Positive skew: effect on setup and hold?
Helps setup (later deadline), hurts hold (later "hold-until" bar). Ex 6 shows both.
Mnemonic Sign of skew, sign of effect
"Plus skew: setup plus (better), hold minus (worse)." Negative skew flips both.
Ex2 fastest legal period for tcq0.3 comb4.2 su0.5? 5.0 ns → f_max 200 MHz.
Ex3 setup slack at 250 MHz for that circuit? −1.0 ns (fails).
Ex5 hold slack with zero logic, tcq0.3 th0.6? −0.3 ns (needs +0.3 ns buffer).
Ex6 with +0.5 ns skew: setup and hold slack? setup +0.5 ns, hold −0.3 ns.
Ex9 max comb delay at 400 MHz, +0.10 skew, tcq0.25 su0.35? 2.0 ns.