3.5.10 · D4HDL & Digital Design Flow

Exercises — Critical path identification

2,379 words11 min readBack to topic

See Setup and Hold Time, Static Timing Analysis (STA), Maximum Clock Frequency and Clock Skew and Jitter if any of these words feels shaky.


Level 1 — Recognition

Recall Solution L1.1

WHAT to do: critical path = the one with the largest summed delay, never the most gates. Sum each: , , ns. Answer: Path R is critical, with 2 gates — it beats Path Q which has twice as many gates. Delay is about accumulated time, not node count.

Recall Solution L1.2

Slack = required arrival − actual arrival. Negative slack means data arrives later than the deadline → the path FAILS (setup violation). Only slack passes.


Level 2 — Application

Recall Solution L2.1

WHY: we add the fixed overheads ( before the logic, after it) to the worst logic delay, because all three must fit inside one period.

Recall Solution L2.2

Positive slack ⇒ PASSES with 2 ns to spare. The ns of skew helped, because a later capture edge pushes the deadline out.


Level 3 — Analysis

Recall Solution L3.1

(a) Compare summed delays: ns → Path Y is critical. (b) ns → MHz. (c) At ns, Path X slack ns. WHY it matters: the critical path (Y) has zero slack at ; every other path has positive slack. That is literally what "critical" means — the tightest one.

Figure — Critical path identification
Recall Solution L3.2

WHAT rule: a gate's output cannot settle until its last input has settled. So Look at the red input in the figure — it is the last to arrive at ns, so it decides everything. This is exactly the max-of-inputs rule that makes a slowest path emerge inside Static Timing Analysis (STA).

Figure — Critical path identification
Recall Solution L3.3

Forward pass, taking max at every merge:

Arrival at E = 8 ns. Two paths tie at 8: () and (). Both are co-critical — a real STA tool would report both. Trace back along the max-delay predecessor to reconstruct them (the yellow arrows in the figure).


Level 4 — Synthesis

Recall Solution L4.1

(a) Required per path ns ns → FAILS. Slack ns. (b) Split into two halves of ns each. Per stage: ns ns → each half PASSES (slack ns). (c) With equal stages, each does ns of logic. We need So stages suffice. WHY: Pipelining converts one long path into several short ones; the fixed overhead ( ns) is paid once per stage, so you can't split forever for free.

Recall Solution L4.2

First, the period: ns. From : WHY: this is your logic budget — any path exceeding 4.5 ns of gate delay breaks the 200 MHz goal.


Level 5 — Mastery

Recall Solution L5.1

(a) By raw delay, Path N (8.5 ns) > Path M (8.0 ns). (b) Slack :

  • Path M: ns.
  • Path N: ns. (c) Worst slack = Path M ( ns) — even though it has the smaller logic delay! (d) LESSON: the critical path is defined by minimum slack, not maximum delay. Negative/early skew stole 1 ns of budget from M, making the "shorter" path the real bottleneck. When skew differs per path, always rank by slack. (See Clock Skew and Jitter.)
Recall Solution L5.2

Compare the new slacks: M , N , O . The smallest is Path O ( ns)Path O is now the critical path. WHY / lesson: fixing the old bottleneck promotes the next-slowest path to critical. Timing closure is iterative — you re-run Static Timing Analysis (STA) after every change until the worst slack is everywhere. This ties directly into the Synchronous Design Flow.

Recall Solution L5.3

(a) ns. Current requirement ns ns → FAILS. Slack ns. (b) Logic budget ns, so you must cut from 6 ns down to ns — a reduction of ns. Two techniques:

  1. Gate sizing / buffering — use faster (larger-drive) gates to cut per-gate delay (see Propagation Delay and Gate Sizing).
  2. Pipelining — insert a register so each stage does ns of logic (see Pipelining). Either way, re-run STA afterward to confirm no new path became critical.