Creating the System Project - 2024.1 English

Vitis Tutorials: Getting Started

Document ID
Release Date
2024.1 English

The System project is where the different components that you have built so far are integrated into a single system as described in Creating a System Project for Heterogeneous Computing. The HLS component and the Application component are integrated into the system project using the following steps.

  1. From the main menu select File > New Component > System Project

This opens the Create System Project wizard on the Name and Location page.

  1. Enter the Component name as system_project (default), enter the Component location as the workspace (default), and click Next.

This opens the Select Platform page.

  1. On the Select Part page select the xilinx_zcu102_base_202310_1 platform and click Next to open the Embedded Component Paths page.

The Embedded Component Paths page lets you specify the path to the Sysroot, RootFS, and Image for the embedded processor platform as described at Installing Embedded Platforms. Enter the following choices and click Next to proceed:

Kernel Image: <path-to-common-files>/Image
Root FS: <path-to-common-files>/rootfs.ext4
Sysroot: <path-to-common-files>/sysroots/cortexa72-cortexa53-xilinx-linux

TIP: You can enable the Update Workspace Preference checkbox to add the settings to any component or project that uses the specified platform as explained in Embedded Component Paths.

  1. Review the Summary page and click Finish to create the defined System project.

The System project vitis-sys.json file is opened in the center editor, and the project is added to the Vitis Components Explorer.

Unified IDE - System Project Binary

After creating the System project, you need to configure it. You must define which of the components in the current workspace should be added to the System. Then you can define the hardware linking options used by the v++ --link command, and the packaging options used by the v++ --package command to build the system. Take a moment to examine the different sections of the System, Hardware Linker Settings, Package Settings, and Components. These are described in greater detail in Creating a System Project for Heterogeneous Computing.

  1. Scroll down in the vitis-sys.json to the Components section at the bottom, and select the Add Existing Component link to add the HLS component to the System.

Unified IDE - System Project Binary

In this project there is only one HLS component, so it is preselected (as shown with a blue shaded box). The HLS component is added to a binary container that contains the elements of the system that will be linked together in the xclbin file.

  1. Edit the Container Name field to change it to vadd. This will produce a device binary called vadd.xclbin, which is what the host application is programmed to use.

  2. Click OK to continue.

Tip: The tool checks to ensure the various elements added to the System project are compatible. It will not add elements designated for use on different platforms into a single system.

  1. Repeat these steps to add the Application component. Again, it is preselected so click OK to continue. Note that the Application component is added to the System project, but not to a binary container.

In the Hardware Linker Settings section, there is also a command to Add Pre-Built Binary in the Binary Containers section that lets you add a previously built kernel.xo file such as from an RTL kernel, or a libadf.a of an existing AI Engine graph application to the System project.

Unified IDE - HW-Link

For now, expand the vadd entry in the binary containers table and at the bottom of the vadd

  1. Select the hw_link/vadd-link.cfg to open the Config File for the binary container.

These are commands that determine how the device binary will be generated. The Config File Editor opens and displays the V++ linker settings. The config file commands are described in v++ Command. Look through the available settings. In the lower half of the Config File Editor is a Kernel Data section that lets you specify the number of CUs for each kernels, or the naming convention applied. You can also enable profiling options for when the device is run.

  1. In the Config File Editor select the Source Editor command to see the text form of the Config File Editor. Using the text form you can edit the config file directly.

  2. Close the Config File Editor and return to the System project.

  3. Click the package/package.cfg link to open the Package Settings config file. The packaging process creates the packaged SD card directory and contains everything needed to boot Linux and run your generated application and device binary.

  4. Examine the settings and close the file when you are finished.