The RETIMING_FORWARD attribute
instructs the tool to move a register forward through logic closer to the driven
sequential elements. This attribute is not timing-driven and works regardless of whether
the retiming global setting is active or if there are even timing constraints. If the
global retiming setting is active, first the RETIMING_FORWARD step executes, and then global retiming enhances that
register to move further back the chain. However, it does not interfere with the
attribute and moves the register back to the original location.
DONT_TOUCH/MARK_DEBUG attributes, cells with timing exceptions (false_path, multicycle_path), and user-instantiated cells
block this attribute.The RETIMING_FORWARD attribute takes
an integer as a value. This value describes how much logic the register can cross.
Larger values allow the register to cross more logic. 0 turns the attribute off.