WaveDrom is a Free and Open Source online digital timing diagram (waveform) rendering engine that uses javascript, HTML5 and SVG to convert a WaveJSON input text description into SVG vector graphics.
WaveJSON is an application of the JSON format. The purpose of WaveJSON is to provide a compact exchange format for digital timing diagrams utilized by digital HW / IC engineers.
The engine is using WaveDromSkin skin mechanism to render a complete picture.
svg.wavedrom.com
![Alt](https://svg.wavedrom.com/github/<USER>/<REPO>/master/<PATH>/<FILENAME>.json5)
![signal step4](https://svg.wavedrom.com/github/wavedrom/wavedrom/master/test/signal-step4.json5)
![reg vl](https://svg.wavedrom.com/github/wavedrom/wavedrom/master/test/reg-vl.json5)
<img src="https://svg.wavedrom.com/{WAVEDROM SOURCE}/>
<img src="https://svg.wavedrom.com/{signal:[{name:'clk',wave:'p......'},{name:'bus',wave:'x.34.5x',data:'head body tail'},{name:'wire',wave:'0.1..0.'}]}"/>
WaveDrom timing diagrams can be embedded into the web pages, blogs, and wikis to be rendered by the most of modern browsers:
There are three steps to insert WaveDrom diagrams directly into your page:
- Put the following line into your HTML page
<header>
or<body>
:
<script src="http://wavedrom.com/skins/default.js" type="text/javascript"></script>
<script src="http://wavedrom.com/wavedrom.min.js" type="text/javascript"></script>
or from a CDN:
<script src="https://cdnjs.cloudflare.com/ajax/libs/wavedrom/2.1.2/skins/default.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/wavedrom/2.1.2/wavedrom.min.js" type="text/javascript"></script>
- Set the
onload
event for the HTML body.
<body onload="WaveDrom.ProcessAll()">
- Insert WaveJSON source inside HTML
<body>
wrapped with the<script>
tag:
<script type="WaveDrom">
{ signal : [
{ name: "clk", wave: "p......" },
{ name: "bus", wave: "x.34.5x", data: "head body tail" },
{ name: "wire", wave: "0.1..0." },
]}
</script>
The script will find all <script type="WaveDrom">
instances and insert a timing diagram at that point.
(http://wavedrom.com/impress.html)
ObservableHQ examples: (https://observablehq.com/collection/@drom/wavedrom)
Blogger integration: (http://wavedrom.blogspot.com/2011/08/wavedrom-digital-timing-diagram-in-your.html)
MediaWiki integration: (https://github.com/Martoni/mediawiki_wavedrom)
WaveDromEditor is an online real-time editor of digital timing diagrams based on the WaveDrom engine and WaveJSON format.
- Download latest
wavedrom-editor-v2.1.2-win-{ia32|x64}.zip
release from here: releases - Unzip it into a working directory.
- Run the editor:
wavedrom-editor.exe
- Download the latest
wavedrom-editor-v2.1.2-linux-{ia32|x64}.tar.gz
release from here: releases - unzip-untar the package:
tar -xvzf wavedrom-editor-v2.1.2-linux-x64.tar.gz
- Run the editor:
./WaveDromEditor/linux64/wavedrom-editor
- Download the latest
wavedrom-editor-v2.1.2-osx-x64.zip
release from here: releases - Unzip
- Run
Please use the WaveDrom user group for discussions, questions, ideas, or whatever.
See LICENSE.