report机制可以实现对信息打印的精确控制。下面分点讲解,并且均是在uvm_component组件中使用信息宏。(uvm_object中使用原理相同)
下面以`uvm_error(“ID”,”message”)来说明:
`define uvm_warning(ID,MSG) \
begin \
if (uvm_report_enabled(UVM_NONE,UVM_WARNING,ID)) \
uvm_report_warning (ID, MSG, UVM_NONE, `uvm_file, `uvm_line); \
end
首先介绍在UVM中非常重要的几个概念(1)verbosity,(2)存在severity(3)action。
verbosity可以这么理解:反应信息需要被打印的过滤程度,主要有下面几种类型
typedef enum
{
UVM_NONE = 0,
UVM_LOW = 100,
UVM_MEDIUM = 200,
UVM_HIGH = 300,
UVM_FULL = 400,
UVM_DEBUG = 500
} uvm_verbosity;
verbosity值越大,越容易被过滤掉
与verboisty相对应的是信息的安全级别(severity),主要有下面几种
typedef enum bit [1:0]
{
UVM_INFO,
UVM_WARNIN