AI Engine Application - 2023.1 English

Vitis Tutorials: AI Engine Development

Document ID
Release Date
2023.1 English

Review the test_bf_3x.cpp AI Engine application. Note that all the input and output PLIO ports for the TEST_BF graph are instantiated. Next, instantiate the virtual platform and connect the virtual platform’s src and sink arrays to PLIOs.

Each input PLIO port has a *.txt file relative to the current directory that sources the input platform data. Each output PLIO port specifies a .*txt file to sink the output platform data. The beamforming kernels expect cint16 data inputs, so the input data *.txt files are organized as four columns per row where each column represents a 16-bit real or imaginary value.

Lastly, the AI Engine application uses the Run Time Graph Control API with an infinite graph execution. The graph dut is declared from the TEST_BF graph class. In the main function, this graph object is initialized and run. The init() method loads the graph to the AI Engine array at specific AI Engine tiles. This includes loading the ELF binaries for each AI Engine, configuring the stream switching for routing, and configuring the DMAs for I/O. It leaves the processors in a disabled state. The run() method starts the graph execution by enabling the processors. This graph runs for one iteration. The run-time event API for performance profiling is used to calculate the throughput of two of the output ports.