cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
817 Views
Registered: ‎06-04-2010

'List/State view' with ILA?

Jump to solution

On physical logic analyzer that I have in the lab I can view data in 1 of 2 ways:

  • Waveform view
  • List or State view

Waveform view is what Vivado Logic Analyzer does today. I was wondering if there is also somehow support for 'List View'.  When I say 'List View' I mean defining a bus (say an address bus) and then a triggering condition and have the tool capture and list the bus values in hex for N times that it say the trigger.  This make it extremely useful to trace program execution from a soft-core within the FPGA design.  

This video I did back in the day shows what feature I'm talking about (it starts at the 2min 46sec mark):

https://www.youtube.com/watch?v=_4Lwk6zLROM&t=2m46s

Does something like this already exist within Vivado LA?

Thanks!

-Adam

In this video I crack the Pole Position 2 security chip, get PP2 up and running on the devkit and hack up MAME to dump sprites directly to bitmaps. Enjoy!
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Adventurer
Adventurer
779 Views
Registered: ‎06-04-2010

Re: 'List/State view' with ILA?

Jump to solution

Thanks for the info Andre!  I also just discovered the "Capture Control" mode for ILAs. When configured with this enabled, I'm able to use 'Capture Setup' to specify a qualifier for the ILA to capture each sample. This is exactly what I was looking for as now I can define what signals equate to an instruction fetch and can see nothing but instruction fetches on the waveform.  Now I have 1000+ meaningful addresses instead of just 20 or so. ;)

View solution in original post

2 Replies
Highlighted
Moderator
Moderator
788 Views
Registered: ‎02-09-2017

Re: 'List/State view' with ILA?

Jump to solution

Hi @ajcrm125,

Thanks for the great question!

First talking about the data collection, there isn't exactly a way to only collect the data for when the pin toggles down and discard all the data for when it's up (as shown in the video). Once the ILA triggers, it will collect all the subsequent data until the end of the sample window. But the WINDOW_COUNT parameter will essentially create the same feature.

CONTROL.WINDOW_COUNT - Lets you divide the MAX_DATA_DEPTH of the ILA core into a number of data windows to store sample data from multiple trigger events. In the case of 10 data windows for example, the first window will be filled at the first trigger event, and each subsequent window will be filled upon subsequent triggering events or capture conditions.

You can configure the number of windows in the ILA settings, once it's up and running in the HW Manager.

ILA_advanced_trigger.JPG

if you know that the data you want to see is only going to last, say a couple samples, you can configure the ILA to have 512 windows, so every window will only show you the data for 2 samples after the trigger (Assuming the data depth is 1024).

 

Now talking about the data visualization, in the HW Manager window there's not a way to see the data in List Mode as you've shown. The HW Manager can just show the waveforms.

I believe a similar way to do what you wanted would be to export the ILA data in CSV format. You can do so by clicking on the "EXPORT ILA DATA" button or by issuing the TCL command write_hw_ila_data -csv_file C:/Data/my_ila_data [current_hw_ila_data] hw_ila_1]

That way, you'll open it in Excel and see the data in List Mode (the values in HEX, BIN, DEC, etc., for each sample). You might still have some data for when the trigger pin is high, but in Excel that would be easy to make a filter and only see the data for trigger = low.

For example, when exporting the data you'll see an Excel file like this:

ILA_excel_data.JPG

Let's say you're only interested in seeing the data for when the signal TRIGGER is zero. So you'd enable the filter in Excel to only show that data. The Sample in Window number will still give you a notion of how far it went between two triggers (say, one set of data might be at sample 10, the other at sample 1000, etc.). 

ILA_excel_data_2.jpg

You will still have one more "issue" to figure out, which would be the data depth for the ILA. That is related to the number of samples it will collect after a trigger. The default is 1024 samples, and that might be enough if you are using the WINDOW_COUNT as mentioned earlier. 

If that's still not enough, I'd recommend setting your ILA to the maximum data depth possible (131,072 samples) so that hopefully will allow you to capture enough occurrences of the trigger condition in one single file. 

Please let me know if that helps you or if you have any question.

 

Thanks,

 

Andre Guerrero

Product Applications Engineer

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Adventurer
Adventurer
780 Views
Registered: ‎06-04-2010

Re: 'List/State view' with ILA?

Jump to solution

Thanks for the info Andre!  I also just discovered the "Capture Control" mode for ILAs. When configured with this enabled, I'm able to use 'Capture Setup' to specify a qualifier for the ILA to capture each sample. This is exactly what I was looking for as now I can define what signals equate to an instruction fetch and can see nothing but instruction fetches on the waveform.  Now I have 1000+ meaningful addresses instead of just 20 or so. ;)

View solution in original post