关于uvm report机制

16 篇文章 0 订阅
zz: http://bbs.eetop.cn/thread-447424-1-1.html


首先,提一个看似简单的问题:在使用uvm的做验证的时候,经常需要打印信息,比较常用的可能就是`uvm_info 和uvm_report_info之类的了,那么`uvm_info 和 uvm_report_info之间有没有什么区别呢?      下面是`uvm_info的宏展开:


108 `define uvm_info(ID,MSG,VERBOSITY) 109    begin 
110      if (uvm_report_enabled(VERBOSITY,UVM_INFO,ID)) 
111        uvm_report_info (ID, MSG, VERBOSITY, `uvm_file, `uvm_line); 
112    end


      可以看出`uvm_info宏就是调用了uvm_report_enabled function做了一个verbosity_level和action的判断其是否允许进行report操作。关于action和verboisty_level在uvm中可以对其进行很精细的控制,如下面所示:


1)action设置:从上到下,范围由小到大,精细度由高到低,判别优先级由高到低
(severity, id)
         id          -> action             
     severity


2)verbosity设置:从上到下, 范围由小到大,精细度由高到低,判别优先级由高到低
  (severity,id)
        id         -> verbosity
     severity 


这里action有几种功能,可以打印(UVM_DISPLAY), 可以记录message的个数后,并判断属否达到指定的最大count数(UVM_COUNT),也可以直接推出(UVM_EXIT);
而verbosity level 按过滤级别有低到高如下图所示


304   typedef enum305   {306   UVM_NONE   = 0,
307   UVM_LOW    = 100,
308   UVM_MEDIUM = 200,
309   UVM_HIGH   = 300,
310   UVM_FULL   = 400,
311   UVM_DEBUG  = 500
312   } uvm_verbosity;


除了action和verbosity之外,uvm还允许对severity进行override,uvm使用了两个关联数组来记录override信息,其索引分别是id,
和(severity,id),如果你想override一个id的severity,可以使用set_severity_id_override来override当前的id的原来的severity,但是这个新的severity不会影响原有的(severity,id)->action的设置和(severity,id)->verbosity的设置。那么这个override信息会在哪里使用呢?答案是只会在report函数中使用,也就是说打印信息之前,会进行severity override check,然后在用新的severity,进行打印,那么怎么打印呢?uvm使用了一个单实例的uvm_report_server来承接所有的report message任务。uvm_report在进行打印之前仍然要调用client的uvm_report_enbaled函数,这个函数在本文开头`uvm_info宏里面就有,就是用你给定的(severity,id)检查action和verbosity是否允许打印。而这个传进来的是override之后的severity。


所以关于`uvm_info和uvm_report_info这两个report区别就是,前者需要首先check你提供的(severity,id)是不是允许打印,然后再check override之后的(severity,id)是不是允许打印,如果都允许才会打印;而后者只check override之后的(severity,id)是不是允许打印。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值