vcs中使用tcl脚本dump fsdb格式的波形
在 Synopsys VCS 仿真环境中生成波形文件,可以通过以下几种方法实现:
完整工作流示例(FSDB)
1. 编译设计
vcs -full64 -debug_acc+all -sverilog \
-LDFLAGS "-Wl,--no-as-needed" \
-P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab \
${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a \
-f filelist.f -top tb_top
2. 创建 TCL 脚本 run_fsdb.tcl
fsdbDumpfile "wave.fsdb" -size 1024M -fileNum 100 -fifo_size 1024
fsdbDumpvars 0 tb_top # 0=抓取所有层次
fsdbDumpMDA # 抓取存储器内容
run -all
fsdbDumpflush
exit
3. 运行仿真
./simv -ucli -do run_fsdb.tcl
4. 查看波形
verdi -ssf wave.fsdb &
常见问题解决
-
信号未显示:
- 编译时添加
-debug_region+cell+encrypt - 在 TCL 脚本中使用
probe -force -create signal_path
- 编译时添加
-
FSDB 无法生成:
- 确认
VERDI_HOME环境变量设置正确 - 检查 PLI 库路径是否匹配操作系统(LINUX64 或 LINUX)
- 确认
-
波形文件过大:
# 限制抓取深度 probe -create tb_top -depth 2 # 或只抓取特定模块 probe -create tb_top.dut.module_a -
部分时间无波形:
// 在测试平台中延迟启动 initial begin #100; // 等待初始化完成 $fsdbDumpvars(0, tb_top); end
格式对比
| 格式 | 优点 | 工具 | 生成方式 |
|---|---|---|---|
| VPD | VCS 原生支持 | DVE | database -vpd 或 $vcdpluson |
| FSDB | 加载速度快 | Verdi | fsdbDumpfile 或 $fsdbDumpvars |
| SHM | Cadence 兼容 | SimVision | probe -create -shm |
根据调试需求选择合适的波形格式,通常:
- 使用 VCS DVE 调试 → 选择 VPD
- 使用 Verdi 调试 → 选择 FSDB
浙公网安备 33010602011771号