Retiming moves registers across combinational logic to balance stage delays. It keeps the steady-state output stream and per-path latency.
Reset-cycle outputs and the initial-state flush can still change and must be rechecked. Pipelining adds registers to split long paths, which adds latency.
Lesson | What it covers |
|---|---|
Forward and backward register moves across gates and fanout, with a balanced pair. | |
Why latency stays fixed while throughput rises, and when the register count changes. | |
Reset-cycle differences after a move and what equivalence can still show. | |
Cutting a 12 ns path into three stages with valid bits and a testbench. | |
A small Python stage-graph model plus a sketch of the synthesis tool flow. |
The clock period changed from 8 ns to 6 ns. Latency did not: each input-to-output path still crosses one register.