5.Run Hardware Emulation - 2023.2 English

Vitis Tutorials: AI Engine (XD100)

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

After packaging, everything is set to run emulation. Since you ran aiesimulator with profiling enabled, you can bring that to hardware emulation. You can pass the aiesim_options.txt to the launch_hw_emu.sh which will enable the profiling options used in aiesimulator to be applied to hardware emulation. To do this, add the -aie-sim-options ../aiesimulator_output/aiesim_options.txt.

  1. To run emulation use the following command:

    make run_emu TARGET=hw_emu
    

    or

    cd ./sw
    ./launch_hw_emu.sh -aie-sim-options ../aiesimulator_output/aiesim_options.txt -add-env AIE_COMPILER_WORKDIR=../Work
    

    When launched, use the Linux prompt presented to run the design. Note that the emulation process is slow, so do not touch the keyboard of your terminal or you might stop the emulation of the Versal booth (as it happens in the real HW board).

  2. Execute the following command when the emulated Linux prompt appears:

    cd /run/media/*1
    export XILINX_XRT=/usr
    dmesg -n 4 && echo "Hide DRM messages..."
    

    This will set up the design to run emulation and remove any unnecessary DRM messaging.

  3. Run the design using the following command:

    ./host.exe a.xclbin
    

    Note: The design runs with dumping VCD, which will extend emulation time. It may seem as if it is hung, but it is not.

  4. You should see an output displaying TEST PASSED. When this is shown, run the keyboard command: Ctrl+A x to end the QEMU instance.

  5. To view the profiling results and trace in Vitis Analyzer, run the command:

    vitis_analyzer sw/sim/behav_waveform/xsim/default.aierun_summary
    

    hw_emu analyzer

    When you open the run Summary, you will notice that it is the same layout as that from aiesimulator.

  6. Click Trace. This will open up the VCD data (as defined in the aiesim_options.txt). This gives detailed information about kernels, tiles, and nets within the AI Engine during execution. Here you can see stalls in regards to each kernel and can help you identify where they are originating.

    hw_emu trace

  7. Click Profile. This will bring up the same view as shown for the profiling of the aiesimulator, but now it will have information gathered from running hardware emulation.

  8. Click Total Function Time. Your display will appear as follows.

    hw_emu profile

    Notice that the values here differ from those in aiesimulator.

    The final two views: Graph and Array are the same as in the aiesimulator run summary.

  9. Open the aiesimulator run Summary by clicking File > Open Summary, navigating to the aiesimulator_output directory, and clicking default.aierun_summary.

    Explore the two reports and take note of any differences and similarities. This will help you debug and optimize your design.

  10. Close out of the Vitis Analyzer and build for hardware.