Options - 2022.1 English

AI Engine Kernel Coding Best Practices Guide (UG1079)

Document ID
Release Date
2022.1 English

There are rich sets of MAC intrinsic with additional operations like pre-adding, pre-subtraction, and conjugation. The naming convention for the vector MAC intrinsics is as follows. Optional characteristics are shown in [] and mandatory ones in {}.


Every operation will either be a multiplication, initializing an accumulator, or a MAC operation which accumulates to a running accumulator of 2, 4, 8, or 16 lanes.

Denotes that an accumulator with 80-bit lanes is used for the operation.
sym and antisym
Indicates the use of pre-adding and pre-subtraction respectively.
max, min, and maxdiff
Indicates the pre-selection of lanes in the xbuff based on the maximum, minimum, or maximum difference value.
Indicates the pre-computation of the absolute value in the xbuff.
Used for partial pre-adding and pre-subtraction (separate selection for the data input from X for the final column).
Used for unit center optimization for certain types of FIR filters. Refer to the Versal ACAP AI Engine Intrinsics Documentation (UG1078) for more information.
n and c
Used to indicate that the complex conjugate will be used for one of the input buffers with complex values:
The only complex input buffer will be conjugated.
Complex conjugate of X (or XY if pre-adding is used) buffer.
Complex conjugate of Z buffer.
Complex conjugate of both X (or XY if pre-adding is used) and Z buffers.
Indicates that the complex conjugate of Z will be used when multiplying the data input from Y.