AI Engine Design Example

AI Engine Programming: A Kahn Process Network Evolution (WP552)

Document ID
WP552
Release Date
2023-07-20
Revision
1.0 English

This example design uses four AI Engine kernels:

  • Vector addition (vadd)
  • Add constant value (addConstant)
  • Copy the add constant to the output (copy_in_out)
  • FIR filter (fir_32)

This example uses two versions of the FIR filter (fir_32), one scalar code, and another vector code. This helps to showcase the importance of the kernel performance and the benefit of using the data flow programming in the design (parallel computation).

Figure 1. AI Engine Kernels

The following figure shows the actual implementation of the AI Engine ADF in the Vitis analyzer tool. In this figure, the boxes with the lightning symbols represent the kernels. The buffers are represented as bufx and bufxd (ping and pong buffers), for example, buf0 (ping) and buf0d (pong). The input and output ports are represented as PLIO_In1, PLIO_In2, PLIO_Out1, and PLIO_Out2, respectively.

Figure 2. Graph View in Vitis Analyzer Tool

The next sections illustrate how the design is executed based on the KPN concept.