Verdi与vcs、irun和questasim联合仿真脚本记录

  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接口

1
2
3
4
5
6
7
8
9
10
11
12
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 脚本为

1
2
3
4
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接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 脚本为

1
2
3
4
5
global env
call fsdbDumpfile "$env(demo_name).fsdb"  # 需要使用call,与vcs区别之一
call  fsdbDumpvars 0 "tb_top"
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 $(VERDI_HOME)/share/PLI/MODELSIM/$(PLATFORM)/novas_fli.so \
    work.tb_top \ <br>     -do dump_fsdb_questa.tcl \ <br>     +fsdb+autoflush \ <br>     -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

  

 

posted @   辰风阆苑  阅读(2322)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示