AIE Bare-Metal Emulation Test¶
This is simple AIE example to demonstrate Vitis Bare-Metal Emulation flow on versal platform.
KEY CONCEPTS: Building the Bare-Metal System
EXCLUDED PLATFORMS:
Samsung SmartSSD Computation Storage Drive
Samsung U.2 SmartSSD
All Embedded Zynq Platforms, i.e zc702, zcu102 etc
All NoDMA Platforms, i.e u50 nodma etc
DETAILS¶
The baremetal flow is used for emulation platform level basic testing i.e. to test different applications - DDR testing, LPDDR testing, AIE testing.
The generate-platform.sh script Vitis/Install/Path/bin/generate-platform.sh
reads the extensible XSA (exported from Vivado) and generates extensible platform (.xpfm) out of it.
In this example, /proj/xbuilds/2022.2_daily_latest/internal_platforms/xilinx_vck190_base_202210_1/xilinx_vck190_base_202210_1.xpfm
vck190 base extensible platform is used at v++ link to generate the fixed XSA. For more details, please refer Building a Bare-Metal System
Input from the user¶
The user needs to build PL XOs and libadf.a to be used at v++ link.
Users can also try pre-compiled XOs (fixed XO) and libadf.a (fixed libadf.a) based on their design. Make note to modify the connectivity file (system.cfg) based on the design.
In the Makefile, users can provide pre-compiled as
PL_O := <fixed XO>
andGRAPH_O := <fixed libadf.a>
The user needs to generate the fixed XSA from v++ link using extensible platform.
Steps to run the Bare-Metal Emulation Test¶
Build the fixed xsa using v++ link step as per extensible platform:
make fixed_xsa PLATFORM=/proj/xbuilds/2022.2_daily_latest/internal_platforms/xilinx_vck190_base_202210_1/xilinx_vck190_base_202210_1.xpfm
Build the BSP sources and libraries required for compilation of user application. Compile and link the user application to generate main.elf :
make baremetal_elf
Note: Users can modify sw/main.cpp file and incrementally compile it to build the main.elf as per your user application.
Generate the package directory:
make package
Run the user application:
./package.hw_emu/launch_hw_emu.sh
To run all the steps at once, use
make run TARGET=hw_emu PLATFORM=/proj/xbuilds/2022.2_daily_latest/internal_platforms/xilinx_vck190_base_202210_1/xilinx_vck190_base_202210_1.xpfm
For more comprehensive documentation, click here.