转载网上博主文章,发现部分地方要修改才可以用,修复如下(mentor工具未测试):
Verdi介绍:https://www.synopsys.com/zh-cn/verification/debug/verdi.html
Verdi 系统提供了以下基本调试功能:
功能全面的波形查看器使您能够显示和分析各个时间段的活动
功能强大的波形比较引擎可以让您隔离快速信号数据库 (FSDB) 文件之间的差异
源代码浏览器使您能够在源代码和层次结构之间轻松来回移动
灵活的原理图和方框图使您能够使用熟悉的符号显示逻辑和连接
直观的气泡图帮助您揭示有限状态机的操作
三大EDA厂商软件生成波形可以和verdi配合使用:
Sysnopsys–vcs
Cadence–irun
Mentor–Qustasim
在平常工作时,正是由于verdi强大的看波形debug的功能,可以通过VCS、irun和Questasim编译后,产生Verdi可以加载的快速信号数据库 (FSDB) 文件,并通过Verdi加载以后方便的进行debug。因此记录一下三大EDA厂商软件生成fsdb波形的脚本。
1. VCS脚本:使用UCLI接口
com:
vcs -sverilog -debug_acc+all -LDFLAGS -rdynamic -full64
-P
(
V
E
R
D
I
H
O
M
E
)
/
s
h
a
r
e
/
P
L
I
/
V
C
S
/
(VERDI_HOME)/share/PLI/VCS/
(VERDIHOME)/share/PLI/VCS/(PLATFORM)/novas.tab
(
V
E
R
D
I
H
O
M
E
)
/
s
h
a
r
e
/
P
L
I
/
V
C
S
/
(VERDI_HOME)/share/PLI/VCS/
(VERDIHOME)/share/PLI/VCS/(PLATFORM)/pli.a
-f tb_top.f
+vcs+lic+wait
-l com_vcs.log
sim:
./simv +ntb_random_seed=$(SEED)
-ucli -i dump_fsdb_vcs.tcl
+fsdb+autoflush
-l sim_vcs.log
对应的 dump_fsdb_vcs.tcl 脚本为
global env # tcl脚本引用环境变量,Makefile中通过export定义
fsdbDumpfile “$env(demo_name).fsdb” # 设置波形文件名,受环境变量env(demo_name)控制 # demo_name在makefile中使用export demo_name=demo_fifo
#fsdbDumpvars 0 “tb_top” # 设置波形的顶层和层次,表示将tb_top作为顶层,Dump所有层次
fsdbDumpvarsToFile “dump.list” # 在dump.list中设置dump层次
run # 设置完dump信息,启动仿真(此时仿真器被ucli控制) 可以run 100ns会在仿真100ns的时候停下来下来
dump.list实例如 1 harness.dut
2. IRUN脚本 使用ncsim接口
com:
irun -elaborate -access +r
-f tb_top.f
-top tb_top
-licqueue
-l com_irun.log
sim:
irun -R
-input dump_fsdb_irun.tcl
+fsdb+autoflush
-licqueue
-l sim_irun.log
对应的 dump_fsdb_irun.tcl 脚本为
global env
call fsdbDumpfile \"$env(demo_name).fsdb\" # 需要使用call,与vcs区别之一,“需要转义
#call fsdbDumpvars 0 \“tb_top\”
call fsdbDumpvarsToFile \”./dump.list\" # 在dump.list中设置dump层次
run
quit # 需要使用quit,irun不自动结束
3. questasim脚本
1
2
3
4
5
6
7
8
9
10
com:
vlib work
vmap work work
vlog -64 -sv +acc
-f tb_top.f
-l com_questa.log
sim:
vsim -64 -batch -pli
(
V
E
R
D
I
H
O
M
E
)
/
s
h
a
r
e
/
P
L
I
/
M
O
D
E
L
S
I
M
/
(VERDI_HOME)/share/PLI/MODELSIM/
(VERDIHOME)/share/PLI/MODELSIM/(PLATFORM)/novas_fli.so
work.tb_top \
-do dump_fsdb_questa.tcl \
+fsdb+autoflush \
-l sim_questa.log
对应的 dump_fsdb_questasim.tcl
1
2
3
4
5
gloal env
fsdbDumpfile “$env(demo_name).fsdb”
fsdbDumpvars 0 “tb_top”
run -all
quit -sim
4. Verdi加载fsdb脚本
1
2
3
4
5
6
run_verdi:
verdi
-sv \ # 支持sv
-nologo \ # 关掉欢迎界面
-f tb_top.f \ # 加载设计文件列表
-ssf tb_top.fsdb