ryanhunter的个人空间 https://blog.eetop.cn/1765812 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

UVM Report机制概述

已有 1852 次阅读| 2020-11-5 23:43 |个人分类:验证|系统分类:芯片设计| UVM

1.          UVM Report机制概述

            相信大家对于UVMreport的使用都非常熟悉,`uvm_info, `uvm_warning, `uvm_error, `uvm_fatal等,其实UVM还提供了非常丰富的report用法,这里先介绍一下当我们调用这些宏时,究竟发生了什么?以及我们在一个object里面和component调用uvm_inforeport宏时,是否走的同样的流程呢?

1.1.               report macros

            首先解析一下这几个宏定义,其原理都非常简单,先调用uvm_report_enabled是否可以被report,然后分别调用相关的report函数:uvm_report_infouvm_report_warninguvm_report_erroruvm_report_fatal。也就是说,不管我们在哪里用这些宏,都是直接调用的uvm_report_*这些函数。

1.1.1.     uvm_component中的report

            这些函数在两个地方有定义,首先uvm_component以及其子类,都是继承自uvm_report_object这个类,而这个类中定义了report相关的函数,因此在uvm_component及其子类中调用`uvm_info,实际上是调用了它父类的report函数。而像uvm_object及其子类(这里不包括uvm_component这些,严格意义上讲uvm_component也是uvm_object的子类),在调用`uvm_info的时候,调用的是uvm_globals中定义的一个全局report函数。

1.1.2.     uvm_globals中的report

            uvm_globals中的report又是怎么来的呢,简单来讲,UVM定义了一个uvm_root类,然后调用report时会去找一个静态的uvm_root类型的对象,我们暂时称之为top,该top在整个UVM仿真过程中存在且唯一,所以在除了component之外的任何地方调用report函数,其实就是调用了这个唯一uvm_root类中的report函数。而这个uvm_root又是从uvm_component继承过来的,因此它自然也继承了相应的report函数。这个概念在后续的一些特别例子中会有区别。

1.1.3.     report classes

            本节先简单介绍一下跟report相关的一些类,及其大致的作用。首先事uvm_report_object,所有调用report函数的入口都是在uvm_report_object中,该类也是uvm_component的父类,即uvm_component不是直接从uvm_object继承过来的,而是从uvm_report_object继承,而uvm_report_object才是直接继承自uvm_object。所以我们调用的report函数其入口都是定义于uvm_report_object中,该类就相当于是给用户提供了一个API,可以直接进行report相关操作。uvm_report_handler,该类定义于uvm_report_object中,且要注意的是每个不同的uvm_report_object,对应的这个handler是不一样的,所以在一些特殊配置操作的时候我们需要区分一下具体是对哪个component及其子类进行了配置。uvm_report_handlerreport调用流程里面的中间层,在这里定义了一些特殊信息,例如对于某些特定的ID,在调用同样的report函数时可以采取一些不同的额外操作等等。

            uvm_report_catcher,这个类相当于callback,可供用户定义一些额外的行为,都可以在report过程中被调用。

            uvm_report_server,核心的report类,也是最终整理输出的类。

            基于上述的report机制,用户可以实现各种各样的report功能,例如对某些特定ID的信息记录到一个文件中,某些指定ID的信息不打印,甚至完全修改report信息的格式,或者修改预定义的summary信息等等。这些都将在后续通过例子的形式慢慢介绍。


点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 90

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 22:27 , Processed in 0.027551 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部