RETIMING_FORWARD - 2024.1 English

Vivado Design Suite User Guide: Synthesis (UG901)

Document ID
Release Date
2024.1 English

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.

Note: Cells with 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.