The IP integrator debugging flow has four distinct phases:
- Mark the interfaces or nets to be probed using the Debug option.
- Use Designer Assistance to connect the interfaces and nets to the System ILA core.
- Validate Design to ensure that design connectivity is correct.
- Implement the design, and debug the design on hardware using the Vivado Hardware Manager.
Nets can be marked for debug in the block design by right-clicking on the net and selecting Debug from the context menu as shown in the following figure.
The nets that are marked for debug show a small bug icon placed on top of the net in the block design.
Note that the Run Connection Automation link is active in the block design canvas banner.
Clicking the Run Connection Automation link displays the Run Connection Automation dialog box, a provides the Run Connection Automation options shown in the following figure.
Because the net being debugged in this case is an AXI Interface, interface pins such as Read/Write address and data pins are presented for setting Data and/or Trigger options. Similar options to set Data/Trigger options are presented when you mark a non-interface net is for debug and click the Run Connection Automation link.
As shown, the System ILA option provides the user with two separate options:
- Auto: Lets the tool determine whether a new System ILA debug core should be used, or if the selected signals can be connected to an existing System ILA.
- New: Specifically connects the selected debug signals to a new System ILA IP core. In some cases this may be desired to keep certain signals connected to a particular ILA.
When no System ILA are present in the block design, choosing either option will instantiate a new debug core. The clock domain of the net being debugged is determined by the tool and is connected to the clk pin of the System ILA IP. If nets to be debugged are in different clock domains, separate System ILA debug cores are instantiated as it can only be connected to one clock source.
The Run Connection Automation dialog box also provides you with the option to connect the interface to an AXI Memory Mapped Protocol Checker, as shown in the following figure. The AXI Protocol Checker monitors AXI interfaces. When attached to an interface, it actively checks for protocol violations and provides an indication of which violation occurred.
When you click OK on the Run Connection Automation dialog box you see messages such as the following, indicating what action was taken by the tool:
Debug Automation : Instantiating new System ILA block '/system_ila_0' with mode INTERFACE, 1 slot interface pins and 0 probe pins. Also setting parameters on this block, corresponding to newly enabled interface pins and probe pins as specified via Debug Automation.
Debug Automation : Connecting source clock pin /clk_wiz_1/clk_out1 to the following sink clock pins /system_ila/clk
Debug Automation : Connecting source reset pin /rst_clk_wiz_1_100M/peripheral_aresetn to the following sink reset pins :/system_ila_0/resetn
Debug Automation : Connecting interface connection /microblaze_0_axi_periph_M01_AXI, to System ILA slot interface pin /system_ila_0/SLOT_0_AXI for debug.
After a net has been marked for debug, you can remove the DEBUG
attribute by right-clicking the net and selecting
Clear Debug from the context menu, shown in the following figure. This automatically
removes the connection of the selected net to the System ILA, and reconfigures the
IP as needed for the appropriate number of Interfaces/Probes.