Maximum clock frequency from propagation, logic and setup time
BlinkNBuild practice problem · GATE standard, authored and verified in-house
In the synchronous circuit below, data launched by flip-flop FF1 propagates through a block of combinational logic and is captured by FF2 on the next rising edge of the same clock.
- Clock-to-Q propagation delay, $t_{cq} = 2\ \text{ns}$
- Worst-case combinational delay, $t_{logic} = 6\ \text{ns}$
- Setup time, $t_{su} = 1\ \text{ns}$
- Clock skew between FF1 and FF2 is zero
The maximum clock frequency, in MHz, is ________.
Show the step-by-step derivation
Step-by-step derivation
- Data is launched by the rising edge at $t = 0$ and must be stable at FF2's D input a setup time before the next rising edge at $t = T$. The setup constraint is therefore $$t_{cq} + t_{logic} + t_{su} \le T.$$
- With zero skew there is no correction term, so substituting directly: $$2 + 6 + 1 = 9\ \text{ns} \le T.$$
- The minimum legal period is $T_{min} = 9\ \text{ns}$, and the maximum frequency is its reciprocal: $$f_{max} = \frac{1}{T_{min}} = \frac{1}{9 \times 10^{-9}\ \text{s}}.$$
- Evaluating: $$f_{max} = 1.1111 \times 10^{8}\ \text{Hz} = \mathbf{111.11\ MHz}.$$
- Sanity check on the units: nanoseconds and megahertz are reciprocal at $1\ \text{ns} \leftrightarrow 1000\ \text{MHz}$, so $9\ \text{ns}$ must give $1000/9 = 111.1\ \text{MHz}$. ✓
The idea behind this question
The clock period must leave time for data to leave the launching flip-flop ($t_{cq}$), cross the logic ($t_{logic}$) and arrive a setup time early at the capturing flip-flop. That sum is the shortest legal period, and its reciprocal is the maximum frequency. Hold is a different check, between the same clock edge at both flip-flops, so it never limits frequency.
Try a variation
With $t_{cq} = 1.5$ ns, $t_{logic} = 4.5$ ns and $t_{su} = 0.5$ ns, and zero skew, what is $f_{max}$ in MHz?
Show the answer
Answer: $153.85$ MHz
$T_{min} = 1.5 + 4.5 + 0.5 = 6.5$ ns, and $1000/6.5 = 153.85$ MHz.
Other mistakes to avoid
- Using the best-case logic delay instead of the worst case: setup must hold for the slowest path.
- Forgetting to convert: a period in nanoseconds gives a frequency in GHz when inverted, so multiply by 1000 for MHz.