Crates.io | dwfv |
lib.rs | dwfv |
version | 0.4.1 |
source | src |
created_at | 2019-12-24 15:00:52.622296 |
updated_at | 2020-08-01 12:43:59.033017 |
description | A simple digital waveform viewer with vi-like key bindings |
homepage | |
repository | https://github.com/psurply/dwfv |
max_upload_size | |
id | 192132 |
size | 252,309 |
A simple digital waveform viewer with vi-like key bindings.
$ 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.
$ cargo install dwfv
From sources:
$ cargo install --path .
q
: quith
/Left: move cursor leftj
/Down: move cursor downk
/Up: move cursor upl
/Right: 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^
/Home: jump to the first event$
/End: jump to the last eventgg
: jump to first signalG
: jump to last signalzi
/+
: zoom inzo
/-
: zoom outzc
/=
: zoom fitzz
: center cursor on screeno
: edit layoutdd
/Delete: delete the selected signalyy
: copy the selected signalp
: paste the clipboard after cursorP
: paste the clipboard before cursoru
: undor
: redoc
: show clipboardf
: search for event in the selected signal/
: search for pattern in the signal's namesn
: repeat search forwardN
: repeat search backwardv
: start visual mode<enter>
: zoom fit the selected time frame$ dwfv examples/sample.vcd --stats
test
! (value) - width: 8, edges: 37, from: 0s, to: 1010s
" (clk) - width: 1, edges: 102, from: 0s, to: 1010s
# (reset) - width: 1, edges: 5, from: 0s, to: 620s
c1
" (clk) - width: 1, edges: 102, from: 0s, to: 1010s
# (reset) - width: 1, edges: 5, from: 0s, to: 620s
$ (out) - width: 8, edges: 37, from: 0s, to: 1010s
$ dwfv sample.vcd --at 1337
test
! (value) = h14
" (clk) -> h1
# (reset) = h0
c1
" (clk) -> h1
# (reset) = h0
$ (out) = h14
Events in the waveforms can be searched using the '--when' option. Examples:
value
signal is equal to 2
:$ dwfv sample.vcd --when '$! = 2'
310s-330s
650s-670s
$ dwfv sample.vcd --when '$! equals h2'
310s-330s
650s-670s
value
signal transitions to 4
:$ dwfv sample.vcd --when '$! <- 4'
350s
690s
$ dwfv sample.vcd --when '$! becomes b100'
350s
690s
value
signal transitions to 4
after 400s:$ dwfv sample.vcd --when '$! <- 4 and after 400'
690s
value
signal transitions to 4
before 400s:$ dwfv sample.vcd --when '$! <- 4 and before 400'
350s