verdi使用linux命令,verdi工具的使用

debussy(verdi之前的Debug工具)

verdi:若想用Verdi观察波形,需要在仿真时生成fsdb文件,而fsdb在vcs或者modelsim中的生成是通过两个系统调用$fsdbDumpfile $fsdbDumpvars来实现的。而这两个系统调用并不是Verilog中规定的,是Verdi以pli(Programming Language Interface)的方式实现的。这就需要让vcs编译时能找到相应的库。

例如:

verdi使用linux命令,verdi工具的使用_第1张图片

其中波形文件有以下种类:

verdi使用linux命令,verdi工具的使用_第2张图片

生成FSDB波形

使用verdi之前,应配置哪些环境变量(bash使用export,cshell使用setenv)

$VERDI_HOME/NOVAS_HOME(为设置PATH做准备)

$PATH(让系统能够找到verdi)

$LD_LIBRARY_PATH(让系统linux能够找到verdi需要的库文件)

$LD_LIBRARY_PATH目录库文件类似于Windows的dll,包括*.so(共享对象),*.a(静态库)等,库文件还需要*.tab(表格文件)来获取对应的信息。

linux命令

echo(sed):查询环境变量,如PATH

which:查询当前软件是否配置成功

uname:查询当前系统信息,如硬件平台

echo $PATH | sed ‘s/\:/\n/g’//全局使用\:替代\n

echo $LD_LIBRARY_PATH | sed ‘s/\:/\n/g’

which verdi

uname -i 获取硬件平台信息:如硬件平台64bit为x86_64/amd64,32bit平台为i386

两种方法:

(1)使用verilog系统函数

initial begin

$fsdbDumpfile("top_tb.fsdb");

$fsdbDumpvars(0,"tob_tb");

end

(2)使用Ucli/Tcl接口(生成fsdb波形)

global env

fsdbDumpfile "$env(demo_fifo).fsdb"

fsdbDumpvars 0 "top_tb"

run

Synopsys:VCS + Verdi

Cadence :irun + Verdi

Mentor :Questa + Verdi

verdi使用linux命令,verdi工具的使用_第3张图片

com:

vcs -full64 \

-sverilog \

-debug_pp \ # 使能UCLI命令

-LDFLAGS \ # 传递参数给VCS的linker,与以下三行配合使用

-rdynamic \ # 指示需加载的动态库,如libsscore_vcs201209.so

-P ${VERDI_HOME}/share/PLI/VCS/${PLATFORM}/novas.tab \ # 加载表格文件

${VERDI_HOME}/share/PLI/VCS/${PLANTFORM}/pli.a \ # 加载静态库

-f ../${demo_name}/tb_top.f \

+vcs+lic+wait \

-l compile.log

sim:

./simv \

-ucli -i ../scripts/dump_fsdb_vcs.tcl \ # ucli的输入文件(-i)为tcl脚本

+fsdb+autoflush \ # 命令行参数autoflush,一边仿真一边dump波形,如果没有该参数,那么不会dump波形,需要在ucli命令run 100ns后键入fsdbDumpflush才会dump波形

-l sim.log

debug:

verdi \

-sv \ # 支持sv

-f ../${demo_name}/tb_top.f \ # 加载设计文件列表

-top tb_top \ # 指定设计顶层

-nologo # 关掉欢迎界面

//支持+incdir+xx 设置include文件目录

//+libext+.v 设置库文件后缀

//-v 设置可搜索设计的文件

//-y 设置可搜索设计的目录

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所有层次

run # 设置完dump信息,启动仿真(此时仿真器被ucli控制) 可以run 100ns会在仿真100ns的时候停下来下来

verdi使用linux命令,verdi工具的使用_第4张图片

verdi使用linux命令,verdi工具的使用_第5张图片

你可能感兴趣的:(verdi使用linux命令)