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 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 then Vivado synthesis does the following:
°Processes it as two separate Multiplier and Accumulate macros.
°Makes independent decisions on each macro.