A module that lets you monitor signals in a MyHDL digital system simulation and display them as waveforms in a Jupyter notebook. Make changes to your digital design and see the results reflected immediately in the waveforms of your notebook!
myhdlpeek implements a Peeker object that monitors a signal and records the time and value when it changes. Just add multiple Peekers where you want to monitor something (even at sub-levels of a hierarchical design) and then view the collected timing waveforms with a single command. You can also select which signals are shown, set the beginning and ending times of the display, and set other options.
Below are some examples of Jupyter notebooks using myhdlpeek. Unfortunately, the Github Notebook viewer doesn't render the waveform displays so you'll have to download and run the notebooks locally or click on the static HTML link to see what myhdlpeek can do.
- Simple multiplexer: [Notebook1] [HTML1]
- Hierarchical adder: [Notebook2] [HTML2]
- Other Peeker options: [Notebook3] [HTML3]
- Tabular display: [Notebook4] [HTML4]
- Convenience functions: [Notebook5] [HTML5]
- Trigger functions: [Notebook6] [HTML6]
- Free software: MIT license
- Documentation: http://xesscorp.github.io/myhdlpeek
- Captures timing traces of signals in a MyHDL digital design.
- Works at the top-level and sub-levels of a hierarchical design.
- All signals or a selected subset can be displayed.
- The beginning and ending points of the waveform display can be set.
- Timing marks can be turned on or off.
- Titles and captions are supported.
- Tabular output in Jupyter and console.
- Trigger expressions allow the display of a selected portion of traces.