转载:Verdi UVM Debug Mode 简单使用_Holden_Liu的博客-CSDN博客

文档与源码:

User Guide: UVMDebugUserGuide.pdf  in $VERDI_HOME/doc

Verdi online doc: Verdi Ooline Doc  //need log in SolvNet before

testbench使用的是《UVM实战》的7.4.3章节源码:

源码地址:UVM实战源码下载

介绍:

Verdi UVM Debug tool: 针对UVM 平台的debug工具,可以像打开RTL一样,层次化显示testbench,便于阅读。同时针对UVM特有的Resource,Factory,Phase,Sequence,Register,TLM connection等,可以显示仿真的详细内容。

准备:

环境变量: $VERDI_HOME, $LD_LIBRARY_PATH 等

TB: 包含reg_model.

top_tb.sv:

add dump wave

Makefile:

和正常的编译运行一样,只需在run time阶段,加上 “-gui=verdi"。

UVM_VERDI_XXX:具体含义如下

UVM_VERDI_COMPWAVE: 记录UVM Component的波形

UVM_TR_RECORD: 收集sequence中transaction信息。

使用:

1. 进入 Verdi的Interactive mode,此时并没有开始仿真,需要点击红框的绿色箭头或者在左下的Console输入"run"。

完场上述步骤,即完成仿真过程。运行的testcase就是Makefile脚本里指定的,可以在Tool->Preferences->Simulation中看到具体run_time Options:

2. 打开TB的Hierarchy Tree:

UVM-> All Views显示

Hierarchy Tree左侧显示

下方其他debug窗口

3.  显示更多信息

选中一个component或者TLM,右键可以选择其他信息,show connections, show objects,Add to Waveform等。

4.  Resource/Factory/Phase View见User Guide.

5. Sequence View:

5.1: 选中一个sequence,右键 Add Sequence to Watches

5.2: 可以显示transaction的”波形“和详细内容

选中一个sequence,右键 Add Sequence to Transaction Browser, 会在最下方调出 Protocol Analyzer界面。界面右侧有       transaction每个域的具体数值。也可以通过界面左侧的Hierarchy Tree添加其他sequence。

tansaction debug具体操作见:

Verdi Transaction Debug Tool 简单使用

6. Register View

界面显示:

1=> 选择Register_View

2=> 快捷筛选

3=> reg_model的寄存器access history。最后一次read发生在reference model中。(verdi-2017.12测试并不会记录    set,update寄存器的操作)

add to waveform,set breakpoint等。

Debugging UVM Registers in Verdi Post-Processing Mode see in User Guide.

7. 手动设置断点

在source code界面,右键选择set breakpoint,弹出Manage to Breakpoints界面,有多种设置方式,选择在Line 70行设置断点。

F10往下运行,会在Local tab显示数值变化。也可以右键选择Add to Watch.

(更多操作见:Verdi_SVTB_Interactive_Deubg.pdf)

8. Verdi Smart Log

加载log,方便搜索,筛选,定位。参考:Verdi_Smart_Log.pdf  in $VERDI_HOME/doc

待续:

参考:文档参考《UVMDebugUserGuide》

最新文章

  1. Java项目多数据源配置
  2. 构建新版本APP上传流程
  3. MVC中的视图
  4. Java基础之-ExecutorService
  5. Python概述_软件安装_常见问题
  6. 【风马一族_xml】xml编程
  7. [转]Apple iPod, iPhone (2g, 3g), iPad Dock connector pinout
  8. mac ox 配置java和maven
  9. 对Python这门课程的理解。
  10. python3下爬取网页上的图片的爬虫程序
  11. Create an Azure SQL database in the Azure portal
  12. cocos2dx JS layuot纯代码实现背景颜色渐变
  13. C# 特性学习笔记
  14. js几种创建对象的方式
  15. centos 6.5 gdb 7.10安装make[5]: *** [install-bfdincludeHEADERS] Error 1解决
  16. JDK1.8中如何用ScriptEngine动态执行JS
  17. swift视图的添加及层次变动和基本动画
  18. Mybatis类型转换介绍
  19. Python之Tornadoweb框架使用
  20. HDU - 5289 Assignment (RMQ+二分)(单调队列)

热门文章

  1. Expression 表达式动态生成
  2. 计算字符串的长度.len,RuneCountInString
  3. FastAPI(5)- get 请求 - 查询参数 Query Parameters
  4. 迷宫2----BFS
  5. Set代码
  6. 简单了解Phar代码打包工具的使用
  7. jquery播放视频事件
  8. axios的简单的使用
  9. Redux使用指南
  10. 解决安装mysql 到start service出现未响应问题