Before you can find a critical path, you must be fluent in the words and symbols the parent note throws at you: flip-flop, clock edge, propagation delay, tcq, tlogic, tsu, th, T, skew, slack, arrival time, DAG. We build each one from a picture. Nothing is assumed.
Look at the top of the first figure. The blue trace is the clock. Two rising edges are marked; the horizontal gap between them is exactly T. Everything in this chapter is a race to finish work inside one such gap.
Think of it as a camera: D is the scene, the clock edge is the shutter click, Q is the developed photo that stays fixed on the wall until you click again.
The parent note names two roles a flip-flop can play:
In the second figure, the left box is the launch FF, the right box is the capture FF, and the cloud between them is the logic the data must cross. This launch→logic→capture trio is the unit of everything — a single "hop".
Picture a domino: you push the first one now, but the last one falls a moment later. That lag is delay. Every gate in the logic cloud adds its own lag.
A flip-flop is not a perfect instant camera. It has three tiny timing quirks the parent note leans on constantly.
Look at the third figure: on the clock edge it shows the "no-change" window opening tsubefore the edge and closing thafter it, plus the tcq lag before Q moves.
Now the parent's key inequality stops being magic. Trace one hop against the clock period, exactly as drawn in the fourth figure. Because we ask "did data arrive in time?", we use the slowest logic delay tlogicmax.
Rising edge at the launch FF (start of the race).
Wait tcq — new data leaves Q.
Wait tlogicmax — data crawls across the logic cloud along its slowest path (this is the summed max path delay defined in §3).
Data must now be quiet for tsubefore the next edge, which arrives T later.
That is literally the picture read left to right. The parent's whole page is built on this one line — see Static Timing Analysis (STA) for how a tool checks it on millions of paths, and Maximum Clock Frequency for turning T into fmax=1/T.
Setup guards against data being too late. There is an opposite failure: new data racing through so fast that it reaches the capture FF's Dbefore that same edge has finished storing the old value. That corrupts the capture — a hold violation.
The key insight: setup compares against the next edge (T later), but hold compares against the same edge — both flip-flops react to edge N. There is no T in a hold check.
Trace the fifth figure: at edge N the launch FF fires; the new value reaches the capture D after tcqmin+tlogicmin. For a safe capture, the old data must still be held for th after the edge — so the new data must arrive no earlier thanth:
hold check compares against
the SAME edge (no T), because both FFs fire on edge N
hold uses which delays
minimum (tcqmin, tlogicmin) — the fastest path is the danger
fixing a hold violation
add delay to slow the fast path (opposite of setup fixes)
If the capture clock is late (positive skew), the capture deadline moves later — you gain time for setup, but you lose margin for hold (the capture FF is still holding old data even longer relative to the launch FF's early launch):
The +tskew sits on the "available" side because a late capture edge is extra breathing room for setup. Compare the hold formula in §6, where +tskew sits on the demand side — that is exactly the "sign flip" the parent warns about: the same positive skew helps setup and hurts hold.
positive tskew means
capture edge is later than launch edge (tskew=tcap−tlaunch)
Why acyclic matters: to add up delays along paths you must have a clear "start" and "end". A loop would have no finish line. Flip-flops provide the cuts, so every hop is a tidy directed path with a launch and a capture end. The forward "max" pass computes AT; the backward "min" pass computes RAT.