verdi 知识结构更新

本文介绍了Verdi工具在调试和分析过程中的多种实用技巧,包括:1) 如何快速定位信号错误源;2) 解决ntrace和fsdb hierarchy不匹配问题;3) 使用VMM中的fsdbLog功能;4) 波形比较与定位错误;5) 通过siloti减少波形文件大小;6) ntrace与STA报告的结合使用;7) 时序问题的根源查找;8) 抽取和分析assertion的波形;9) 导入VMM和OVM库;10) 文件列表目录指定及新fsdb dumper的应用。
部署运行你感兴趣的模型镜像

1. verdi 加强了active anotation, active trace和trace this value的能力,并且引入了Temperal flow view。在trace X的时侯面对很多选项,推举的快速定位的方法是:

   1) 找出来自于信号源的明显的错误,譬如(uninitialize,setup, hold time voilation, no drivers)

         •Stop at black box output signal (ON)
         • Stop at fanin that is X but no transition in its last cycle (OFF)
         • Snap to value change and continue (ON)  -----------找出第一个X

         // 尽量放开了跑,遇到黑盒子才停止。

 

   2) 准确找出active X源

         • Stop at black box output signal (ON)
         • Stop at fanin that is X but no transition in its last cycle (ON)  -----找出从此向前来源是固定的X(activeX)

         • Snap to value change and continue (OFF)

 

   3) 设置number of cause

         • Use the default setting : Stop after finding 1 cause

          • 如果遇到很多类似的cause,那么设为trace all causes

 

2. 当碰到ntrace和fsdb的hierarchy层次不一样时,不能联动。解决方案 set virtual top

    vritual top/map file:         CPU = system.i_cpu

 

 

3. 在VMM中引入fsdbLog

 

4. 波形比较找出mismatch point, 然后在定位发生mismatch的原因

如果是相同的design view,    Waveform comparison -> behavior trace for fsdb mismatch 

   ---》 适合RTL和RTL的比较,定位引起错误的源头

如果是不同的design view,    Waveform comparison -> Trace this value in flow view for different design

 

5. 利用siloti减少波形记录文件大小,进而加快仿真速度

步骤如下:

    1. 生成主要信号的列表文件

      esa -bas tb_CPUsystem -f run.f -all_eslist fullchip.list

      //  -bas 指明了work scope,即一旦design 加载就立刻进行behavior analyse的范围

      //  -all_eslist 指明了生成 hierachy 和 plain list 两种形式的信号列表文件

 

     2. dump 主要信号的波形

      • $fsdbDumpfile("ess.fsdb");
      • $fsdbDumpvarsToFile("fullchip.list");

 

     3. 启动verdi,在必要时打开visibility的相关选项

         Tools -> Visibility -> Data Expansion -> Enable Data Expansion

 

6. ntrace 可以吃进prime time 的STA report 文件并自动将其转为XML文件,用以形象的debug timing的关键路径为何出现问题

          File -> Import Path Data File -> Select the violate_path.rpt    

 

         • Show this path on nSchema
         • Show this path on File Viewer
         • D&D the 42.860 delay from File Viewer into nSchema
         • Debug the reason of this huge delay on schematic window
         • Tools-> New Schematic ->Connectivity

 

7. 当gate level和rtl level 的波形不一致时可以采用“trace triggering path,based on transition,来找到由于时序问题产生错误的根源”

         steps:

         1. compare rtl and gate simulation mismatch,以gate wave form 为主导

         2. 在产生变化的地方(transition发生处),产生TFV

         3. trace triggering path 并设为stop at Register Boundary

         4. 找到源头后,ctrl+K把clock放入waveform中加以分析。

 

8.  如何dump assertion的波形

 

 

 

verdi的assertion evaluation组件还能自动推算出修改或新增的assertion的行为,主要是在property tools界面下启动evaluator,然后修改store to all。就能自动推算出新的assertion,并生成新的波形文件。

 

9. Import SVTB with VMM library

    1) 用户用自己的VMM library

          verdi –sv –f run.f +incdir+your_vcs_vmm_library_path

    2) 用户没有VMM library

          verdi –sv –f run.f -ntb_opts vmm

 

10. Import SVTB with OVM library

        1.) 在源代码中加入 `include "ovm.svh"

        2.) verdi -sv -f run.f +incdir+${IUS81_HOME}/tools/ovm/src +define+INCA -ignorekwd_config

 

 

11. 现在很多verilog 的filelist 文件中用如下形式来指定文件所在的目录就行了,而不必指定具体文件

               

上面通过-y 指定library目录, +libext+.v指定library后缀名。 有时候还用-v 来指定library文件。但是这样直接被verdi吃进去以后不能显示hierarchy和文件。verdi提供了解决的办法:   -ssy  (用来取消-y指定的library为library cell)     -ssv (用来取消-v 指定的library为library cell)

               

 

 

12.  新的fsdb dumper 的应用

Verdi 從2010.04之後提供全新架構的FSDB PLI。新的FSDB PLI針對System Verilog有更完整的support,有比較好的performance。另外也支援同時dump不同的fsdb檔案。

 

現在已經可以在new dumper上,以parallel dumping的方式來加快dump fsdb的速度。使用方法就是在執行simulation的指令上,加上+fsdb+parallel的參數。例如:

For VCS==> simv <+original_options> +fsdb+parallel
For IUS==> irun <+original_options> +fsdb+parallel

 

什麼是「-debug_pp」?

1. VCS的debug options有三個levels:-debug_all、-debug、-debug_pp。

2. -debug_pp是三種level當中,performance最好的。

3. -debug_pp是+memcbk, +vcsd, +vpi, -ucli 這些options的集合。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

<think> 嗯,用户这次明确想要获取Verdi的使用教程。结合之前的对话历史和系统指令,我需要整理一个结构化的教程,同时参考站内提供的引用内容。 用户可能是个数字IC验证工程师或相关专业的学生,正在学习Verdi调试工具。从引用[1]看出用户已有Verilog和Linux基础,但第一次接触Verdi,需要从环境配置到波形调试的全流程指导。 重点参考了三处引用:[1]说明了Verdi与VCS的配合关系和环境变量配置;[2]补充了.bashrc的具体配置项和波形生成方法;[3]则提供了保存信号列表等实用技巧。需要把这些碎片信息整合成逻辑链条: 首先强调环境配置的完整性,因为这是很多新手卡壳的点。引用[1][2]都提到NOVAS_HOME/LD_LIBRARY_PATH这些关键变量,特别要注意VCS配合使用时还需在测试平台添加$fsdbDumpfile等函数——这点在引用[2]的"tb中加入系统函数"提过但不够具体,需要展开说明。 波形查看部分,引用[3]的信号保存功能很实用但描述简略,可以补充操作细节比如.rc文件的作用。用户可能更关注效率技巧,所以把"快速定位信号"和"波形比较"这些高频功能提前。 考虑到用户实际使用时可能遇到的坑,在注意事项里加入了常见问题:比如环境变量配置后需要source生效,VCS编译要加-kdb选项等。这些虽然没在引用里明说,但确实是实战经验。 最后生成的四个问题都紧扣用户进阶需求:性能优化和脚本自动化是工程实践的刚需,而nWave和nTrace的功能差异能帮助用户理解工具设计逻辑。这些问题也暗合引用[3]提到的信号保存功能延伸。 </think> 以下是基于引用资料的Verdi使用教程详解,包含关键配置和操作流程: --- ### **1. 环境配置(Linux系统)** - **必须配置的环境变量**(添加到`.bashrc`或`.cshrc`): ```bash export NOVAS_HOME=/opt/Synopsys/Verdi2015 # Verdi安装路径 export PATH=$NOVAS_HOME/bin:$PATH # 系统识别Verdi命令 export LD_LIBRARY_PATH="$NOVAS_HOME/share/PLI/lib/linux64:$NOVAS_HOME/share/PLI/VCS/linux64" # 库文件路径 ``` > 配置后执行 `source ~/.bashrc` 生效[^1][^2]。 --- ### **2. 与VCS协同工作流程** Verdi需配合仿真工具(如VCS)使用: 1. **在Testbench中添加波形导出函数** 在Verilog测试文件中插入: ```verilog initial begin $fsdbDumpfile("wave.fsdb"); // 指定波形文件名 $fsdbDumpvars(0, tb_top); // 0表示转储所有层级信号 end ``` > `fsdb`是Verdi专用高效波形格式[^2]。 2. **VCS编译时启用kdb选项** ```bash vcs -full64 -sverilog +v2k -debug_acc+all -kdb -LDFLAGS -Wl,--no-as-needed <设计文件> ``` > `-kdb`生成Verdi所需的知识库(Knowledge Database)[^2]。 3. **运行仿真生成波形** ```bash ./simv # 执行VCS仿真,输出wave.fsdb ``` --- ### **3. Verdi基础操作** #### **启动与加载波形** ```bash verdi -sv -f <文件列表> -ssf wave.fsdb & ``` - `-ssf`:指定波形文件 - `&`:后台运行避免阻塞终端[^1] #### **核心功能** | **功能** | **操作路径** | **说明** | |------------------|----------------------------------|-----------------------------------| | 查看RTL结构 | 左侧`nTrace`窗口 | 显示设计层次结构 | | 查看波形 | 左侧`nWave`窗口 | 拖拽信号到波形窗口 | | 保存信号列表 | `File → Save Signal` | 生成`.rc`文件,下次`Restore Signal`复用[^3] | | 快速信号追踪 | `Trace → Trace Driver/Load` | 追踪信号驱动/负载逻辑 | | 状态机可视化 | 双击FSM模块 → `Schematic` | 图形化显示状态转移 | --- ### **4. 实用技巧** - **信号搜索**:在`nWave`窗口按`Ctrl+F`,支持正则表达式匹配信号名。 - **波形比较**:`Tools → Compare Signals`,用于验证设计修改前后差异。 - **书签功能**:在波形窗口按`B`标记关键时间点,按`F`快速定位。 --- ### **注意事项** 1. VCS编译时若缺少`-kdb`选项,Verdi无法加载设计结构; 2. 若信号未出现在波形中,检查`$fsdbDumpvars`层级设置; 3. 环境变量配置错误会导致启动失败,可通过`which verdi`验证路径[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值