An electronic automation system performs register retiming on a logic
design, which may be a logic design for a programmable logic integrated
circuit. Register retiming is a moving or rearranging of registers across
combinatorial logic in a design in order to improve a maximum operating
frequency or fmax. In one implementation, the system includes
machine-readable code, which may be stored on a computer-readable medium
such as a disk, executing on a computer. The system balances timing in
order to trade off delays between critical and noncritical paths.
Register retiming may make changes to a design at a gate level.