可以看到这个时间是通过$time(注意:这里与UVM-1.1不同)获取的,而$time获取的时间是一个整型数据,并且此时显示的时间也受$timeformat设置的默认值的影响,即此时显示的时间单位是该语句执行时所在域的时间精度,所以此时我们看到`uvm_info调用时在log中显示的时间是一个五位数并且只保留了对应时间单位的整数部分数字,显...
$display(“the full name of current component is: %s”, get_full_name()); [my_driver]:方括号中显示的信息即调用uvm_info宏时传递的第一个参数。 data is drived:表明宏最终打印的信息。 可见,uvm_info宏非常强大,它包含了打印信息的物理文件来源、逻辑结点信息(在UVM树中的路径索引)、打印时间、对信...
UVM_INFOmy_driver.sv(20)@48500000:drv[my_driver]dataisdrived UVM_INFO关键字:表明这是一个uvm_info宏打印的结果。 my_driver.sv(20):指明此条打印信息的来源,其中括号里的数字表示原始的uvm_info打印语句在my_driver.sv中的行号。 48500000:表明此条信息的打印时间。 drv:这是driver在UVM树中的路径索引。
uvm_info宏非常强大,它包含了打印信息的物理文件来源、逻辑节点信息(在UVM树种的路径索引)、打印时间、对信息的分类组织及打印的信息。因此在搭建验证平台时应该尽量使用uvm_info宏取代display语句。 定义了my_driver类后还需要将其实例化。类的定义和类的实例化是存在区别的,类的定义是class-end块,定义一个类,告诉...
()==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:3.4.7 控制打印信息的行为 1.前面的UVM_DISPLAY,UVM_COUNT都是 UVM 内部定义的行为: 2.默认情况,UVM设置了如下的行为: 3.在3.4.1 通过设置默认的冗余度级别关闭某些信息的输出,也可以通过UVM_NO_ACTION 实现: 不管原来是什么冗余度,都没有效果,从源头杀死。
set_report_id_verbosity(“id_name”,xxx):将某个特定的组件,id名为id_name的uvm_info打印等级设定为目标等级。 使用方法:component.set_report_id_verbosity(“ID_1”, UVM_HIGH),component支持使用路径,比如在base_test中将driver内部id为driver_id0的uvm_info设定为UVM_NONE,在base_test的connect_phase中调...
UVM中的phase,按照其是否消耗仿真时间($time打印出的时间)的特性,可以分成两大类,一类是function phase,如 build_phase、connect_phase等,这些phase都不耗费仿真时间,通过函数来实现;另外一类是task phase,如run_phase等,它们耗费 仿真时间,通过任务来实现。给DUT施加激励、监测DUT的输出都是在这些phase中完成的。在...
1.使用消息打印:UVM提供了消息级别来打印信息,可以使用`uvm_info`、`uvm_warning`、`uvm_error`等函数打印消息。在UVM环境中适当地使用这些函数可以快速了解测试运行的情况。 2.使用波形调试:通过在仿真工具中启用波形调试功能,可以查看信号和寄存器的状态,以及事务的时序关系。这对于定位问题非常有帮助。 3.时间推移...