| Sources | https://github.com/tinkerator/wavy |
|---|
The wavy tool is a lightweight program to convert simple ASCII art
logic trace representations into a PNG. It was written because it
has very light dependencies and can be used on any platform Go
supports.
Build from source:
$ go build wavy.go
The wavy program transforms .wvy files into .PNG images. For
example, in the source repository, examples/hello.wvy looks like
this:
+0 clk
+1,.25 aclk
zzzzzxxx^^^^______zz a
xx_^_^_^_^_^_^_^_^xx b
__/^^^\_____________ c
xx<-><->xxx<->xxxxxx d NOP,ACK,SYN
You can invoke ./wavy against it as follows:
$ ./wavy --input=examples/hello.wvy --output=hello.png
The generated hello.png looks like this:

Summary of the syntax:
+” are interpreted as clocks and end with the clk symbol name
+0 is interpreted as the fastest clock in the trace+1 is interpreted as a clock that has half the frequency as +0+n is interpreted as a clock that has 1/(n+1) the frequency as +0,D D is a phase
difference for the clock relative to the default.+0 clock signal
z = high impedance (no output, potentially an input)x = undefined (not assigned by logic, yet)^ = signal (goes/remains) high_ = signal (goes/remains) low/ = signal transitions to high via a ramp\ = signal transitions to low via a ramp<---> = an interpreted signal<-...-> can be substituted in sequence with comma separated symbols appended after the signal nameThe wavy program is distributed with the same BSD 3-clause license
as that used by golang itself.
The wavy has been developed purely out of self-interest and a
curiosity for maintaing some project documentation. Should you find a
bug or want to suggest a feature addition, please use the bug
tracker.