The Vitis IDE System project contains components: platforms derived from Platform components, HLS components, AI Engine components, Application components. The System project refers to the components, defines and stores the linking configuration required to build the system, and defines and stores the packaging configuration required to package the system. In the figure below you can see the elements of the System project under the System Project Settings.
- Application Component
- Software applications that run on x86 CPU for data center acceleration, or on Arm® processors for embedded systems. The host program interacts with the AI Engine kernels and kernels in the PL region.
- HLS Component
- Programmable logic (PL) kernels that run on FPGA fabric written
with C/C++ code and synthesized into RTL code. HLS components are compiled for
implementation in the PL region of the target platform using the
v++ --compile --mode hls
command. - AI Engine Component
- Asynchronous dataflow graphs and kernels that run on AI Engines of specific
Versal
devices. AI Engine
components are compiled into libadf.a files using the
v++ --compile --mode aie
command. - Platform Component
- Defines a custom platform for use in embedded system designs. The acceleration flow also supports the inclusion of predefined platforms installed with the system, or downloaded separately. Custom platforms can be created as described in Packaging a Vitis Acceleration Platform.
- HW Linker Settings
- The hardware link process connects the PL kernels and/or AI Engine graph with the platform and builds the hardware system device binary. The hw_link/binary_container.cfg file defines the configuration settings for the linking process.
- Package Settings
- The Package settings define the files required to package the
finished system for use. The system package process uses the
v++ --package
command to gather the required files to configure and boot the system, to load and run the application, including the AI Engine graph and PL kernels. This builds the necessary package to run emulation and debug, or run your application on hardware.
Files for project settings are stored in the top directory.
- vitis-sys.json and vitis-comp.json
- This is the top level settings file for applications and components. It defines the components of the application, their source code and the compiler settings file.
- CMakeList.txt
- The Vitis IDE uses CMake to
manage the project. The top level CMakeList.txt defines the global build parameters and adds the
component level of the build settings CmakeList.txt as sub-modules. You can modify the settings in
CMakeList.txt
by editing content defined betweenSTART OF USER SETTINGS START
andEND OF USER SETTINGS
- Component/compile_commands.json
- The auto-generated file to enable IntelliSense support using Clang.
- Component/config.cfg
- The configuration file for PL kernel compilation. It is passed
to
v++
compiler.
Build output for each target is stored in its own folder under the ./build directory. For example,
- project/build/sw_emu
- aie_component/build/x86sim
The runtime configuration fle (xrt.ini)
is stored in <project>/<application_component>/runtime/<target>_xrt.ini.
Where <target>
is
hardware
emulation, or hardware.