Viewing the State Machine Glitch - 2023.2 English

Vivado Design Suite Tutorial: Programming and Debugging (UG936)

Document ID
Release Date
2023.2 English
You cannot troubleshoot the issue identified previously by connecting a debug probe to the GPIO_BUTTON [1] input signal itself. The GPIO_BUTTON [1] input signal is a PAD signal that is not directly accessible from the FPGA fabric. Instead, you must trigger low-to-high transitions (rising edges) on the GPIO_BUTTON_IBUF signal, which is connected to the output of the input buffer of the GPIO_BUTTON [1] input signal.

As described earlier, the glitch reveals itself as multiple low-to-high transitions on the GPIO_BUTTONS_IBUF_1 signal, but it occurs intermittently. Because it could take several button presses to detect it, you now set up the Vivado logic analyzer tool to Repetitive Trigger Run Mode. This setting makes it easier to repeat the button presses and look for the event in the Waveform viewer.

  1. Under the Settings tab for hw_ila_1, configure the following:
    • Trigger Mode to BASIC_ONLY
    • Capture Mode to BASIC
    • Window Data Depth to 1024
    • Trigger position to 512
    • Press the + button in the Trigger Setup window and add probe GPIO_BUTTONS_IBUF_1. Change the Value field to RX by selecting the value RX in the Value field, as shown in the following figure.

      For different labs the GPIO_BUTTONS_IBUF might show up differently or have a different name such as button_in4_in. This might also show up as two individual bits or two bits lumped together in a bus. Ensure that you are using bit 1 of this bus to set up your trigger condition. For example, in case of a two-bit bus, you set the Value field in the Compare Value dialog box to RX.
  2. Select Enable Auto Re-trigger mode on the ILA debug core as shown as follows.

    The ILA properties window can look slightly different for different labs.

    When you issue a Run Trigger or a Run Trigger Immediate command after setting the Auto Retrigger mode, the ILA core does the following repetitively until you disable the Auto Retrigger mode option:

    • Arms the trigger.
    • Waits for the trigger.
    • Uploads and displays waveforms.
  3. On the KC705 board, press the Sine Wave Sequencer button until you see multiple transitions on the GPIO_BUTTONS_IBUF_1 signal (this could take 10 or more tries). This is a visualization of the glitch that occurs on the input. An example of the glitch is shown in the following two figures.
    You have to repeat the previous two steps repeatedly to see the glitch. After you see the glitch, you can observe that the signal glitches are not exactly in the same location as shown in the following figure.