DWFV

Build Status Crates.io Docs Status

A simple digital waveform viewer with vi-like key bindings.

shell $ dwfv sample.vcd

screenshot

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.

Installation

shell $ cargo install dwfv

From sources:

shell $ cargo install --path .

Key Bindings

Global

Cursor movement

Frame

Editing

Search

Visual mode

Mouse

Command-Line Interface

Show some stats about the VCD file

shell $ 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

Display values of the signals at a given time

shell $ dwfv sample.vcd --at 1337 test ! (value) = h14 " (clk) -> h1 # (reset) = h0 c1 " (clk) -> h1 # (reset) = h0 $ (out) = h14

Search in the waveforms

Events in the waveforms can be searched using the '--when' option. Examples:

shell $ dwfv sample.vcd --when '$! = 2' 310s-330s 650s-670s $ dwfv sample.vcd --when '$! equals h2' 310s-330s 650s-670s

shell $ dwfv sample.vcd --when '$! <- 4' 350s 690s $ dwfv sample.vcd --when '$! becomes b100' 350s 690s

shell $ dwfv sample.vcd --when '$! <- 4 and after 400' 690s

shell $ dwfv sample.vcd --when '$! <- 4 and before 400' 350s

LICENSE

MIT