3.4.6Sequential Circuits

Clock-to-Q delay

1,596 words7 min readdifficulty · medium

What it is

There are actually two numbers manufacturers give:


Why it matters: the timing equation (derived from scratch)

Imagine two flip-flops with a block of combinational logic between them, all sharing one clock.

HOW the signal travels each cycle:

  1. Clock edge hits FF1 → after tpcqt_{pcq}, FF1's output Q1Q_1 is valid.
  2. Q1Q_1 passes through combinational logic → after tpdt_{pd} (logic propagation delay), the input to FF2 is valid.
  3. FF2 needs its input stable before its own clock edge, by the setup time tsetupt_{setup}.

For the data to arrive in time for the next edge (one period TcT_c later):

tpcqFF1 launches+tpdlogic+tsetupFF2 catches    Tc\underbrace{t_{pcq}}_{\text{FF1 launches}} + \underbrace{t_{pd}}_{\text{logic}} + \underbrace{t_{setup}}_{\text{FF2 catches}} \;\le\; T_c

And the hold side (using the fast delay tccqt_{ccq}):

Figure — Clock-to-Q delay

Worked examples


Common mistakes


Recall Feynman: explain to a 12-year-old

Imagine a relay race. When the starting whistle blows (the clock edge), the runner (flip-flop) doesn't teleport — it takes a moment to react and start running. That reaction moment is the clock-to-Q delay. The whole lap (one clock tick) has to be long enough for this reaction, plus the running (logic), plus the next runner getting ready to grab the baton (setup). If the lap is too short, someone drops the baton — the circuit gives wrong answers.


Active recall

What is clock-to-Q delay tcqt_{cq}?
Time from the active clock edge until output QQ is valid and stable.
Which delay does the setup / max-frequency check use, min or max?
Maximum (tpcqt_{pcq}), the propagation clock-to-Q delay (worst case).
Which delay does the hold check use?
Minimum (tccqt_{ccq}), the contamination clock-to-Q delay (earliest Q changes).
Write the minimum clock period inequality.
Tctpcq+tpd+tsetupT_c \ge t_{pcq} + t_{pd} + t_{setup}.
Write the hold-time constraint.
tccq+tpd,mintholdt_{ccq} + t_{pd,\min} \ge t_{hold}.
Why doesn't Q change instantly on the clock edge?
Internal transistor capacitances must charge/discharge, which takes physical time.
How do you fix a hold violation?
Add delay (buffers) to the short combinational path so data arrives late enough.
tpcq=30t_{pcq}=30ps, tpd=100t_{pd}=100ps, tsetup=20t_{setup}=20ps → fmaxf_{max}?
1/150ps6.671/150\text{ps} \approx 6.67 GHz.
Relation between tccqt_{ccq} and tpcqt_{pcq}?
tccqtpcqt_{ccq} \le t_{pcq} (contamination ≤ propagation).

Connections

  • Setup and Hold Time — the other two timing parameters; tcqt_{cq} works with them.
  • Flip-Flops — the device whose output delay this describes.
  • Combinational Logic Delay — the tpdt_{pd} term in the equation.
  • Maximum Clock Frequency — directly derived using tcqt_{cq}.
  • Timing Analysis — the overall framework of setup/hold/clock-to-Q.
  • Clock Skew — modifies these equations when clock arrives at different times.

Concept Map

causes

starts timing

to valid Q

splits into

splits into

used in

used in

gives

inverts to

constraint

added in

Transistor capacitance

Clock-to-Q delay tcq

Active clock edge

Output Q stable

Contamination tccq min

Propagation tpcq max

Setup / max-freq check

Hold-time check

Tc >= tpcq + tpd + tsetup

Max frequency fmax

tccq + tpd min >= thold

Logic delay tpd

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, flip-flop ek chhota memory element hai. Jab clock ka edge aata hai (rising edge), toh output QQ turant nahi badalta — thoda time lagta hai kyunki andar ke transistors ko charge/discharge hona padta hai. Yeh jo chhota sa delay hai edge ke baad Q valid hone tak, usko hum clock-to-Q delay (tcqt_{cq}) bolte hain. Simple analogy: race mein whistle bajne ke baad runner ko react karne mein ek moment lagta hai.

Yeh important kyun hai? Kyunki ek clock period (TcT_c) itna bada hona chahiye ki signal launch ho (tpcqt_{pcq}), logic ke through travel kare (tpdt_{pd}), aur next flip-flop ke setup time se pehle stable ho jaye (tsetupt_{setup}). Isliye formula banta hai: Tctpcq+tpd+tsetupT_c \ge t_{pcq} + t_{pd} + t_{setup}. Agar period chhota hoga, data time pe nahi pahunchega aur circuit galat answer dega.

Ek twist yaad rakhna: setup/max-frequency check ke liye max delay (tpcqt_{pcq}) use karte hain, kyunki worst case dekhna hai. Lekin hold check ke liye min delay (tccqt_{ccq}) use karte hain, kyunki fastest path se data jaldi aake purani value corrupt kar sakta hai. Hold ka rule: tccq+tpd,mintholdt_{ccq} + t_{pd,\min} \ge t_{hold}. Agar hold violate ho, toh short path mein buffer daalke delay badha do — aur mast baat yeh hai ki isse frequency par koi asar nahi padta, kyunki frequency long path pe depend karti hai.

Bas yaad rakho: Q instant nahi badalta, real delay hota hai, aur yeh delay har timing calculation ka pehla term hai. Yahi 20% concept 80% timing problems solve kar dega.

Go deeper — visual, from zero

Test yourself — Sequential Circuits

Connections