1
\$\begingroup\$

One of the signals I've traced in ISim is a 16-bit bus. How do I find all time points when its level became a given value?

Running the simulation takes several hours, and I don't know in advance what values I will be searching for (I come up with the next step as I get deeper and deeper into debugging), so I am looking only for after-the-fact solutions (so changing something in the original VHDL to print something out on encountering that value and rerunning the simulation is a no-go).

More generally, I think I could get good mileage out of programmatic access to the simulation results -- what is the format of the resulting .wdb file, and are there existing libraries to parse it?

\$\endgroup\$
3
  • 2
    \$\begingroup\$ One option would be to use another simulator : ghdl runs from the command line and can be asked to dump waveforms in a couple of file formats, which can be read by gtkwave (waveform viewer) ... or potentially, other tools to search for specific values. File format documentation ought to be easy to find ... or there's always the source code! sourceforge.net/projects/ghdl-updates \$\endgroup\$
    – user16324
    Commented Aug 2, 2015 at 11:13
  • \$\begingroup\$ Hmm, that's an interesting angle. I do have a clock manager in my design that is some Xilinx IP Core, but I think for this simulation I will be able to replace it with just a manual clock divider. \$\endgroup\$
    – Cactus
    Commented Aug 2, 2015 at 12:30
  • 1
    \$\begingroup\$ OK, GHDL looks very promising at first glance. I've bumped into an orthogonal problem trying to use it; see electronics.stackexchange.com/q/182905/11476. \$\endgroup\$
    – Cactus
    Commented Aug 2, 2015 at 15:12

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.