The RETIMING_FORWARD
attribute
instructs the tool to move a register forward through logic closer to the driven
sequential elements. Unlike the retiming global setting, 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, the
RETIMING_FORWARD
step happens first, and the global
retiming can enhance that register to move further up 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 the amount of logic the register is allowed
to cross. Larger values allow the register to cross more logic. 0 would turn the
attribute off.