Wavedrom is a tool to render SVG of waveforms using WaveJSON
. WaveJSON
is JSON based format docs to documents signal values with labels and annotations. wavedrom is written in javascript but there is wavedrompy which is the python implementation.
Example Link to heading
{
"signal": [
{"name": "clk", "wave": "P............", "node":"............."},
{"name": "req", "wave": "01..0........", "node":".a..b.C...D.."},
{"name": "ack", "wave": "0.....1...0..", "node":".A..B.c...d.."}
],
"edge" : [
"b-~>c 1:N",
"a-~>b 5",
"c-~>d 8",
"a-|>A",
"b-|>B",
"c-|>C",
"d-|>D"
],
"config": {"hscale":2,"scale":2}
}
And output should be something like