欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用Verdi与vcs、irun和questasim进行联合仿真的步骤记录

最编程 2024-08-07 07:38:54
...

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 $(VERDI_HOME)/share/PLI/VCS/$(PLATFORM)/novas.tab \
	       $(VERDI_HOME)/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所有层次
    run                                    # 设置完dump信息,启动仿真(此时仿真器被ucli控制) 可以run 100ns会在仿真100ns的时候停下来下来

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"
run   
quit                                      # 需要使用quit,irun不自动结束

3. questasim脚本

com:
	vlib work
	vmap work work
	vlog -64 -sv +acc \
	-f tb_top.f \
	-l com_questa.log

sim:
	vsim -64 -batch -pli $(VERDI_HOME)/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

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

4. Verdi加载fsdb脚本

run_verdi:
    verdi \
    -sv \                            # 支持sv
    -nologo \                      # 关掉欢迎界面
    -f tb_top.f \    # 加载设计文件列表
    -ssf tb_top.fsdb