The RETIMING_BACKWARD attribute instructs the
tool to move a register backward through logic closer to the sequential driving
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_BACKWARD
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_BACKWARD 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 turns the attribute off.