verdi工具的使用

debussy(verdi之前的Debug工具)
verdi:若想用Verdi观察波形,需要在仿真时生成fsdb文件,而fsdb在vcs或者modelsim中的生成是通过两个系统调用$fsdbDumpfile $fsdbDumpvars来实现的。而这两个系统调用并不是Verilog中规定的,是Verdi以pli(Programming Language Interface)的方式实现的。这就需要让vcs编译时能找到相应的库。
例如:
verdi工具的使用_第1张图片
其中波形文件有以下种类:
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工具的使用_第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工具的使用_第4张图片
verdi工具的使用_第5张图片

你可能感兴趣的:(VCS)