Processor to PL Cross Triggering - 2025.1 English - XD260

Vitis Tutorials: Embedded Software (XD260)

Document ID
XD260
Release Date
2025-07-31
Version
2025.1 English

Alternatively, users can setup the cross triggering to trigger the System ILA when the processor is suspended. This is useful to validate a hardware functionality in the PL by stepping through a software application in Vitis Unified IDE and view the corresponding PL transaction.

For example, I used the same hardware design as above. However, I updated the software application to write to the AXI GPIO. To build use the command below

cd Vitis_Cross_Probing/scripts
make build_sw LAB=3
int main(void)
{
	int Status;
	//volatile int Delay;

	/* Initialize the GPIO driver */
#ifndef SDT
	Status = XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID);
#else
	Status = XGpio_Initialize(&Gpio, XGPIO_AXI_BASEADDRESS);
#endif
	if (Status != XST_SUCCESS) {
		xil_printf("Gpio Initialization Failed\r\n");
		return XST_FAILURE;
	}

	/* Set the direction for all signals as output */
	XGpio_SetDataDirection(&Gpio, 1, 0x0);
	
	Xil_DCacheDisable();

	while (1) {
		XGpio_DiscreteWrite(&Gpio, 1, 0x12345678);
	}

}

Open the lab3 workspace in Vitis, and follow the steps below

  1. Highlight the gpio_test application component, and under FLOW, select Debug and Open Settings. Then select New Launch Configurations.

  2. Select the Enable Cross Triggering as shown below ../../../../_images/gpio_test_launch_config.PNG

  3. Select Cross Triggering Breakpoints, and Add Items and configurate as shown below. For example, here we want to trigger the ILA when there is a breakpoint on Cortex a53 #0 ../../../../_images/gpio_test2_cross_triggering_breakpoints.PNG

  4. Select the Debug icon to launch the debug ../../../../_images/gpio_test2_debug.PNG

  5. Launch Vivado Hardware Manager, and connect to your target Note: If you are using the prebuilt XSA, then import the ltx file manually. ../../../../_images/hardware_device_properties.PNG

  6. Here, I am just waiting on any Trigger. ../../../../_images/waiting_for_trigger.PNG

  7. Return to Vitis, and In the Debug View, highlight the Cortex-A53 #0 and Add a breakpoint on the XGpio_DiscreteWrite(&Gpio, 1) function. ../../../../_images/gpio_breakpoint.PNG 8.Select Continue (play icon) to trigger the ILA. Users can just re-arm the ILA again and Continue (play icon) in Vitis Debug View as there is a while loop. ../../../../_images/trigger_ila.PNG