INTRO
本节内容主要来自《UVM实战》的第三章的后半部分,主要介绍了UVM中打印信息的控制和config_db机制的使用。
3.4 UVM打印信息控制
3.4.1 设置打印信息的冗余度阈值
由于在开始debug时可能会有非常多的报错信息,因此为了增加验证报告的可读性,应该对打印的信息进行优先级的设置,并能够通过控制阈值来选择全部或部分显示打印信息。
在UVM框架中,这一部分由打印冗余度级别这个参数进行控制。需要注意的是,小于等于冗余度阈值的信息会被打印,而大于阈值的信息则不会。UVM默认的冗余度阈值是UVM_MEDIUM,因此在此前几节的代码中我们都设置打印信息的冗余度为UVM_LOW,其完整的示例代码如下:
`uvm_info("my_scoreboard", "Compare SUCCESSFULLY", UVM_LOW);
可以通过get_report_verbosity_level函数得到某个component的冗余度阈值,可以通过set_report_verbosity_level来设置某个component的默认冗余度阈值,示例代码如下:
$display("env.i_agt.drv's verbosity level is %d",env.i_agt.drv.get_report_verbosity_level());
env.i_agt.drv.set_report_verbosity_level(UVM_HIGH);
需要注意,由于上述代码中涉及了层次引用,因此必须在connect_phase后,UVM树已经建立的情况下才能调用这两个函数;如果只是在当前component修改,则可以在connect_phase之前调用,因为不涉及层次引用。
除了以上两个函数,UVM框架还提供了如下一些函数来控制打印信息冗余度:set_report_verbosity_level_hier:递归地设置component的冗余度阈值。
set_report_id_verbosity:设置不同ID的冗余度阈值。
set_report_id_verbosity_hier:递归地设置ID的冗余度阈值。(此条存疑,ID如何进行递归?)
此外在命令行中也可以设置冗余度阈值,这是此时只能对整个验证平台进行设置:
+UVM_VERBOSITY=UVM_HIGH
3.4.2 重载打印信息的严重性
UVM中有四种信息严重性,从最不严重到最严重分别为:UVM_INFO&#