Step 3: Configure the Hardware Linking Project - 2023.2 English

Vitis Tutorials: AI Engine (XD100)

Document ID
XD100
Release Date
2024-03-05
Version
2023.2 English

Now that you have imported the kernels, you need to tell the Vitis linker how to connect everything together.

  1. Create a new System Project component by clicking File > New Component > System Project

  2. Call this system component simple_aie_application_system_project and click Next

  3. In the Select Platform Page:

  • If you have created the platform following step 1, select the base_pfm_vck190 platform you just created.

  • If you have skipped step 1, select the VCK190 base platform (xilinx_vck190_base_002320_1) which is part of the Vitis installation.

  1. Skip the Embedded Component Paths page (click Next). This page is used for system running Linux. Our system will be Baremetal.

  2. Click Finish

  3. Open the settings file called vitis-sys.json under simple_aie_application_system_project > Settings and click on Add Existing Components in the Components section at the bottom of the file. Click HLS and select the mm2s and s2mm components.

    missing image

  4. Click again on Add Existing Components in the Components section at the bottom of the file. Click HLS and select the mm2s and s2mm components.

  5. Now you need to tell the Vitis compiler about the connectivity of the system. This step is done using a configuration file. Still in the settings file vitis-sys.json, under Hardware Link Settings expend binary_container_1 and click on hw_link/binary_container_1-link.cfg

    missing image

In binary_container_1-link.cfg change the view to Source editor and add the following lines under [connectivity]

  ```
  stream_connect=mm2s_1.s:ai_engine_0.mygraph_in
  stream_connect=ai_engine_0.mygraph_out:s2mm_1.s
  ```

missing image

Note that as per the Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393), the naming convention for the compute units (or kernel instances) are <kernel>_#, where # indicates the CU instance. Thus, the CU names built corresponding to the kernels mm2s and s2mm in your project are respectively mm2s_1 and s2mm_1. The stream_connect option is defined as <compute_unit_name>.<kernel_interface_name>:<compute_unit_name>.<kernel_interface_name>. For example, to connect the AXI4-Stream interface of the mm2s_1 (compute unit name) called s (kernel interface name) to the mygraph_in (interface name) input of the graph in the ai_engine_0 (compute unit name) IP you need the following option: stream_connect=mm2s_1.s:ai_engine_0.mygraph_in.

  1. In the binary_container_1-link.cfg page, change back the view to Settings Forms and enable Export hardware (XSA).

    missing image