Agilex™ 7 FPGAs and SoCs Device Overview

ID 683458
Date 4/01/2024
Document Table of Contents

1.15. Variable Precision DSP

The Intel® Agilex™ FPGAs’ DSP blocks are based upon the variable precision DSP Architecture used in Intel’s previous generation devices. They feature hard fixed point and IEEE-754 compliant floating point capability which includes single-precision (32-bit arithmetic) FP32 floating point mode. New to Intel® Agilex™ FPGAs is the support for half-precision (16-bit arithmetic) FP16 floating point modes and BFLOAT16 floating-point format. The number of 9x9 multipliers have also increased, with two 9x9 multipliers for every one 18x19 multiplier, as compared to the previous generation of FPGAs.

The DSP blocks can be configured to support signal processing with precision ranging from 9x9 up to 54x54. A pipeline register has been added to increase the maximum operating frequency of the DSP block and reduce power consumption. In addition, dynamic switching of inputs to the multiplier is available through scanin and chainout features.

Figure 9. Low Precision Fixed Point Mode
Figure 10. Standard Precision Fixed Point Mode
Figure 11. High Precision Fixed Point Mode
Figure 12. Half Precision Floating Point Arithmetic 16-bit
Figure 13. Single Precision Floating Point Arithmetic 32-bit

Each DSP block can be independently configured at compile time as either quad 9x9, dual 18x19 or a single 27x27 multiply accumulate. With a dedicated 64-bit cascade bus, multiple variable precision DSP blocks can be cascaded to implement even higher precision DSP functions efficiently.

In floating point mode, each DSP block provides either single precision or half precision floating point (including FP16 and BFLOAT16) multiplier and adder. Floating point additions, multiplications, mult-adds and mult-accumulates are supported.

The following table shows how different precisions are accommodated within a DSP block, or by utilizing multiple blocks.

Table 23.   Variable Precision DSP Block Configuration
Multiplier Size DSP Block Resources Expected Usage
9x9 bits 1/4 of Variable Precision DSP Block Low precision fixed point
18x19 bits 1/2 of Variable Precision DSP Block Medium precision fixed point
27x27 bits 1 Variable Precision DSP Block High precision fixed point
19x36 bits 1 Variable Precision DSP Block with external adder Fixed point FFT
36x36 bits 2 Variable Precision DSP Blocks with external adder Very high precision fixed point
54x54 bits 4 Variable Precision DSP Blocks with external adder Double precision fixed point
Half Precision floating Point 1 variable precision DSP block (contains adder for two FP16 multipliers plus an accumulator) Half Precision Floating point
Single Precision floating point 1 variable precision DSP block (contains one FP32 multipliers with an accumulator) Single Precision Floating point