Multiply-Add and Multiply-Accumulate Implementation - 2024.1 English

Vivado Design Suite User Guide: Synthesis (UG901)

Document ID
Release Date
2024.1 English

During Multiply-Add and Multiply-Accumulate implementation:

  • Vivado synthesis can implement an inferred Multiply-Add or Multiply-Accumulate macro on DSP block resources.
  • Vivado synthesis attempts to take advantage of the pipelining capabilities of DSP blocks.
  • Vivado synthesis pulls up to:
    • Two register stages are present on the multiplication operands.
    • One register stage present after the multiplication.
    • One register stage found after the Adder, Subtractor, or Adder/Subtractor.
    • One register stage on the add/sub-selection signal.
    • One register stage on the Adder optional carry input.
  • Vivado synthesis can implement a Multiply Accumulate in a DSP block if its implementation requires only a single DSP resource.
  • If the macro exceeds the limits of a single DSP, Vivado synthesis does the following:
    • Processes it as two separate Multiplier and Accumulate macros.
    • Makes independent decisions on each macro.