3.4.6 · D5Sequential Circuits

Question bank — Clock-to-Q delay

1,727 words8 min readBack to topic

Quick symbol reminder so nothing below is used unexplained:

  • = propagation clock-to-Q delay — the worst-case (maximum) time until is fully valid.
  • = contamination clock-to-Q delay — the best-case (minimum) time before starts to change.
  • = combinational logic delay (max version , min version ).
  • / = how long data must be stable before / after the receiving flip-flop's clock edge. See Setup and Hold Time.
  • = clock period; . See Maximum Clock Frequency.

True or false — justify

True or false: changes at the exact instant the clock edge arrives.
False. changes after the edge — internal transistor capacitances must charge/discharge, and that takes real physical time.
True or false: A flip-flop with a larger can run at a higher maximum frequency.
False. ; a bigger enlarges the denominator, so drops. More launch delay steals from the cycle budget.
True or false: always holds.
True. Contamination is the earliest can move; propagation is the latest it settles. The start of a change can't come after its finish, so the minimum never exceeds the maximum.
True or false: Both the setup check and the hold check use the same single number.
False. Setup (slow-path, catches the next edge) uses max ; hold (fast-path, must not corrupt the current edge) uses min . Mixing them flips your safety margin the wrong way.
True or false: If a design fails setup, you can fix it by making the clock faster.
False. A setup failure means the cycle is already too short; a faster clock shortens further and makes it worse. You must slow the clock or shorten the logic path.
True or false: The hold constraint contains no term, so hold failures don't depend on clock frequency.
True. Hold is a same-edge race between launch and capture — it has no room for a full period. That's why you cannot fix a hold violation by changing the clock speed.
True or false: Adding a buffer (extra delay) to a path is always bad for timing.
False. Adding delay to a short path is the standard fix for a hold violation, and it doesn't touch (which depends on the long path). Delay is a tool, not just a penalty.
True or false: is measured from the moment starts moving to the moment it finishes.
False. It's measured from the clock edge (50% voltage point) to reaching its own 50% point — clock edge is the reference, not 's own onset.
True or false: In an ideal truth-table view of a flip-flop, .
True in the model, false in silicon. The truth table is a discrete abstraction with no time; real gates always have . Trusting the ideal view overestimates .

Spot the error

Spot the error: "For the setup check I'll use because it's the delay of the launching flip-flop."
The launching flip-flop does set the delay, but setup is a worst-case check, so it needs the maximum launch delay , not the minimum . Using pretends data launches earlier than guaranteed.
Spot the error: "."
does not belong in the period equation — hold is a same-edge constraint with no bearing on cycle length. The setup/frequency budget is only.
Spot the error: "Since is the same block of logic, I'll use in both the setup and the hold equations."
Setup uses (slowest path may miss the next edge); hold uses (fastest path may arrive too early). Same logic block, but the two checks probe opposite extremes.
Spot the error: "Hold violation? Just increase the clock period to give more time."
The clock period never appears in the hold inequality, so lengthening does nothing. The fix is to add delay to the short combinational path so data arrives after .
Spot the error: " measures how long the input takes to reach the flip-flop."
That's the logic/wire delay before the flip-flop. is measured from the clock edge to the output — it's an output delay of the flip-flop itself, not an input path.
Spot the error: "We slowed the clock and the setup slack got worse."
Slowing the clock increases , which increases setup slack (more room in the cycle). If slack got worse, either the clock was made faster or another parameter changed — slowing never hurts setup.

Why questions

Why does clock-to-Q delay exist at all?
Every internal node has capacitance; a transistor must charge or discharge that capacitance to flip the output, and moving charge through finite resistance always takes finite time.
Why do manufacturers publish two clock-to-Q numbers ( and )?
Because timing has two opposite worst cases: the slowest response threatens setup/frequency (needs the max, ), and the fastest response threatens hold (needs the min, ). One number can't cover both extremes.
Why does the setup check use the maximum path delays while the hold check uses the minimum ones?
Setup fails when data arrives too late for the next edge — so we assume everything is as slow as possible. Hold fails when new data arrives too early and corrupts the current capture — so we assume everything is as fast as possible.
Why must be included in the minimum-period inequality instead of assuming launches instantly?
Assuming instant launch pretends FF1 responds at the edge, which underestimates when data actually leaves. That inflates and hides real timing bugs that appear on the bench.
Why is (a small delay) actually a good thing for hold but a hidden danger?
A large delays the arrival of new data, which helps satisfy hold. A very small means the new value races out early and can clobber the previous capture — so tiny fast delays are precisely what causes hold violations.
Why doesn't fixing a hold violation change the maximum operating frequency?
Hold is fixed by padding the short path, but is set by the long (critical) path. Adding delay to a non-critical path leaves the critical path — and therefore — untouched.
Why is measured to the 50% voltage point of rather than when is fully at the rail?
The 50% point is a clean, well-defined crossing that's symmetric for rising and falling edges; waiting for the full rail is fuzzy and depends on the load, so 50% gives a repeatable reference.

Edge cases

Edge case: A wire directly connects FF1's to FF2's with no logic (). Is hold automatically safe?
Not automatically. The check becomes ; if the flip-flop's own contamination delay is smaller than its hold requirement, it fails even with zero logic. Directly-connected flip-flops are the classic hold-failure case.
Edge case: What happens to the setup equation if the logic delay (two back-to-back flip-flops)?
It reduces to — the fastest a flip-flop chain can be clocked, set purely by the flip-flops themselves. This is the floor on the period no logic can beat.
Edge case: If (a hypothetical flip-flop with zero spread between min and max), what does that imply?
The output timing is perfectly deterministic — always settles at exactly one time. Real flip-flops always have due to process, voltage, and temperature variation, so this is an idealization.
Edge case: The combinational block has one path of units and another of units. Which drives setup and which drives hold?
The 300 (max) path drives the setup/frequency check (slowest data may miss the edge); the 30 (min) path drives the hold check (fastest data may arrive too early). One block, two extremes. See Timing Analysis.
Edge case: If the clock reaches FF2 later than FF1 (positive clock skew toward the capture flip-flop), does that help or hurt setup?
It helps setup — the later capture edge gives data more time to arrive — but it hurts hold, because the new data now has even more time to race in and corrupt the delayed capture. See Clock Skew.
Edge case: Can ever be limited by alone, with no logic and no setup?
No — is always present in the receiving flip-flop, so the floor is at minimum. You can drive to zero but never remove the setup term.

Recall One-line summary of the traps

The single deepest trap: which extreme? Setup = slow world (max , max ); hold = fast world (min , min ). Get the extreme wrong and every downstream number points the wrong way.


Connections