Prevent Register Optimizations

The following options allow you to prevent the Compiler from merging, duplicating, or retiming registers during logic synthesis. Use these options to prevent unwanted changes to registers through synthesis.

Optimization mode

Description

Prevent register merging

Prevents automatic removal of identical registers. When this option is off, if two registers generate the same logic, one register is eliminated and the remaining register fans-out to the deleted register's destinations. This option is useful if you wish to prevent the Compiler from removing intentionally duplicate registers.

Prevent register duplication

Prevents automatic duplication of registers to improve design performance. When this option is turned off, the Compiler may duplicate a register and move a portion of its fan-out to the new node. This may improve routability and/or reduce the total routing wire required to route a net with many fan-outs.

Prevent register retiming

Prevents automatic retiming of registers to improve design performance. When this option is turned off, the Compiler may perform optimizations that move combinational logic across register boundaries, maintaining the overall logic of the design component but also balancing the data path delays between each register. The Compiler does not retime registers automatically unless a performance-focused optimization mode, or other specialized compiler setting is also enabled.