Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lazy evaluation feature + center screen on current time feature #19

Open
JDuchniewicz opened this issue Feb 29, 2024 · 4 comments
Open

Comments

@JDuchniewicz
Copy link

Hi,

Great tool - finding it much easier to use than big ones available on the market.

Several requests/ideas:

  • lazy evaluation (saw that you already considered this) - I have .vcd input files of sizes 15G+ so loading it takes around 6 minutes and I don't really need all the timestamps - maybe I could load the waves from particular time, but in general I think lazy loading of the waveforms would be a good feature.
  • center screen on current time (marker) feature - didn't see anything like that and it seems to be simple, yet necessary feature of such a program

One small bug I found - when I scroll beyond the right edge of the screen (with the marker) - the app hangs and I need to kill it manually.

I would be willing to help along as I find this tool very handy 😁

@pieter3d
Copy link
Owner

Thank you, glad it's useful.

I'm surprised you're seeing the hang, do you have a small vcd that reproduces it? I can look into that.

Centering is a good idea, should be trivial to add.

@JDuchniewicz
Copy link
Author

Cannot really give you my test vector as it is proprietary, the tip here is that I have a file around 15G, it can even be just one signal tracked, when going beyond right edge of the screen with e then the crash is visible.

@pieter3d
Copy link
Owner

pieter3d commented Mar 2, 2024

Added the centering feature, key "C" - please give it a shot.

@pieter3d
Copy link
Owner

pieter3d commented Mar 2, 2024

Lazy loading of VCD is not trivial, yet another reason that format is so terrible.

  • To see anything at the end of time requires parsing the whole file
  • You can't really parse for just a specific signal. If you did that, you'd still be scanning the whole file and simply discarding other signals. Since the amount of memory required isn't too bad (usually), it better to just store the wave data if you've anyway parsed it.
  • Simview at startup puts the wave range to the full extent, since it parses the file fully. To do a more lazy loading, I could stop the parsing after a certain time or number of MB, and just display up to whatever that last timestamp happened to be. That doesn't seem like a very clean solution, but I can't really think of simpler one.

If you convert your VCD to the FST format (gtkwave has such a utility IIRC), it should be significantly better.

I really wish it was possible to get a free license for UHM / FSDB so that wave data from commercial tools could be loaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants