The techniques of programming, simulating, and compiling an AI Engine component are
described in
AI
Engine Tools and Flows User Guide (UG1076). Versal
AI Engine graph applications are written in C++ and
compiled using the v++ -c --mode aie
command, as
shown below. The command uses a configuration file command language as described in
v++ Mode AI Engine.
The compiled graph application can be linked with PL kernel object files (.xo), and the target platform as described in Linking the System.
Compiling for x86simulator
To build the AI Engine component for simulation with the x86simulator, the command-line is as follows:
v++ -c --mode aie --target x86sim --platform xilinx_vck190_base_202310_1 \
--config ./aiecompiler.cfg --work_dir ./aie_sys_design_aie/Work ./src/graph.cpp
The various arguments used are described below.
-
-c
: Specifies the compilation mode of thev++
command. This can be specified using-c
or--compile
-
--mode aie
: Launches the AI Engine compiler form of the Vitis compiler -
-target=x86sim
: Specifies the build target as either for simulation purposes (x86
) or for running on the physical device (hw
). The default ishw
. -
--platform=xilinx_vck190_base_202320_1
: Specifies the platform to use when compiling the graph application.Tip: AI Engine components require platforms using Versal AI Engine devices. -
--config <config_filename>
: Specify a Configuration file for use with the AI Engine compiler. An example config file is shown below. -
--work_dir
: Specifies the location of the output files created by thev++
compiler -
<source_file>
: Specify source files for the kernel and graph. Multiple source files can be specified.
The contents of a configuration file can vary, but the example uses the following commands in the aiecompiler.cfg file:
include=./aie_sys_design_aie
include=./aie_sys_design_common/src
include=./aie_sys_design_aie/src
[aie]
Xchess=main:darts.xargs=-nb
log-level=1
stacksize=1024
heapsize=1024
After compilation the AI Engine component can then be run through the x86simulator
using the following command:
x86simulator --pkg-dir=./Work --i=../../
Where --pkg-dir
specifies the Work
directory where compilation occurs, and the --i
specifies the input directory path for the simulator
Compiling for AI Engine Simulator / Hardware
To build the AI Engine component for simulation with the aiesimulator
, the command-line is as follows:
v++ -c --mode aie --target hw --platform xilinx_vck190_base_202310_1
--config ./aiecompiler.cfg --work_dir ./aie_sys_design_aie/Work ./src/graph.cpp
x86simulator
and aiesimulator
builds. The AI Engine component can then be run through the aiesimulator
using the following command:
aiesimulator --pkg-dir=./Work --i=../..
The default output is an archive of the AI Engine graph application called libadf.a. Refer to the chapter on Compiling an AI Engine Graph Application in
AI
Engine Tools and Flows User Guide (UG1076) for additional information. The archive
file can be used by the v++ --link
command to
build a fixed platform of the integrated system design as described in the next
section.
Refer to Output Directories of the v++ Command to get an understanding of the location of various output files generated by the AI Engine compiler.