#vcd #key-bindings #waveform #digital-signal #tui #eda #viewer

bin+lib dwfv

一个简单的数字波形查看器,具有类似 vi 的按键绑定

6 个版本 (3 个重大更新)

0.4.1 2020 年 8 月 1 日
0.4.0 2020 年 7 月 5 日
0.3.0 2020 年 5 月 17 日
0.2.1 2020 年 5 月 8 日
0.1.0 2019 年 12 月 24 日

#417调试

Download history 15/week @ 2024-03-11 5/week @ 2024-03-18 60/week @ 2024-04-01 6/week @ 2024-04-08 8/week @ 2024-04-22 8/week @ 2024-05-20 13/week @ 2024-05-27 21/week @ 2024-06-03 26/week @ 2024-06-10 22/week @ 2024-06-17 19/week @ 2024-06-24

每月 90 次下载

MIT 许可协议

205KB
4.5K SLoC

DWFV

Build Status Crates.io Docs Status

一个简单的数字波形查看器,具有类似 vi 的按键绑定。

$ dwfv sample.vcd

screenshot

该工具以 IEEE 标准定义的值变化转储 (VCD) 文件(IEEE 标准号 1364-1995)为输入,并使用 tui-rs 显示波形。

还公开了后端 API,该 API 可用于在 Rust 中操作数字信号,并且可以独立于 TUI 使用。

安装

$ cargo install dwfv

从源代码安装

$ cargo install --path .

按键绑定

全局

  • q: 退出

光标移动

  • h/左:光标向左移动
  • j/下:光标向下移动
  • k/上:光标向上移动
  • l/右:光标向右移动
  • w: 跳转到下一个上升沿
  • e: 跳转到下一个下降沿
  • b: 跳转到上一个上升沿
  • 0: 跳转到时间戳 0
  • ^/Home: 跳转到第一个事件
  • $/End: 跳转到最后一个事件
  • gg: 跳转到第一个信号
  • G: 跳转到最后一个信号

  • zi/+: 放大
  • zo/-: 缩小
  • zc/=: 适合缩放
  • zz: 将光标置于屏幕中心

编辑

  • o: 编辑布局
  • dd/删除: 删除所选信号
  • yy: 复制所选信号
  • p: 在光标后粘贴剪贴板
  • P: 在光标前粘贴剪贴板
  • u: 撤销
  • r: 重复
  • c: 显示剪贴板
  • f: 在所选信号中搜索事件
  • /: 在信号名称中搜索模式
  • n: 重复向前搜索
  • N: 重复向后搜索

视觉模式

  • v: 开始视觉模式
  • <enter>: 适合缩放所选时间范围

鼠标

  • 左键点击: 移动光标
  • 右键点击: 缩小
  • 向上滚动鼠标滚轮: 放大
  • 向下滚动鼠标滚轮: 缩小
  • 按住/释放左键: 适合缩放所选时间范围

命令行界面

显示关于VCD文件的一些统计信息

$ 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

在波形中搜索

可以使用'--when'选项在波形中搜索事件。示例

  • value信号等于2
$ dwfv sample.vcd --when '$! = 2'
310s-330s
650s-670s
$ dwfv sample.vcd --when '$! equals h2'
310s-330s
650s-670s
  • value信号转换到4
$ dwfv sample.vcd --when '$! <- 4'
350s
690s
$ dwfv sample.vcd --when '$! becomes b100'
350s
690s
  • value信号在400秒后转换到4
$ dwfv sample.vcd --when '$! <- 4 and after 400'
690s
  • value信号在400秒前转换到4
$ dwfv sample.vcd --when '$! <- 4 and before 400'
350s

许可证

MIT

依赖关系

~4.5MB
~90K SLoC