This post provides a clear, step-by-step guide for generating a Vitis 2023.2 platform specifically for the Ultra96-V2 FPGA board.
What do we need for this post
Hardware
- Ultra96-V2 Zynq UltraScale+ ZU3EG Development Board (AES-ULTRA96-V2-G)
- USB to JTAG/UART Pod for Ultra96 ARM-Based Xilinx Zynq UltraScale+ MPSoC Development (BoardAES-ACC-U96-JTAG)
- USB cable
Software
- Ubuntu Linux 2022.04
- AMD Vitis 2023.2
- AMD Petalinux 2023.2
- Ultra96-V2 BSP file (u96v2_sbc_base_2023_2.bsp)
This post assumes you have installed Ubuntu Linux 2022.2, AMD Vitis 2023.2, and AMD Petalinux 2023.2.
The following steps will be taken to generate the Ultra96-V2 Vitis 2023.2 Platform for Acceleration Applications.
- Download the BSP file from the Avnet website.
- Create Petalinux project
- Create the Vitis platform
- Test the platform
Download the BSP file
- To download the BSP file, connect to the Avent website
- Click on the “Reference Designs” tab
- Under the “Vitis PetaLinux Platform PreBuilt Example” subheading, click on the “Ultra96-V2 – Vitis PetaLinux Platform 2020+ Vector Add (Sharepoint site) link. (shown in the figure below)

- Click on the 2023.2 folder on the SharePoint site, then click on BSP.
- Finally, download the
u96v2_sbc_base_2023_2.bspfile.
This BSP includes reference designs for the Ultra96-V2 board. It provides all the necessary design and configuration files, as well as pre-built and tested hardware and software images. These resources are ready for download onto your board or can be customized for your own project.

Create Petalinux Project
- On Ubuntu Linux, create a folder named ultra96v2, then inside it, create another folder named 2023.2.
mkdir ultra96v2cd ultra96v2mkdir 2023.2
cd 2023.2
- Copy the downloaded file named
u96v2_sbc_base_2023_2.bspinto the folder you created.
- To create a Petalinux project based on the BSP file, run
petalinux-createthe command on the command console. Before running this command, ensure you run thesettings.shfile under the install Petalinux folder.source /tools/Xilinx/PetaLinux/2023.2/settings.shpetalinux-create -t project -s ./u96v2_sbc_base_2023_2.bsp
After running these commands, you should see the folderu96v2_sbc_base_2023_2, which contains the Petalinux project files.
- Change the current folder to
u96v2_sbc_base_2023_2cd u96v2_sbc_base_2023_2 - Then run the following command.
petalinux-config
This command brings thePetaLinux System Configurationwindows. Accept the current configuration by choosing the Exit button.
- If you want to configure the kernel, you can run
petalinux-config -c kernelcommand.
Run the command, then accept the default configuration and click the “Exit"button. Note that this step may take some time.
- To enable the package group for Vitis acceleration flow, the following steps should be done.
- Run the following command.
petalinux-config -c rootfs - Go to Petalinux Package Groups -> packagegroup-petalinux-vitis-acceleration-essential and enable packagegroup-petalinux-vitis-acceleration-essential.
Also, enable packagegroup-petalinux-vitis-acceleration-essential-dev that enables the sysroot support. Then press “Exit” twice to get to the rootfs configuration window.
- To install additional packages later, we need to enable Package Management. In the root filesystem (rootfs) configuration window, navigate to the “
Image Features” section and enable the options for “package-management” and “debug_tweaks.” After making these changes, click “Exit” twice and select “Yes” to save your modifications.
- Run the following command.
- Now, after finishing the configuration, we should build the Petalinux project. So, run the following command.
petalinux-build
Compiling the entire project may take a long time, and you may see several warning messages.
- After finishing the build process, run the following command to create a sysroot self-installer for the target Linux system.
petalinux-build --sdk
Note that this process also takes some time.
This command generatessysrootpackagesdk.shlocated in/images/linux directory.
You can extract this file later when the Vitis platform is created.
Vitis Platform
We now have all the necessary hardware and software components to build the Vitis Platform. Before we start, organising the components into a folder is a good idea.
First, navigate to the designated folder and create a new folder named “components.” Inside the “components” folder, create two additional folders: one called “software” and the other named “hardware.”
- Copy the following file from the
..../ultra96v2/2023.2/u96v2_sbc_base_2023_2/images/linuxfolder into the createdlinuxfolder.fsbl.elf, pmufw.elf, bl31.elf, u-boot.elf, system.dtb, boot.scr, Image, rootfs.ext4
- Run the generated
sdk.shto extract the SDK files into thesysrootfolder inside thelinuxdirectory.
From thelinuxfolder, this would be the command../../u96v2_sbc_base_2023_2/images/linux/sdk.sh -d ./
- Copy the hardware
u96v2_sbc_base.xsafile into the created hardware folder. The file is located in..../u96v2_sbc_base_2023_2/hardware/u96v2_sbc_base_2023_2folder.
Now, we can run the Vitis to create the platform.
- Create the folder named
vitis-platformunder the2023directory. Then, go to the created folder and run thevitis -w .command. Before that, ensure you have already run thesettings64.shfile under the/tools/Xilinx/Vitis/2023.2folder.mkdir vitis-platform
cd vitis-platform/
source /tools/Xilinx/Vitis/2023.2/settings64.sh
vitis -w .
- After running Vitis, select the Platform option under File->New Component.

- In the “Create Platform Component” window, type
u96v2_sbc_base_2023_2-vitis-platformas the component name. Then press “Next”.
- On the next page, select the
xsafile that we copied into thehardwarefolder. Then press “Next”.
- In the next window, select
Linuxas the Operating System. Then press “Next”. Finally, press “Finish”. It takes a few seconds to create the platform files.
- Click on the Linux On
psu_cortex53link. Then, generate the Bif file by clicking on the icon next to Browse under the “Bit File” option. After that, click on the browse link in thePre-Built image Directoryline and choose thelinxfolder we created earlier.
- Finally, build the project by clicking the
Buildlink on the left side window.
- After building the platform project, we are ready to implement an application.
Test the platform
We use one of the example applications provided by Vitis to test our generated platform. For this purpose, follow the steps below.
- Under the View menu, click on the “Examples” option. Then select the “Simple Vector Addition” example and click on “Create Application from Template” on the right.

- Accept the default value on the first page of the “Create System Project” window. Then press “Next”.

- Select the
u96v2_sbc_base_2023_2-vitis-platfromoption and press “Next”.
- In the next window, select the
Imagefile as the “Kernel Image”. The file is located in thelinuxfolder we created earlier. Also, select the rootfs.ext4 as the “Root FS” from the same folder. Finally, point the “Sysroot folder” to thecortexa72-cortexa53-xilinx-linuxfolder undersysrootsin thelinuxfolder we created earlier. Then, press “Next”. After that, press “Finish”.
- In the generated application project, click “Build All” under “Hardwar” in the “FLOW” tab on the left. And press OK. Building the project and generating the files takes a while.

- After building the project successfully, in a terminal, go to the
vadd/build/hw/package/packagepath under the project location. And flash thesd_card.imgfile into an SD card. You can use balenaEtcher software for that.
- Connect the board to your computer using a USB cable. Then, boot the board with the programmed SD card.
After booting, log in using the root username. The password isroot.
Go to the/run/media/mmcblk0p1folder. Then, run this command../vadd_host binary_container_1.xclbin
You should get the TEST PASSED message. This finishes our test process.