A simple digital waveform viewer with vi-like key bindings.
shell
$ dwfv sample.vcd
The tool takes a Value Change Dump (VCD) file (as defined by IEEE Standard 1364-1995) as input and displays the waveforms using tui-rs.
The backend API which facilitates the manipulation of digital signals in Rust is also exposed and can be used independently of the TUI.
From sources:
shell
$ cargo install --path .
q
: quith
: move cursor leftj
: move cursor downk
: move cursor upl
: move cursor rightw
: jump forward to the next rising edgee
: jump forward to the next falling edgeb
: jump backward to the previous rising edge0
: jump to timestamp 0^
: jump to the first event$
: jump to the last eventgg
: jump to first signalG
: jump to last signalzi
: zoom inzo
: zoom outzz
: center cursor on screeno
: edit layoutdd
: delete the selected signalyy
: copy the selected signalp
: paste the clipboard after cursorP
: paste the clipboard before cursor/pattern
: search for pattern in the selected signaln
: repeat search forwardN
: repeat search backwardv
: start visual mode<enter>
: zoom fit the selected time frameshell
$ dwfv examples/sample.vcd stats
test
! (value) - width: 8, edges: 37, from: 0, to: 1010
" (clk) - width: 1, edges: 102, from: 0, to: 1010
# (reset) - width: 1, edges: 5, from: 0, to: 620
c1
" (clk) - width: 1, edges: 102, from: 0, to: 1010
# (reset) - width: 1, edges: 5, from: 0, to: 620
$ (out) - width: 8, edges: 37, from: 0, to: 1010
shell
$ dwfv sample.vcd at 42
test
! (value) = h07
" (clk) -> h0
# (reset) = h0
c1
" (clk) -> h0
# (reset) = h0
$ (out) = h07
shell
$ dwfv sample.vcd when '$! = 2'
310-330
650-670
$ dwfv sample.vcd when '$! <- 4'
350
690