wavedrom / zoom

🔍 Zoomable Waveform viewer for the Web
MIT License
43 stars 1 forks source link

Input Data Stream #14

Open drom opened 5 years ago

drom commented 5 years ago
drom commented 5 years ago

FYI, I do simulation with verilator, which dumps VCDs that are sometimes a couple of GB heavy. I re-wrote my own vcd parser in C in order to play with the dump (for creating a stackdump and memory dump of a processor I simulate for example) . I hardly imagine that converting that into json could be handled properly by v8 and rendered like that. One would need to have an engine that can give you a small subset of the data to be rendered according to the zoom requested.

Originally posted by @key2 in https://github.com/wavedrom/zoom/issues/10#issuecomment-436394269

drom commented 5 years ago

@key2 Can Verilator stream output VCD? So we can capture its output chunk by chunk?

key2 commented 5 years ago

It generates VCD, but for example, a couple of a seconds of a CPU could grow to a couple of GB of VCD ! gtkwave takes a couple of minutes to load it. We really have to think it as a google map model. You zoom/dezoom, so the "server" side that gives you the "tile" is importan there. Could be either some other JS code, a webserver, or NodeJS (electron.js) I had to make my own code that re-index the whole VCD file to be able to fseek() at different position without recalculating all the deltas. Keeping the Data Model in memory on huge VCD converted could still be big

drom commented 5 years ago

@key2 I understand that VCD can grow quick. Can we wrap Verilated RTL the way that it producing Unix stream then we can pipe it to Zoom via Node Stream without touching on the file system?

nturley commented 5 years ago

In addition to simulators, is there any reason why a logic analyzer wouldn't be able to stream to it as well?