In [1]:
import nbwavedrom

a = {'signal': [
  {'name': 'clk', 'wave': 'p.....|...'},
  {'name': 'dat', 'wave': 'x.345x|=.x', 'data': ['head', 'body', 'tail', 'data']},
  {'name': 'req', 'wave': '0.1..0|1.0'},
  {},
  {'name': 'ack', 'wave': '1.....|01.'}
]}

nbwavedrom.draw(a)


Out[1]:
clkdatheadbodytaildatareqack

In [2]:
help(nbwavedrom.draw)


Help on function draw in module nbwavedrom:

draw(data, width=None, phantomjs=None)
    A function to provide digital waveform drawing in ipython notebook.
    It utilises the wavedrom java script library, documentation for which can
    be found here: wavedrom.com.
    
    Example usage:
        import nbwavedrom
        a = {
        'signal': [
          {'name': 'clk', 'wave': 'p.....|...'},
          {'name': 'dat', 'wave': 'x.345x|=.x', 'data': ['head', 'body', 'tail', 'data']},
          {'name': 'req', 'wave': '0.1..0|1.0'},
          {},
          {'name': 'ack', 'wave': '1.....|01.'}
        ]}
        nbwavedrom.draw(a)
    
    Note, there are two wavedrom rendering engines built in. The default is to use the
    wavedrom-cli (https://github.com/wavedrom/cli). This requires phantomjs. This is the
    best option as it embeds the SVG into the notebook. If phantomjs is not found then a
    browser based render will be used, this means that the notebook can't be converted to
    PDF or displayed on github.
    
    The following arguments are used:
    * data - the wavedrom configuration (see wavedrom.com)
    * width - forces max width of the output when using browser rendering
    * phantomjs - set to the path to phantomjs if it is not in your PATH. Set to False to
      force browser rendering