Coding Guidelines - 2025.2 English - UG901

Vivado Design Suite User Guide: Synthesis (UG901)

Document ID
UG901
Release Date
2025-12-05
Version
2025.2 English
  • Do not asynchronously set or reset registers.
    • Control set remapping becomes impossible.
    • Sequential functionality in device resources, such as block RAM components and DSP blocks, can be set or reset synchronously only.
    • If you use asynchronously set or reset registers, you cannot leverage device resources or they are configured sub-optimally.
  • Do not describe flip-flops with both a set and a reset.
    • No flip-flop primitives feature both a set and a reset, whether synchronous or asynchronous.
    • Flip-flop primitives featuring both a set and a reset can adversely affect area and performance.
  • Avoid operational set/reset logic whenever possible. There can be other, less expensive ways to achieve the desired effect, such as defining an initial content can use global reset circuitry.
  • Always describe the clock enable, set, and reset control inputs of flip-flop primitives as active-High. The resulting inverter logic penalizes circuit performance if they are described as active-Low.