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.
- 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.
CAUTION: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.
- Select Enable Auto Re-trigger mode on
the ILA debug core as shown as follows.
CAUTION: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.
- 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.CAUTION: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.