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