Now try the logic to processor side of the cross-trigger mechanism. In other words, remove the breakpoint that you set earlier on line 24 to have the ILA trigger the processor and stop code execution.
Select the Breakpoints tab towards the bottom left corner of the window, and clear the testperiph.c [line: 24] check box. This removes the breakpoint that you set up earlier.
Alternatively, you can also right click on the breakpoint in the
testperiph.c
file, and select Disable Breakpoint.In the Debug window, right-click the MicroBlaze #0 target and select Continue button .
The code runs continuously because it has an infinite loop.
You can see the code executing in the Terminal Window.
In Vivado, select the Settings - hw_ila_1 tab. Change the Trigger Mode to BASIC_OR_TRIG_IN and the TRIG_OUT mode to TRIGGER_OR_TRIG_IN.
Click on the (+) sign in the Trigger Setup window to add the
slot_0 : microblaze_0_axi_periph_M00_AXI : AWVALID
signal from the Add Probes window.In the Trigger Setup window, for
slot_0 : microblaze_0_axi_periph_M00_AXI : AWVALID
signal, ensure that the Operator field is set to ==, the Radix field to [B] (Binary) and the Value field to 1 (logical one).This essentially sets up the ILA to trigger when the
awvalid
transitions to a value of 1.Click the Run Trigger button to ‘arm’ the ILA in the Status - hw_ila_1 window.
The ILA immediately triggers as the application software is continuously performing a write to the GPIO thereby toggling the
net_slot_0\_axi_awvalid
signal, which causes the ILA to trigger. The ILA in turn, toggles theTRIG_OUT
signal, which signals the processor to stop code execution.This is seen in Vitis in the highlighted area of the debug window.