通过控制component打印信息的行为,提高日志的可读性。
uvm_component 直接继承自uvm_report_object,所以component继承了一些设置report的函数。
打印信息的宏有:`uvm_info(id,mess,verbosity).
`uvm_warning(id,mess)
`uvm_error(id,mess)
`uvm_fatal(id,mess)
1. 设置信息冗余度阈值 verbosity level
冗余度等于低于阈值的信息可以打印出来,否则不会显示。uvm_verbosityUVM_NONEReport is always printed. Verbosity level setting can not disable it.
UVM_LOWReport is issued if configured verbosity is set to UVM_LOW or above.
UVM_MEDIUMReport is issued if configured verbosity is set to UVM_MEDIUM or above.
UVM_HIGHReport is issued if configured verbosity is set to UVM_HIGH or above.
UVM_FULLReport is issued if configured verbosity is set to UVM_FULL or above.1
2
3
4
5
6
7
8tyypedef enum{
UVM_NONE=0,
UVM_LOW=100,
UVM_MEDIUM=200,
UVM_HIGH=300,
UVM_FULL = 400,
UVM_DEBUG=500
} uvm_verbosity1
2$display("env's verbosity is %0d",env.get_verbosity_level());1
2
3// set_report_verbosity_level(UVM_LOW)
// 设置某个component的verbosity level
env.set_report_verbosity_level(UVM_HIGH);1
2// set_report_verbosity_level_hier(UVM_LOW)
// 递归设置1
2
3
4
5
6
7
8
9
10
11// set_report_id_verbosity("env",UVM_LOW)
//设置只打印某个id的报告,不是这个id的不打印
// 比如在env中有如下代码:
// `uvm_info("ID1","THIS IS ID1 UVM_LOW",UVM_LOW)
// `uvm_info("ID1","THIS IS ID1 UVM_HIGH",UVM_HIGH)
// `uvm_info("ID2","THIS IS ID2",UVM_LOW)
// 设置:
env.set_report_id_verbosity("env",UVM_LOW);
// 打印结果:
// THIS IS ID1 UVM_LOW
// 这个方法既对id进行过滤,也过滤verbosity level1// set_report_id_verbosity_hier("env",UVM_LOW)
也可以在仿真的时候添加仿真选项:1
2./simv +UVM_VERBOSITY=UVM_HIGH
// 为整个验证平台设置verbosity level
2. 重载打印信息严重性 severity
uvm有四种信息严重性:UVM_INFO
UVM_WARNING
UVM_ERROR
UVM_FATAL
这四种可以相互重载1
2