The RETIMING_BACKWARD
attribute instructs the
tool to move a register backward through logic closer to the sequential driving
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_BACKWARD
step happens first, and the global retiming can enhance
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 would turn the attribute
off.