转载: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 简单使用的更多相关文章

  1. Verdi Transaction Debug Mode 简单使用

    转载:Verdi Transaction Debug Mode 简单使用_Holden_Liu的博客-CSDN博客 文档与源码: User Guide: Verdi_Transaction_and_P ...

  2. Java Debug调试简单方法--static使用

    Public class Debug { public Debug() { } static void debugPrint(String src) { //System.out.print(src) ...

  3. Verdi Protocol Analyzer Debug 简单使用

    转载:Verdi Protocol Analyzer Debug 简单使用_Holden_Liu的博客-CSDN博客_verdi 技巧 文档与源码: User Guide: UVMDebugUserG ...

  4. [珠玑之椟]浅谈代码正确性:循环不变式、断言、debug

    这个主题和代码的实际写作有关,而且内容和用法相互交织,以下只是对于其内容的一个划分.<编程珠玑>上只用了两个章节20页左右的篇幅介绍,如果希望能获得更多的实例和技巧,我比较推崇<程序 ...

  5. Android的debug.keystore拒绝访问导致的生成异常及解决方案

    构建Android应用程序的时候输出异常:[apkbuilder] keytool 错误: java.io.FileNotFoundException: C:\Users\my\.android\de ...

  6. flask debug 模式开启

    debug 模式开启 最近在写python flask 的Waf后台管理界面,想要启用调试模式,发现安装目前网上流行的两种方式均无法在我的Pycharm中打开调试模式. )直接在对象上设置 app.d ...

  7. jetty debug 启动 jettyconfig配置文件

    jetty 代码启动 debug很简单  run----->>>debug as  代码启动配置文件 start 方法 @Test public void serverStrart( ...

  8. java项目 远程debug

    AVA项目无法像PHP那样可以随时修改文件内容进行调试,调试可以借助eclipse,本地代码的话很容易在本地debug,但如果代码已经打包部署在linux上呢?可以进行远程debug   很简单,只需 ...

  9. 汇编环境的搭建(windows 10 + debug)

    1. debug.exe 安装 win10 版本过高,不再提供 debug.exe,甚至从别处获取的 debug.exe 的也无法运行. 汇编语言学习所需的各种执行文件(debug.exe.link. ...

随机推荐

  1. Sonarqube C# 配置资料整理

    c#配置方式: http://www.cnblogs.com/CoderAyu/p/9416376.html http://www.cnblogs.com/jingridong/p/6513884.h ...

  2. linq 集合按照多列进行distinct

    List<TaskBatch> sourceList = (from c in BatchCollecion                                         ...

  3. PHP中的MySQLi扩展学习(四)mysqli的事务与预处理语句

    对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本.我们之前也已经学习过了 PDO 中关于事务和预处理语句相关的内容.所以在这里,我们就不再多讲理论方面的 ...

  4. SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x90\xA3\xF0\x9F...' for column

    在做微信公众号保存用户数据时出现这种错误,一直不知道是哪里的原因,后来发现那个用户昵称带着一只兔子表情,由于数据库编码限制不能保存数据,所有需要先编码, 用PHP的函数就是base64_encode, ...

  5. php发送邮件方法-亲测可用,email.class.php过期解决办法

    php虽然提供了mail()函数,但并不好用,而PHPMailer是一个不错的邮件发送工具,使用起来也是非常简单!使用PHPMailer发送邮件: <?php header("cont ...

  6. Java面向对象系列(6)- 封装详解

    封装 该露的露,该藏得藏 我们程序设计要追求"高内聚,低耦合".高内聚就是类得内部数据操作细节自己完成,不允许外部干涉:低耦合:仅暴露少量得方法给外部使用 封装(数据得隐藏) 通常 ...

  7. 使用Jmeter过程中遇到的问题

    学习接口自动化测试框架或工具,UI自动化测试框架或工具,有时会觉得知识似乎比较零散,死记硬背不是一个好方法.一个学习的思路是思考使用这些框架或工具的时候,可能会遇到什么问题,遇到这些问题可以通过什么方 ...

  8. Python就业方向

    0.WEB开发 Python拥有很多免费数据函数库.免费web网页模板系统.以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python web框架为Django. ...

  9. String(char[] value, boolean share) {

    记录一下今天被蠢到 1. 在观察StringBuffer类的toString方法时,发现了个没见过的方法 return new String(toStringCache, true); @Overri ...

  10. excel模板数据填充 :tablefill

    背景(问题) 在Web后台系统中或多或少都存在导入数据的功能,其中操作流程基本是 1.下载模板 2.填充模板数据 3.上传模板 但通常比较耗费时间的是填充模板数据这一步骤, 已自己为例之前的数据要么是 ...