Verdi UVM Debug Mode 简单使用
转载: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》
Verdi UVM Debug Mode 简单使用的更多相关文章
- Verdi Transaction Debug Mode 简单使用
转载:Verdi Transaction Debug Mode 简单使用_Holden_Liu的博客-CSDN博客 文档与源码: User Guide: Verdi_Transaction_and_P ...
- Java Debug调试简单方法--static使用
Public class Debug { public Debug() { } static void debugPrint(String src) { //System.out.print(src) ...
- Verdi Protocol Analyzer Debug 简单使用
转载:Verdi Protocol Analyzer Debug 简单使用_Holden_Liu的博客-CSDN博客_verdi 技巧 文档与源码: User Guide: UVMDebugUserG ...
- [珠玑之椟]浅谈代码正确性:循环不变式、断言、debug
这个主题和代码的实际写作有关,而且内容和用法相互交织,以下只是对于其内容的一个划分.<编程珠玑>上只用了两个章节20页左右的篇幅介绍,如果希望能获得更多的实例和技巧,我比较推崇<程序 ...
- Android的debug.keystore拒绝访问导致的生成异常及解决方案
构建Android应用程序的时候输出异常:[apkbuilder] keytool 错误: java.io.FileNotFoundException: C:\Users\my\.android\de ...
- flask debug 模式开启
debug 模式开启 最近在写python flask 的Waf后台管理界面,想要启用调试模式,发现安装目前网上流行的两种方式均无法在我的Pycharm中打开调试模式. )直接在对象上设置 app.d ...
- jetty debug 启动 jettyconfig配置文件
jetty 代码启动 debug很简单 run----->>>debug as 代码启动配置文件 start 方法 @Test public void serverStrart( ...
- java项目 远程debug
AVA项目无法像PHP那样可以随时修改文件内容进行调试,调试可以借助eclipse,本地代码的话很容易在本地debug,但如果代码已经打包部署在linux上呢?可以进行远程debug 很简单,只需 ...
- 汇编环境的搭建(windows 10 + debug)
1. debug.exe 安装 win10 版本过高,不再提供 debug.exe,甚至从别处获取的 debug.exe 的也无法运行. 汇编语言学习所需的各种执行文件(debug.exe.link. ...
随机推荐
- 使用私有gitlab发布自动生成版本号和标签(version和tag)(骚)
设置 semantic ,自动生成版本号和标签 FROM node:14-buster-slim LABEL maintainer="wangyunpeng" COPY sourc ...
- 【Sass/SCSS 完整自学中文版教程01】SCSS 官方英文文档翻译整理
Sass 基本介绍 目录 Sass 基本介绍 注释(Comments) 单行注释(Single-line comments) 多行注释(Multi-line comments) SassDoc 特殊的 ...
- 使用 mysql 的 Docker 镜像
使用 mysql 的 Docker 镜像 前言 之前搞了很多都是手工在操作系统的镜像中安装使用 mysql,作为自己折腾也就算了,作为实际使用实为不妥:Docker最重要的特性就是可扩展性,把各种程序 ...
- 图的遍历BFS广度优先搜索
图的遍历BFS广度优先搜索 1. 简介 BFS(Breadth First Search,广度优先搜索,又名宽度优先搜索),与深度优先算法在一个结点"死磕到底"的思维不同,广度优先 ...
- PHP中的日期相关函数(三)
之前我们已经介绍过了 PHP 的一些相关的日期操作对象,今天我们就来学习剩下的那些面向过程的使用方式.当然,如果是和 DateTime 类中相似的方法我们就不再进行介绍了.另外,Date() 和 ti ...
- 后期静态绑定在PHP中的使用
什么叫后期静态绑定呢?其实我们在之前的文章PHP中的static中已经说过这个东西了.今天我们还是再次深入的理解一下这个概念. 首先,我们通过一段代码来引入后期静态绑定这一概念: class A { ...
- JS HTML5仿微信朋友圈特效
完美! 图片相册翻页可定位在第几张,右上角可关闭. 源代码下载地址: 链接: https://pan.baidu.com/s/1o7PA7wu 密码: asyt
- js 模板方法模式
* 分离出共同点 function Beverage() {} Beverage.prototype.boilWater = function() { console.log("把水煮沸&q ...
- 浅析Java中的static关键字
关键点 <Java编程思想>对static方法的描述:"static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建对象的 ...
- js原型和原型链理解 constructor 构造函数
一.对象:普通对象 函数对象 二.构造函数特点:1.需要new实例化,内部使用this对象指向即将要生成的实例对象 2.首字母大写,用于区分普通函数 function Person(name){ ...