+UVM_VERBOSITY=例如:+UVM_VERBOSITY=UVM_HIGH UVM预先定义了六个详细程度; UVM_NONE到UVM_DEBUG。这些级别只不过是整数枚举值 如果我们不指定任何冗余度阈值,则UVM将默认使用UVM_MEDIUM。这意味着将打印所有带有UVM_NONE,UVM_LOW和UVM_MEDIUM的消息,但是带有UVM_HIGH,UVM_FULL和UVM_DEBUG的消息不会。 set_report...
UVM_NONE=0,UVM_LOW=100,UVM_MEDIUM=200,UVM_HIGH=300,UVM_FULL=400,UVM_DEBUG=500 UVM_NONE的级别最低,UVM_DEBUG的级别最高。一般UVM_LOW,UVM_MEDIUM,UVM_HIGH会比较常用,基本会在这三个中进行选择。可以通过get_report_verbosity_level函数得到某个component的冗余度阈值,函数所返回的就是每个级别的阈值数。
uvm_verbosity有如下几种,他们实际上是整数类型,100递增: 通常defualt的情况下,我们的打印默认是UVM_LOW和UVM_MEDIUM,注意这里的打印级别,UVM_NONE是最高,意味着总是会被打印出,对应于重要的,基本的信息,如框架,验证开始及结束信息,错误信息等。UVM_HIGH意味着要调高权限才会打印出,往往是繁琐的冗余信息,如实时链...
如今细分,可以看到UVM_NONE的冗余度最低,即无论平台将UVM_VERBOSITY设置为什么级别,都会打印UVM_NONE。 如果将UVM_VERBOSITY设置为UVM_MEDIUM,则冗余度高于UVM_MEDIUM(200)的消息(即UVM_HIGH、UVM_FULL、UVM_DEBUG)都不打印,只有冗余度低于UVM_MEDIUM的消息(即UVM_LOW、UVM_NONE)才打印。
设置打印信息的冗余度阈值 UVM通过冗余度级别的设置提高了仿真日志的可读性。在打印信息之前,UVM会比较要显示信息的冗余度级别与默认的冗余度阈值,如果小于等于阈值,就会显示,否则不会显示。默认的冗余度阈值是UVM_MEDIUM,所有低于等于UVM_MEDIUM(如UVM_LOW)的信息都
UVM目前定义了6种啰嗦等级,UVM_NONE -> UVM_LOW -> UVM_MEDIUM -> UVM_HIGH-> UVM_DEBUG -> UVM_FULL是越来越啰嗦。 这里大家一定要区分清楚uvm_info语句的啰嗦程度和系统能容忍的啰嗦等级,它俩是对着干的。 也就是说,写uvm_info语句的时候,verbosity给的越高就越啰嗦, 也就越容易被屏蔽。设置容忍等级...
最后是`uvm_info宏,这个表示uvm的日志打印,和sv $display的功能类似,但是比display功能更加强大,`uvm_info宏内置了不同的打印等级,从上到下一次为:UVM_NONE,UVM_LOW,UVM_MEDIUM,UMV_HIGH,UVM_FULL,UVM_DEBUG。声明一个`uvm_info按照如下语法声明:
设置容忍等级虽然可以屏蔽啰嗦程度高的uvm_info语句,但是如果想屏蔽啰嗦程度为UVM_NONE的语句呢? 又或者,当我们把uvm_fatal/uvm_error改成了uvm_warning/uvm_info以后,仿真虽然没有终结,但是这些信息仍在刷屏怎么办? 别急,听Q哥给大家慢慢道来。 除了啰嗦程度(verbosity)和严重程度(severity),UVM内部为每个调试语句...
UVM中的消息有三种属性,分别是:严重度(severity)、冗余度(verbosity)、以及消息的关联行为,此外还有消息的标签ID。UVM的消息机制基于该三种属性和标签ID,实现对消息的处理。a.严重度(severity):在调试和仿真的过程中,我们需要输出消息,那么如何区...
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, ...