Multirate Examples - 2023.2 English

Vitis Tutorials: AI Engine

Document ID
XD100
Release Date
2023-11-29
Version
2023.2 English

All examples use three kernels:

  • UpConv_7_5: Up-conversion 7/5, which is a passthrough with data extrapolation at the end.

  • DownConv_5_7: Down-conversion which is a data truncation.

  • Subtract: This kernel takes two inputs and subtracts them. This is a merge show case.

All kernels have the same input frame length (InputSize) which brings the compiler to take decisions in terms of number of calls for each kernel to harmonize the number of data produced and consumed on the whole system. The frame length can be seen in the system_settings.h file:

#define BaseSize (5*7)
// 8 int32 --> 256 bits
#define VECTOR_LENGTH 8
#define InputSize (2*VECTOR_LENGTH*BaseSize)
#define NIterations 4

Various parameters appear here:

  • BaseSize: As the input size has to be divided by 5 or 7, depending on whether it is an up-conversion or a down-conversion, this BaseSize is necessary to handle only integer results.

  • VECTOR_LENGTH: Kernels are optimized to use only vectors that are 256 bits in size.

  • InputSize: Size of the input frame.

  • NIterations: Number of iterations of the entire system.

No image!