GTKWave:查看波形
更新时间:2026-09-21。硬件工具。波形来源见 Icarus Verilog、Verilator。
一句话回答
GTKWave 是开源波形查看器,用来打开仿真导出的 VCD/FST 文件:在左侧信号树(SST)选模块、把关心的信号拖到右侧波形窗口,就能看每个时刻的值和跳变;可以改进制、加标记测量周期,并把信号布局存成 .gtkw,下次直接恢复。
一、打开
bash
gtkwave wave.vcd
# Verilator 常用压缩格式 FST:
gtkwave wave.fst也可在菜单 File → Open New Tab 打开。
二、基本操作
- 左上选 SST 标签,展开层次树,点某个模块;
- 左下信号列表里选中信号,点 Append(或双击/拖入)加到波形区;
- 工具栏缩放:
+ / -放大缩小、=适配全屏、左右箭头平移; - 选中信号,底部 Data Format 改进制(Hex/Decimal/Binary/ASCII);
- 菜单 Marks 加时间标记,鼠标点某处即定位到该时刻,状态栏显示时间值。
三、保存布局
调好信号和分组后 File → Write Save File 存为 trace.gtkw,以后 gtkwave trace.gtkw wave.vcd 直接还原,不用每次重新拖信号。
常见坑
- VCD 打开是空的:testbench 没写
$dumpvars(0, tb),或层级写得太浅,没记录到目标信号。 - 信号显示红色 Z / X:
Z高阻通常是没驱动/多驱动冲突,X未初始化,是 RTL 或复位问题,不是工具问题。 - 找不到信号:在 SST 树里定位到实例化它的那一层,搜索框可按名字过滤。
- 波形太密看不清:先放大,或用标记框住一段、配合时间游标读数。
- FST 拖不出信号:确认仿真时开启了对应的 trace 格式。
- 大波形卡顿:FST 比 VCD 更紧凑,长仿真优先用 FST。
总结
GTKWave 打开 VCD/FST,从 SST 选信号拖入波形区即可按时间看跳变、改进制、加标记测量,并可用 .gtkw 保存布局;空波形多半是没 dumpvars,红 Z/X 则指向 RTL 的未驱动或未初始化问题。