Variable Precision DSP Blocks User Guide: Agilex™ 5 FPGAs and SoCs

ID 813968
Date 3/13/2025
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

4.1.5. Chainout Adder/Accumulator Feature

When chainout cascade is available, the chainout adder/accumulator can be enabled by using dynamic inputs “ACCUMULATE” and “LOADCONST” and parameters “use_chainadder” and “load_const_value”.

The chainout adder path is enabled by parameter “use_chainadder”. Full 64-bit “CHAININ” port must be connected to the “CHAINOUT” port in previous MAC when “use_chainadder” is set to true. All MACs being chained must use m18x18_systolic operation mode.

The accumulator path is dynamically controlled by the “ACCUMULATE” input. To disable the accumulator, “ACCUMULATE” can be tied to ground, otherwise the output register must be enabled.

The second stage accumulator can be enabled by parameter “enable_double_accum”. When it is enabled, the double accumulator register control is not exposed to the user and it always shares the same clock enable as the output_clken parameter setting.

The chainout adder/accumulator feature is applicable to m18x18_sumof2, m18x18_plus36, m18x18_systolic, m27x27 and m9x9_sumof6. The chainout adder is not available in m18x18_full mode and complex_mult mode.

When accumulator is disabled or it is in the loading stage, a preset constant can be added to the result. It is dynamically controlled by input “LOADCONST”. The constant can be 2N (N < 64), and N is set by parameter “load_const_value”. This operation can be used as biased rounding.

The following figure shows a fully-enabled chainout adder and accumulator. When both “ACCUMULATOR” and “LOADCONST” are enabled at the same time, the accumulator path will be selected instead of the load_const_value.

Figure 64. Chainout Adder/Accumulator