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.
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.
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 |