本文主要介绍了Synopsys中波形查看工具Verdi的基本使用,重点在于VCS与verdi联动时生成fsdb波形文件的方法
生成fsdb波形文件
1.基于SV系统函数的方法
1.1 filelist.f
与vcs自带的vpd文件保存方法类似,需要在filelist中先定义一个宏
1
2
3
4
5
6
7
8
9//Macro define
//+define+DUMP_VPD
+define+FSDB
//Source file
./counter.sv
//Testbench
./counter_tb.sv
1.2 Makefile
makefile中是vcs+verdi的联合使用相关的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55all: clean comp sim verdi
#if you want to delete simv, recommend simv_* to rename
sim_name = simv_counter
#set a new vpd file name
vpd_name = +vpdfile+${sim_name}.vpd
#Code coverage command
CM = -cm line+cond+fsm+branch+tgl
CM_NAME = -cm_name ${sim_name}
CM_DIR = -cm_dir ./${sim_name}.vdb
clean:
rm -rf ./csrc *.daidir *.log simv* *.key *.vpd ./DVEfiles *.vdb
rm -rf verdiLog *.fsdb *.bak *.conf
## VCS and Verdi
comp:
vcs -full64 -cpp g++ -cc gcc -LDFLAGS -no-pie -LDFLAGS -Wl,--no-as-needed -CFLAGS -fPIE \
-sverilog +v2k -timescale=1ns/1ps \
-debug_acc+all \
-fsdb \
-o ${sim_name} \
-l compile.log \
-f filelist.f \
sim:
./${sim_name} -l sim.log
verdi:
verdi -sv -f filelist.f -ssf *.fsdb &
## ONLY VCS
#comp:
# vcs -full64 -cpp g++ -cc gcc -LDFLAGS -no-pie -LDFLAGS -Wl,--no-as-needed -CFLAGS -fPIE \
-sverilog +v2k -timescale=1ns/1ps \
-debug_acc+all \
${vpd_name} \
${CM} \
${CM_NAME} \
${CM_DIR} \
-o ${sim_name} \
-l compile.log \
-f filelist.f \
#sim:
# ./${sim_name} \
${vpd_name} \
${CM} ${CM_NAME} ${CM_DIR} \
-l sim.log \
#show the coverage
cov:
dve -full64 -covdir *.vdb &- 在comp中:
-fsdb
#表示支持fsdb相应操作
- 在sim中:
-ssf *.fsdb
#启动verdi并自动加载fsdb类型的波形- 如果语言使用的是SV,则一定要加上
-sv
,否则某些变量的波形会加载不出来
- 在comp中:
1.3 Testbench中的相关设置
1 | //dump Verdi file |
- 其中
$fsdbDumpvars()
的使用方法与vcdplusmemon()
类似
2.基于ucli/tcl接口的方法
2.1 添加ucli、tcl接口
- 即编写tcl脚本:fsdb_vcs.tcl
1 | global env |
2.2 Makefile
1 | all: clean comp sim verdi |
其中:
- -debug_acc+all可以使能ucli命令
- +fsdb+autoflush为边仿真边dump波形
最终演示结果如下:
gui界面的操作
使用
make comp
、make sim
、make verd
i操作后,可得到如下gui界面基本操作:
信号选择:
- 模块波形:选择某一模块,按ctrl+4或直接拖拽
- 某一信号波形:代码界面中选择某一信号,按ctrl+w或者直接拖拽
查看波形:
- 全局波形,按f键或点击100%按钮
- 缩小波形:按z键
- 放大波形:鼠标左键拖选放大范围
- 显示结构:按h键
- 删除信号:按delete键
标记时间节点:
按shift+M,再按照如下示例操作
鼠标左键控制黄色cursor,鼠标中键控制白色cursor