3.4.6 · D2Sequential Circuits

Visual walkthrough — Clock-to-Q delay

2,035 words9 min readBack to topic

Step 1 — What a clock edge actually looks like

WHAT. A clock is just a voltage that marches up and down forever: low, high, low, high. The moment it jumps from low to high is called the rising edge. That upward jump is not vertical in real life — the voltage climbs a ramp. We agree to say "the edge happened" at the exact instant the voltage crosses halfway up (the 50% point).

WHY. Every timing number in this note is measured from this halfway crossing. If we started counting from "somewhere on the ramp," different engineers would get different answers. The 50% point is a fair, agreed-upon starting gun.

PICTURE. In the figure below, the clock ramps up; the pink dot marks the 50% crossing. That dot is time-zero for everything that follows.

Figure — Clock-to-Q delay

Step 2 — The output Q reacts late: this delay is

WHAT. A flip-flop is a memory cell. On the rising edge it copies its input onto its output . But does not snap over at the same instant — it waits a little, then ramps to its new level. The gap from the clock's 50% point to 's 50% point is the clock-to-Q delay, written .

WHY this gap exists. Inside the flip-flop are tiny switches (transistors). Each has capacitance — think of it as a tiny bucket that must fill with charge before the wire's voltage moves. Filling a bucket takes real time. So physically cannot move instantly.

WHY we measure edge-50% to Q-50%. Same fairness reason as Step 1 — halfway to halfway is a clean, repeatable ruler.

PICTURE. Two waveforms stacked: the clock on top with its 50% dot, below with its own 50% dot. The horizontal arrow between the two dots is .

Figure — Clock-to-Q delay

Here is our start-of-timing instant, and is the delay we just drew as the arrow.


Step 3 — There are really TWO delays: fastest and slowest

WHAT. No two flip-flops react in exactly the same time — temperature, voltage, and manufacturing wobble spread it out. So a datasheet gives a band:

  • = the earliest can even begin to move (contamination — "when does Q first get dirty?").
  • = the latest is fully valid (propagation — worst case).

They always obey .

WHY two. Different questions need different ends of the band. "Will the signal arrive in time?" is a worst-case (slowest) question → use . "Might the signal arrive too early and wreck stored data?" is a best-case (fastest) question → use . Using one number for both would hide half the danger.

PICTURE. One clock edge, and a shaded band on : its left wall is (Q starts changing), its right wall is (Q settled). is only guaranteed valid to the right of the right wall.

Figure — Clock-to-Q delay


Step 4 — Build the racetrack: two flip-flops with logic between

WHAT. Real circuits chain flip-flops. Draw FF1, then a cloud of combinational logic, then FF2. All three share the same clock wire. Each clock tick, data must run from FF1's output, through the logic, into FF2's input.

WHY this exact shape. This "launch flop → logic → capture flop" is the atom of every synchronous chip. If we get the timing right for one such hop, we've got it right everywhere.

PICTURE. FF1 (launch) on the left, the logic cloud in the middle labelled with its delay, FF2 (capture) on the right. The single clock feeds both flops from below — remember that, it matters in Step 5.

Figure — Clock-to-Q delay

Step 5 — The setup race: data must arrive before the next edge

WHAT. FF2 also needs its input to be steady for a moment before its own clock edge — that quiet window is the setup time, (see Setup and Hold Time). Now walk the signal along the timeline of one clock period (the time between one rising edge and the next):

  1. Edge fires. After , FF1's output is valid. → arrives at time .
  2. crosses the logic cloud, taking . → arrives at FF2's input at .
  3. This must land at least before the next edge, which is at time .

WHY worst case. For "does it make it in time?", assume the slowest launch and the slowest logic — if even the slowpokes arrive on time, everyone does. So we use and .

PICTURE. A single timeline from one edge (left) to the next edge (right, at ). Coloured bars stack left-to-right: lavender , coral , mint . The mint bar's right wall must not pass the next edge. The gap left over is slack.

Figure — Clock-to-Q delay

Reading the bars off the picture directly:

Rearrange (subtract nothing — just read it as a lower bound on ):


Step 6 — The hold race: data must NOT arrive too soon

WHAT. There is an opposite danger. When the edge fires, FF2 is also trying to grab its old input value. If new data from FF1 races through fast logic and reaches FF2 too quickly, it overwrites the old value before FF2 has captured it — that quiet-window after the edge is the hold time, .

WHY fastest case. This is a "too early" problem, so we assume the fastest everything: earliest launch and shortest logic . If even the fastest path is not too fast, we're safe.

PICTURE. Same edge at time-zero. A tiny window of width sits just after the edge (the "keep old data still" zone). The new data's earliest arrival is at — its wall must land outside (to the right of) the hold window.

Figure — Clock-to-Q delay

Step 7 — Degenerate & edge cases (every scenario covered)

WHAT & WHY (each case with its own reasoning):

Figure — Clock-to-Q delay

Worked example woven through the pictures


The one-picture summary

Everything on one timeline: the lavender/coral/mint bars for the setup race stretching toward the next edge, and the small hold window right after the edge for the hold race — one drawing that holds the entire derivation.

Figure — Clock-to-Q delay
Recall Feynman retelling of the whole walkthrough

A whistle blows (the clock's 50% crossing). The first runner (FF1) doesn't leap instantly — it takes a reaction moment, , because tiny buckets inside must fill with charge. There are really two reaction times: the earliest it twitches () and the latest it's fully going (). It hands the baton to the logic cloud, which itself takes to carry it. The second runner (FF2) must have the baton held steady for a beat before the next whistle — that's setup. So one lap must be long enough for react + run + get-ready: , and turning laps-per-second the other way gives . But there's a mirror danger: if the new baton arrives too fast, it knocks the old one out of FF2's hand before it's grabbed — so the fastest path must still be slow enough: . Slowing the clock lengthens the lap (helps setup) but does nothing for the too-fast problem — that's why hold is fixed with buffers, not a slower clock.


Active recall

What instant counts as "the clock edge happened"?
The moment the ramping clock voltage crosses its 50% point.
Why is nonzero physically?
Transistor capacitances must charge/discharge, which takes real time.
Which end of the delay band does setup use, and why?
The max (), because "arrives in time?" is a worst-case/slowest question.
Which end does hold use, and why?
The min (), because "arrives too early?" is a best-case/fastest question.
Why is absent from the hold inequality?
Hold is a same-edge race; it doesn't depend on the period at all.
Why can't a slower clock fix a hold violation?
Hold doesn't involve ; you must add delay to the short path instead.
Zero-logic case (): what does hold reduce to?
— the most dangerous hold scenario.

Connections