Create a new application by clicking File → New Component → Application.
Set the name for the application to
A-to-Z_app
and click Next.Select AIE_A-to-Z_pfm_vck190 as the platform and click Next.
Select the A72_0 processor domain (
standalone_psv_cortexa72_0
), and click Next and then Finish.Right-click the
src
folder under the A-to-Z_app project, and click Import → Files.Import the
aie_control.cpp
file from the AI Engine application project (simple_application/build/hw/Work/ps/c_rts/aie_control.cpp
).Import
main.cpp
from thesrc
folder from the git repository.Go through the
main.cpp
file. You can see that the code is initializing the input data and the memory space for the output data. One thing to note is the use of the.init()
and.run()
APIs to control the AI Engine.printf("Starting AIE Graph\n"); printf("Graph Initialization\n"); mygraph.init(); printf("Done \n"); printf("- \n"); printf("Running Graph for 4 iterations\n"); mygraph.run(4);
There are two options to enable an AI Engine graph from a system:
Enable the graph in the PDI. This means that the graph will be started during BOOT and will run forever.
Enable the AI Engine graph from the PS program using the
<graph>.init()
and<graph>.run()
APIs. This is what you are using in this case.
Under the A-to-Z_app component open UserConfig.cmake under Settings. In the Directories section add the following directories under Include Paths (-I).
<workspace>/simple_aie_application/src
$ENV{XILINX_VITIS}/aietools/include
Still in the UserConfig.cmake file, in the Libraries section add
adf_api
under Libraries (-l)$ENV{XILINX_VITIS}/aietools/lib/aarchnone64.o
under Library search path (-L)
Modify the Linker Script to increase the heap size for AIE library.
In the Project Explorer, expand the A-to-z_app component.
In the src directory, double-click
lscript.ld
to open the linker script for this project.In the linker script modify the Heap size to
0x100000
(1MB).
Build the A72 PS component (
A-to-Z_app
).