0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

盘点UVM针对不同机制提供给用户的调试功能

路科验证 来源:路科验证 作者:路科验证 2022-05-19 14:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

基于UVM搭建验证环境和构造验证激励,调试的工作总是绕不开的。实际上,对验证环境和激励的调试,往往伴随着验证阶段的前半程,并且会花掉验证工程师很多时间和精力。然而,大部分细节被隐藏在复杂的环境内部。这里的复杂,指的是UVM本身构造的不同机制(比如factory、config_db、objection等),以及在不同机制内部使用的数据结构。

作为UVM的用户,我们需要相信在绝大部分情况下这些机制本身是没有问题的。因此,从顶层获得有效的调试信息就非常关键,比起潜入到内部要高效得多。

这也是本文的目的,盘点UVM针对不同机制提供给用户的调试功能。建议收藏和关注,总有一天你会用到。本文的示例代码都是在UVM类库提供的例程上进行少量修改得到的。

01 PLUGARG(命令行参数)

01 PLUGARG(命令行参数)

UVM将不同机制的调试功能封装成了命令行参数。在运行仿真的时候带上这些参数,就可以在仿真日志中打印出来对应的详细调试信息。本节将这些命令行参数都梳理出来,并附有仿真日志截图。

+UVM_DUMP_CMDLINE_ARGS:导出所有的命令行参数,确认当前的命令行参数符合你的预期。

cc584f18-d72b-11ec-bce3-dac502259ad0.png

+UVM_CONFIG_DB_TRACE: 打开访问Config_db的追踪(tracing)功能,可以看到config_db的set和get操作在什么时间由什么组件发起。

cc9c0fc8-d72b-11ec-bce3-dac502259ad0.png

+UVM_PHASE_TRACE:打开Phase执行的追踪功能,可以看到不同phase的执行顺序。

ccfae7fa-d72b-11ec-bce3-dac502259ad0.png

+UVM_OBJECTION_TRACE:打开Objection相关活动的追踪功能,可以清晰地呈现出objection在运行中的状态。

cd2081ae-d72b-11ec-bce3-dac502259ad0.png

+UVM_VERBOSITY:设置打印信息的冗余程度,有效地控制不同重要性信息的打印和屏蔽。

cd626614-d72b-11ec-bce3-dac502259ad0.png

02 PRINT(打印)

02PRINT(打印)

除了命令行参数,UVM还提供了很多内置打印函数。这些函数可以在验证环境中被调用,调用后会将对应的数据结构按照强可读性的格式打印到仿真日志中,为环境调试工作提供极大的便利。

cdce8452-d72b-11ec-bce3-dac502259ad0.png

uvm_root::print_topology():打印整个验证环境的组件拓扑结构

ce19c458-d72b-11ec-bce3-dac502259ad0.png

uvm_component::print_config():打印当前组件可见视角下的所有配置资源信息

ce57be5c-d72b-11ec-bce3-dac502259ad0.png

uvm_component::print_override_info():打印当前组件的工厂重载信息

cea608fa-d72b-11ec-bce3-dac502259ad0.png

uvm_factory::print():打印全局工厂中注册的类型以及instance和type重载信息

cf0137b6-d72b-11ec-bce3-dac502259ad0.png

uvm_factory::debug_create_by_type():打印工厂根据参数实际会创建的类型

uvm_factory::debug_create_by_name():打印工厂根据参数实际会创建的类型

cf1e565c-d72b-11ec-bce3-dac502259ad0.png

uvm_port_base::debug_connected_to():打印当前端口连接的下游端口网络,包括port/export/imp

uvm_port_base::debug_provided_to():打印当前端口连接的上游端口网络,包括port/export

cf3ea920-d72b-11ec-bce3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    55

    文章

    4568

    浏览量

    138824
  • UVM
    UVM
    +关注

    关注

    0

    文章

    183

    浏览量

    20123
  • 机制
    +关注

    关注

    0

    文章

    24

    浏览量

    10053

原文标题:SystemVerilog | UVM | 超实用!盘点UVM不同机制的调试功能

文章出处:【微信号:Rocker-IC,微信公众号:路科验证】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    微电网主从控制架构:集中式调度与分布式执行的协同机制

    电网安全稳定、高效经济的运行目标。《微电网主从控制架构:集中式调度与分布式执行的协同机制》重点聚焦主从架构的核心构成、集中式调度与分布式执行的功能定位,深入解析二者协同运行的内在逻辑与实现路径,为微电网控制架构的设计与落地提供
    的头像 发表于 04-11 09:55 1497次阅读
    微电网主从控制架构:集中式调度与分布式执行的协<b class='flag-5'>同机制</b>

    无人机协同机器人功率MOSFET选型方案——高效、敏捷与可靠驱动系统设计指南

    可靠性。功率MOSFET作为该系统中的核心开关器件,其选型质量直接影响系统效率、动态响应、功率密度及环境适应性。本文针对无人机协同机器人的高动态、多关节与高可靠要求,以场景化、系统化为设计导向,提出一套完整、可落
    的头像 发表于 04-08 09:36 302次阅读
    无人机协<b class='flag-5'>同机</b>器人功率MOSFET选型方案——高效、敏捷与可靠驱动系统设计指南

    用于SWD/JTAG调试器的多功能转接板设计

    这款多功能转接板主要设计用于与 J-Link 调试器配合使用(同时兼容其他采用标准 20 引脚 JTAG/SWD 引脚定义的调试器),允许用户在 0.1" (2.54mm
    的头像 发表于 01-19 09:46 3684次阅读
    用于SWD/JTAG<b class='flag-5'>调试</b>器的多<b class='flag-5'>功能</b>转接板设计

    彩屏无线盘点机哪个好?工业级手持终端功能详解+选购指南!

    彩屏无线盘点机,集成条码 / RFID 扫描、无线通信、离线存储功能,工业级 IP66/IP67 防护,适配零售、仓储、制造多场景。盘点效率提升 3-4 倍,降低人力成本与出错率,附 5 大选购要点 + 真实案例,帮多 SKU、
    的头像 发表于 12-23 12:13 491次阅读
    彩屏无线<b class='flag-5'>盘点</b>机哪个好?工业级手持终端<b class='flag-5'>功能</b>详解+选购指南!

    MPLAB® PICkit™5 内电路调试器技术解析与应用指南

    )进行快速原型设计和便携式生产就绪编程。该套件与MPLAB X集成开发环境 (IDE) 结合使用,为调试和编程提供功能强大、简单易用的图形用户界面 (GUI)。MPLAB PICkit
    的头像 发表于 10-11 10:09 1749次阅读
    MPLAB® PICkit™5 内电路<b class='flag-5'>调试</b>器技术解析与应用指南

    如何利用Trace机制实现LLCP预览功能

    在蓝牙协议栈开发过程中,有时需要预先知道 LLCP。本文将介绍如何利用 Trace 机制实现 LLCP 预览功能
    的头像 发表于 10-09 17:55 2167次阅读

    AppTest邀请测试---邀请用户参与测试

    分享链接邀请用户:将创建测试版本时生成的分享链接提供给新加入测试群组的用户用户点击链接参与测试, 通过“分享链接+邀请码”邀请用户:如果没
    发表于 10-09 10:47

    AppTest邀请测试 -邀请用户

    分享链接邀请用户:将创建测试版本时生成的分享链接提供给新加入测试群组的用户用户点击链接参与测试 通过“分享链接+邀请码”邀请用户:如果没有
    发表于 09-18 11:13

    NVMe高速传输之摆脱XDMA设计24: UVM 验证包设计

    UVM 验证包的主要功能是对 DUT 提供激励, 仿真验证对应的功能, 并对测试结果进行自动对比分析与统计。 验证包包含一个NoPHAE_env 验证环境, 验证环境下包含
    的头像 发表于 09-14 11:29 5022次阅读
    NVMe高速传输之摆脱XDMA设计24: <b class='flag-5'>UVM</b> 验证包设计

    NVMe高速传输之摆脱XDMA设计24: UVM 验证包设计

    UVM 验证包设计结构如图 1 所示。 UVM 验证包的主要功能是对 DUT 提供激励, 仿真验证对应的功能, 并对测试结果进行自动对比分析
    发表于 08-29 14:33

    NVMe高速传输之摆脱XDMA设计23:UVM验证平台

    抽象为 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用例,项目基于 UVM 搭建验证平台进行功能验证。图1 验证平台架构图在验证平台中将 PCIE 集成块从待测试设计(Design
    发表于 08-26 09:49

    NVMe高速传输之摆脱XDMA设计23:UVM验证平台

    抽象为 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用例,项目基于 UVM 搭建验证平台进行功能验证。
    的头像 发表于 08-25 18:53 3345次阅读
    NVMe高速传输之摆脱XDMA设计23:<b class='flag-5'>UVM</b>验证平台

    ADI安全产品如何简化不同机器人控制系统中安全机制的实现

    我们将探讨各种机器人安全用例,展示ADI的安全产品如何简化不同机器人控制系统中安全机制的实现。
    的头像 发表于 08-12 10:43 1.5w次阅读
    ADI安全产品如何简化不<b class='flag-5'>同机</b>器人控制系统中安全<b class='flag-5'>机制</b>的实现

    NVMe高速传输之摆脱XDMA设计18:UVM验证平台

    抽象为 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用例,项目基于 UVM 搭建验证平台进行功能验证。图1 验证平台架构图在验证平台中将 PCIE 集成块从待测试设计(Design
    发表于 07-31 16:39

    Efinity debuger常见问题总结-v4

      把烧写文件和json文件提供给他人进行调试 该方法是在不需要要提供源文件的情况下可以提供给别进行debuger用的。但是也要有以下准备: (1)安装efinity; (2)安装gt
    的头像 发表于 06-10 10:43 1613次阅读
    Efinity debuger常见问题总结-v4