1、指定测试用例(一般一个用例就是一个类派生于uvm_test_base) +UVM_TESTNAME=例如+UVM_TESTNAME=my_case0 2、设置打印(`uvm_info)在命令行中设置冗余度阈值 +UVM_VERBOSITY=例如:+UVM_VERBOSITY=UVM_HIGH UVM预先定义了六个详细程度; UVM_NONE到UVM_DEBUG。这些级别只不过是整数枚举值 如果我们不指定任何冗...
uvm_info执行的时候,UVM会判断系统对这条语句的啰嗦容忍等级,然后进行屏蔽或打印。通过命令行参数或者component对象调用配置函数,可以灵活调整系统的啰嗦容忍等级,从而控制对uvm_info语句的屏蔽。 另外,建议大家写uvm_info语句的时候,info id尽量使用一些便于后期筛选或过滤的字符串(比如function或者task的名字); 而不要...
uvm_info是一个带参数的宏,包含3个部分:ID(标示信息)、MSG(调试信息)、啰嗦程度。ID并非唯一,可为多条语句指定相同ID。MSG为打印信息,可直接指定或通过$sformat产生格式化字符串。啰嗦程度通过枚举类型指定,决定信息是否被屏蔽。通过uvm_report_enabled函数计算信息的啰嗦程度与系统容忍等级进行比较...
如果将UVM_ERROR改成UVM_INFO,那么这时候它的啰嗦程度是什么呢? 答案是UVM_NONE,也就是啰嗦程度最低。 除了命令行plusargs参数,也可以在TB中,通过component对象调用API来动态修改严重程度(如下图所示),用法类似于上一篇提到的修改verbosity的API。 下面这两个API的区分在于是否按msg id进行过滤,不再赘述。 3 调试...
只有UVM_INFO需要加上第三个参数来指示阈值级别(一般为UVM_LOW或者UVM_MEDIUM),其他三种不需要第三个参数。 这四种严重性可以互相重载。 set_report_severity_override(UVM_WARNING,UVM_ERROR);// UVM_WARNING重载为UVM_ERROR 重载严重性也可以只针对某个component内的某个特定的ID起作用,使用set_report_severity_...
UVM_ERROR代表出现严重错误,需要立即暂停仿真并进行处理。而UVM_FATAL则表示仿真已经无法继续进行,需要立即终止。这四个信息严重性等级可以通过`uvm_info`语句重载,并可以使用`$sformatf()`系统函数打印带参数的字符串。不同的等级可以在仿真过程中设置不同的冗余度级别,当达到一定数量时,仿真会结束。
`uvm_info("my_driver", "data is drived", UVM_LOW) ... endtask uvm_driver是一个派生字uvm_component的类,每一个派生自uvm_component或其派生类的类在其new函数种要指明两个参数:name 和 parent。 uvm_info宏有三个参数,第一个参数是字符串,把打印的信息归类,第二个参数是具体要打印的信息,第三个...
()==UVM_INFO && get_id()=="SLAVE_DRIVER")19set_severity(UVM_ERROR);20return THROW;21endfunction22endclass2324class wb_conmax_alter_verbosity_specific_component_test extends wb_conmax_base_test;25`uvm_component_utils(wb_conmax_alter_verbosity_specific_component_test)26measage_promoter ...
uvm_info(get_type_name(), $sformatf("Building agent with name: %0s", agent_name), UVM_LOW); endfunction endclass 注意:在实际UVM环境中,你可能不会直接将agent_name作为一个单独的字段,因为UVM组件已经有一个名字。这里只是为了演示如何传递参数。 2、实例化带参数的UVM组件 在测试类或环境中,你可...