AI Engine Debug with Integrated Logic Analyzer
Adding ChipScope helps debugging AIE PL interfaces in the design running on hardware including checking for AXI protocol violations, hardware kernel issues, data integrity, and performance issues of the design. To debug using integrated logic analyzers (ILAs), the design is required to enable ILA in the hardware build.
This tutorial uses the v++ --debug
option to enable the ILA IP core insertion to the design.
Syntax:
--debug.chipscope <cu_name>[:<interface_name>]
Example:
v++ -g -l --platform ${PLATFORM} ${XOS} ${LIBADF} \
--debug.chipscope s2mm_v4_1:s0 \
--debug.chipscope mm2s_v4_1:s0 \
-t ${TARGET} ${VPP_FLAGS} -o $@
NOTE: v++ allows multiple
--debug.chipscope
lines to meet design debug needs.
Use the provided Makefile.ILA
from this tutorial's root directory. Rename Makefile.ILA
to Makefile
.
cd ${DOWNLOAD_PATH}/AI_Engine_Development/Feature_Tutorials/09-debug-walkthrough
cp Makefile.ILA Makefile
make clean; make
After the design is built, inspect the ILA insertion with mm2s_v4_1:s0
and s2mm_v4_1:s0
interfaces.
Flash the SD card with the ILA-enabled design, plug in the flashed SD card to VCK190 SD card slot, and boot up the board.
Run the hardware server from the computer that connects to the target board. To do so, launch hw_server from the computer that has the JTAG connection to the VCK190 board.
Launch the AMD Vivado™ Design Suite from where the to be debugged project is by issuing the command, vivado
.
After Vivado is up, click th highlighted icon.
Enter the hardware server's IP address or hostname to the highlighted area, and click Next.
Confirm the target's information from the JTAG chain, then click Next.
Click the ellipsis (...) to select the generated probe file, ${PROJECT_PATH}/bf_hw.ltx
or ${PROJECT_PATH}/_x/link/int/bf_hw.ltx
from this design.
Click hw_ila_1
to examine the design.
Click +
to configure the desired signals and their values during run time.
The following example selects the TVALID
signal from the mm2s_v4_1_s0
and vitis_design_s2mm_v4_1_0_so
interfaces that capture valid transfers are driven from the master. Set the value to B (both transition
so the transitions of the valid data signals can be captured.
Click one of highlighted icons to capture the configured signals.
Wait for ILA to be ready to capture signals. Run the application from VCK190 board.
After completing above steps, you are able to see the captured, related AXI signals and data are shown in the waveform with timing information from Vivado.
Expand slot_0:mm2s_v4_1_s0:Interface
and slot_1:vitis_design_s2mm_v4_1_0_s0:Interface
by clicking the >
icon. Review the above captured result. mm2s_v4_1_s0:TVALID
shows '1' which indicates a valid data is available at the time marker pointed. Moving the time marker across time line, changes of AIX protocol values indicate values changed at what time shown below. For example, at clock cycle 4, TVALID
is 1 where TDATA
is 57f8a5855ea25c52
. This is how to determine when and what a valid data is sent/received.
GitHub issues will be used for tracking requests and bugs. For questions, go to support.xilinx.com.
Copyright © 2020–2023 Advanced Micro Devices, Inc