Verdi学习笔记

发布时间 2023-07-18 10:15:18作者: 甜心主教

Verdi
生成FSDB波形
Synopsys+Verdi
两大方法:
1.Verilog系统函数
在testbench中添加:

initial begin
`ifdef DUMP_FSDB
$fsdbDumpfile("top_tb.fsdb"); //产生fsdb文件
$fsdbDumpvars(0,counter_tb); //第一个参数为0,表示Dump所有层次,非0表示最大层次;第二个参数Dump模块名
`endif
end

日志中查找生成记录:/Verdi
2.Ucli/Tcl接口(基于脚本实现) 优点:修改dump参数,不需要重新编译;使用高级语言,支持正则表达式,容易完成复杂处理

编写脚本:

global env
fsdbDumpfile "$env(demo_name).fsdb"
fsdbDumpvars 0 "tb_top"
run

make sim时添加指令:

-ucli -i ../scripts/dump_fsdb_vcs.tcl

便于实现交互式控制:在ucli接口输入命令
更改脚本:

global env
fsdbDumpfile "$env(demo_name).fsdb"
fsdbDumpvars 0 "tb_top"
run 100ns
#fsdbDumpoff
#run 200ns
#fsdbDumpon
#run

通过run,fsdbDumpon/off在ucli控制仿真

 

Cadence+Verdi
Makefile:

run_irun:
irun \
-R \
-input ../scripts/dump_fsdb_irun.tcl \
+fsdb+autoflush \
-licqueue \
-l sim.log

dump_fsdb_irun.tcl:

global env
call fsdbDumpfile "$env(demo_name).fsdb"
call fsdbDumpvars 0 "tb_top"
run
quit

Questa+Verdi
Makefile:

comp_questa:
vlib work
vmap work work
vlog \
-64 \
-sv \
+acc \
-f ../${demo_name}/tb_top.f \
-l compile.log

run_questa:

vsim \
-64 \
-batch \
-novopt \
-pli ${VERDI_HOME}/share/PLI/MODELSIM/${PLATFORM}/novas_fil.so \
work.tb_top
-do ../scripts/dump_fsdb_questa.tcl \
+fsdb+autoflush \
-l sim.log

脚本dump_fsdb_questa.tcl:

global env
fsdbDumpfile "$env(demo_name).fsdb"
fsdbDumpvars 0 "tb_top"
run -all
quit -sim

加载和设计波形:

 


verdi加载设计脚本:
dgb:

verdi \
-sv \
-f ../${demo_name}/tb_top.f \
-top tb_top \
-nologo \

自动加载 -ssf *.fsdb

重复加载设计和波形:

重新加载设计
nTrace-->File->Reload Design
重新加载波形
nWave->File ->Reload
选择信号两种方式
nTace:左键拖选,Ctrl+w
nWave:可使用通配符,可方便选择输入,输出,input,wire,reg信号
查看波形

 

追踪设计
通过拓扑结构,Trace/Load快速熟悉设计
快速找到应用示例
nTrace中获取当前时刻信号值