Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Peek at signals in a MyHDL or nMigen digital system simulation.

Project description

A module that lets you monitor signals in a MyHDL or nMigen 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 much more.

[This Jupyter notebook] shows how to use myhdlpeek.


  • Captures timing traces of signals in a MyHDL/nMigen 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.


0.0.9 (2021-01-05)

  • Added support for nMigen.
  • Waveforms can now be drawn using wavedrom or matplotlib.

0.0.8 (2018-09-25)

  • Now works with the newer JupyterLab by default. Older Jupyter notebooks are still supported by setting myhdlpeek.USE_JUPYTERLAB = False.
  • Updated documentation.

0.0.7 (2018-04-13)

  • Added functions to export signal traces into a Pandas dataframe.
  • Updated documentation.

0.0.6 (2017-10-11)

  • The skin can now be set for waveform traces (either ‘default’ or ‘narrow’).
  • clear_traces() was added to remove signal trace data from Peekers without removing the Peekers so another simulation can be run.
  • Updated documentation.
  • Removed unused

0.0.5 (2017-08-25)

  • Added PeekerGroup class to allow grouping of Peekers.
  • Trace objects now only return integer values.

0.0.4 (2017-07-04)

  • Added trigger capability to select a portion of traces for display.
  • Extended waveform & table display to both Peekers and Traces.

0.0.3 (2017-06-23)

  • Made compatible with Python 2.7.
  • Added tabular output of Peeker data traces.

0.0.2 (2017-06-12)

  • Added static HTML pages to display what myhdlpeek can do. (Notebook rendering with nbconvert won’t show waveforms.)

0.0.1 (2017-06-10)

  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for myhdlpeek, version 0.0.9
Filename, size File type Python version Upload date Hashes
Filename, size myhdlpeek-0.0.9.tar.gz (30.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page