System debug and cross-trigger
Observe the processor and programmable logic in one debug experiment using ILA, VIO, breakpoints and cross-triggers.
Two domains to observe
The software debugger shows processor registers, memory, stack and C variables. The Integrated Logic Analyzer, or ILA, records internal PL signals while the circuit is running. A PS to PL interface defect often requires both views.
To illustrate cross-domain debugging, this course provides a precise scenario. A software counter writes its value to AXI GPIO and prints a message when it reaches 0x85. This value appears both in the C code and in the AXI transaction captured by ILA, so it becomes a common marker for both observations.
Preparing the design
Signals must be connected to an ILA or marked for debug before implementation. Capture depth consumes BRAM and probe width also has a cost. The ILA clock must correctly sample the signals being observed.
Virtual Input Output, or VIO, can read or drive small internal signals from Vivado. It is useful for resets, test modes and simple commands.
for (count = 0U; count < 256U; count++) {
XGpio_DiscreteWrite(&gpio, 1, count);
if (count == 0x85U) {
xil_printf("Special count reached\r\n");
}
}A conditional breakpoint stops the processor at 0x85. An independent ILA can capture AXI writes, but their timelines are not yet linked.