PL to AI Engine - 2022.2 English

Vitis Tutorials: AI Engine Development

Document ID
XD100
Release Date
2022-12-01
Version
2022.2 English

After bootup and the device is configured, the application can begin to run. In this design, there is a PL kernel called random noise that is generating data that is being fed directly into the AI Engine. The key here is looking at the s_axi_control interface to see when the PS sends the run signal.

  1. To view the specific signals controlling the PL kernel, run the following.

    source ../../../../tcl/pl_to_aie.tcl
    
  2. Expand the CIPS group down to the Row 0. Zoom into a specific region. In the following screenshot the red area is the zoom region.

    Zoom region

    After the zoom in, you should see something similar to the following.

    Zoomed in

    Here you can see the PS is using the Full Power Domain (FPD) interface to send the AXI signal to turn on. Notice that there are two blocks shown. This is the PS telling the random_noise and s2mm kernels to start running.

    If you zoom in more, you can see more specifics of the transactions.

    Zoomed in 2x

    Notice that the s_axi_control has a read transaction slightly after the second transaction has started of the FPD interface.

  3. Expand the vitis_design_CIPS_0_0_M_AXI_FPD_tlm interface and the Outstanding Reads and you will see a Row 0. If you move the mouse over the #3 or #4 a context help menu shows you some signal information on where data is being transfered. Notice the ARADDR value of 0xa4060000 for #3 and 0xa4050000 for #4, and understand that this is the address to the PL kernels that the Vitis linker auto-assigns it during linking. From the host code, you can determine that these kernels are activated before the AI Engine, soon after the application starts, so it is safe to say these signals are used to start them. Do remember that these kernels are simpler than others; more complex kernels will result in different transactions.

  4. Zoom to fit by clicking the Zoom Fit button (zoom fit). Expand the NOISE group and expand Out_r.

    Random Noise

  5. Notice after the random_noise kernel starts, you see the large green-line. This is a series of many transactions of the PL kernel transferring data to the AI Engine. There are a few red sections in the waveform. This is a link stall, or where the kernel has been stalled and is caused by the AI Engine.

  6. Zoom to fit by clicking the Zoom Fit button.