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. |