# How to successfully trigger an ILA core in Vivado

I am trying to debug my VHDL project in Vivado 2014.03 on a KC705.

My project consists of multiple VHDL modules implemented as custom IP cores, which are connected in a block design.

I selected mark debug on the signals that are connected to the ILA core.

After synthesis I used setup debug and added the nets that my ILA core is analyzing. The .xdc file was modified and I even resynthesized the project just incase...

After writing the resultant binary file onto the FPGA, I get two ILA cores, both of which get stuck at "waiting for trigger". Sometimes my ILA cores responded to trigger immediate, but they always return the same result and it isn't useful because the time window that I need is quite short.

I mapped one of the signals to an LED and confirmed that the signal exists.

I also synthesized the entire project in pure VHDL without using any custom IP cores. Again - I had the same problems.

I would like to make smart moves while debugging this issue, because each synthesis takes about two hours and it is very easy to make the project go out of date.

What could I be doing wrong? What can I try next?

• VTC - This question is not about the design side of electronics as subscribed to be on topic for this site. In fact the risk assessment asked about hints at the need for a repair which is also off topic. – Michael Karas Jul 30 '17 at 19:54
• The best place to put this question is at Xilimx forums. – Claudio Avi Chami Jul 30 '17 at 20:32
• The thing that is missing from your story is exactly what trigger conditions you established for each of your ILAs. – Dave Tweed Jul 31 '17 at 12:24
• Have you considered the fact that your signals are in fact not changing, thus never triggering the core? This is usually a symptom of bad reset polarity... Have you performed a functional simulation of the system and confirmed it to work correctly and affecting those signals which you trigger upon? – Rami Jul 31 '17 at 13:58
• If you have multiple trigger signals in the ILA, make sure you use the appropriate logic setting (global OR, AND, etc.). Check your implemented netlist to ensure the signal is actually connected to the ILA. Try manually instantiating ILAs from IP integrator instead of using the mark debug attribute. – ks0ze Jul 31 '17 at 15:28

EDIT

Meanwhile the problems have been resolved:

1. Since it was my first VHDL project, I thought it was be a good idea to combine combinatorial logic with synchronous logic in order to reduce the circuit's propagation delay. The combinatorial part had a bug in it, but it still simulated sucessfully because I didn't set the sensitivity list correctly.

Solution: avoid using combinatorial circuits whenever possible.

1. I was doing some calculations in compile time, which worked fine in the simulation (probably computed with 64 bit), but it led to an overflow during synthesis (probably computed with 32 bit). As a result of the overflow the optimizer removed most of my project, but it left the part that I was looking at with the debug LED un touched...

Solution: configure the module manually rather than setting it up in compile time.

This solves my core issues, but it doesn't explain the inconsistent behavior that I observed in Vivado while trying to narrow down the issue.

BEFORE EDIT

Unfortunately the issue was not resolved, but I promised to get back and report on how it went.

• Make sure you're XDC file is fine.
• Don't try all the instructions at once
• Try to reproduce your problems on someone else's work bench if can get the opportunity.