Gate-Level Pipelining Lab

Two paths meet at a merge. Each stage is one clocked gate/DFF. Pulses advance one stage per beat. Same stage count → same epoch → merge OK. Different counts → wrong epoch (logic error), even if both pulses “exist.”

Unbalanced
Clock beat
0
A depth
3
B depth (+pads)
1
Pads needed
2
Merge result
—
Fork → stages → merge (dots = pulses advancing each clock)
Beat A position B position A epoch @ merge B epoch @ merge Merge
Default is unbalanced (A=3, B=1). Click “Run to merge”, then add pads on B until depths match.

Path balancing: pads needed = |depth A − depth B| on the short path. Throughput can stay high (new wave each beat) while cycle latency equals stage depth — different metrics.