Critical Path
This datapath is a chain of logic blocks, each with a delay in nanoseconds. Drop your pipeline registers into the gaps to split it into stages. The clock can only run as fast as the slowest stage, so balance the stages to make that critical path as short as you can. Hit par, the true optimum, to close timing.
Critical Path #? · par ? ns · registers 0/3
Critical path: ? ns
How it works
Pipelining trades latency for throughput: inserting registers cuts a long combinational path into shorter stages, and the clock speeds up to match the slowest one. The art is balancing. A register spent on an already-short stage does nothing, while the longest stage alone sets your Fmax. Real synthesis tools do automatic retiming to chase exactly this. Learn the ideas for real in the hands-on course.
More at Logic Games.