Assuming that I want to collect several seconds of activity of digital signal on multiple pins of a device, one way is to create a simple FPGA design that buffers all that information and then transmits it to the PC or stores it into a file (csv format e.g) on some form of removeable media (by using a softcore with code that can read/write file access system for example).

Once I have this sequence of 1s and 0s on my PC, I would like to visualize all the activity by making waveforms that can be zoomed in, zoomed out and panned and perhaps do some processing on the results e.g collect sequence of serial bits into a single byte during post processing and then do maths with it.

Does a method to do such post processing of data collected via a custom solution (involving FPGA in this case), exist?

I do not have a logic analyzer and do not think that a logic analyzer can capture a lot of data like this as it has a very limited buffer space and sample rate anyway for such a situation.

  • \$\begingroup\$ Is there any reason why you are excluding some sort of spreadsheet software, such as excel? \$\endgroup\$ Dec 1, 2019 at 21:08
  • 1
    \$\begingroup\$ ... and if the data is too much for spreadsheet software: once you have the samples, it wouldn't be too hard to convert them to a sound file like a WAV (e.g. 0 = 0, 1 = 127, assuming 8-bit mono WAV file). Then viewing, panning, zooming, etc. can be done with sound editing PC software like Audacity. \$\endgroup\$
    – anrieff
    Dec 1, 2019 at 21:20
  • \$\begingroup\$ there may be something already written for Processing... processing.org \$\endgroup\$
    – jsotola
    Dec 1, 2019 at 21:25
  • \$\begingroup\$ Excel is possible but it will not be simple to zoom and pan in a large waveform. But more importantly, it won't have concept of SPI and I2C transfers. \$\endgroup\$
    – quantum231
    Dec 1, 2019 at 21:28
  • \$\begingroup\$ There are SVG scripts that turn data points into waveforms. metacpan.org/pod/SVG::TT::Graph::TimeSeries \$\endgroup\$ Dec 1, 2019 at 21:34

1 Answer 1


Your question is quite broad but here are a few pointers.

A convenient way to display data is Excel as the comment pointed out, although if you need to zoom / pan, or display lots of point, excel is quickly limited. (Been there...)

One of the best tool for data visualization is Matlab (and perhaps their open-source equivalent). With a few lines of code you will be able to plot your data on a chart and have powerfull zoom/pan functionalities.

Another approach would be to use the software processing which is the "arduino for display", with here some starting point to link hardware directly to your computer and display a graph. This would require more work to get the pan/zoom working but you would have your signal without the need of saving it to a file.

For a one-shot thing I would go with Matlab. If you want to make a tool that you would use regularly in the future, processing is probably the (easy) way to go.


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.