如过uvm_report_enabled返回值为1,那我们就需要执行uvm_report_info函数,而这个函数通过层层调用,最终执行的又是uvm_report_handler中的process_report_message函数,并且将uvm_report_info函数参数也通过report_message变量传递给了process_report_message函数。 process_report_message src/base/uvm_report_handler.svh中...
在uvm_info宏打印的结果中有如下几项:1.UVM_INFO关键字:表明这是一个uvm_info宏打印的结果。除了...
`uvm_info("my_driver", "main_phase is called", UVM_LOW);top_tb.rxd <= 8'b0;top_tb.rx...
又或者,当我们把uvm_fatal/uvm_error改成了uvm_warning/uvm_info以后,仿真虽然没有终结,但是这些信息仍在刷屏怎么办? 别急,听Q哥给大家慢慢道来。 除了啰嗦程度(verbosity)和严重程度(severity),UVM内部为每个调试语句都记录了一个调试行为(action),它是一个多比特的变量,每一比特都代表一种行为,如下图所示。
`uvm_info(“info_id”,“context”,UVM_HIGH); 这个宏有三个参数,第一个是当前uvm_info的id,用户自定义,是一个字符串类型的变量,最终会显示到屏幕上,通常情况下,这个变量在某个组件中打印,会使用get_type_name()方法,该方法存在与uvm基类中,返回当前组件的路径。第二个参数是要打印的内容,可以使用$sformat...
对于一些关键的信息需要打印出来的,可以设置为UVM_LOW,而对于一些可有可无的信息,则可以设置为UVM_HIGH,默认情况下是UVM_MEDIUM,因此默认情况下只显示UVM_MEDIUM和UVM_LOW的信息。 这里打印的结果如下所示: UVM_INFOmy_driver.sv(20)@48500000:drv[my_driver]dataisdrived...
`uvm_info("cpu0","The message will not be logged in log file", UVM_LOW); $fclose(log_fh);// 关闭log_fh文件句柄 上述代码执行完之后,将会在仿真目录下生成1个名为cpu.log的文件,里面包含代码里第一个uvm_info打印的消息” The message will be logged in log file”。代码里第二个uvm_info的...
`uvm_info(get_type_name(),"created", UVM_LOW) endfunction:new `endif// AMP_DRIVER_SV 3.2 monitor 在agent文件夹中创建一个名为amp_monitor.sv的文件,该文件用于创建monitor。 monitor与driver有些类似,由于需要监视总线上的信号,因此其也需要获得接口,采取的获取方式同样是由agent进行变量传递。
`uvm_info(1,2,3) 1:ID 2:MSG 3:VERBOSITY 如果VERBOSITY级别低于reporter组件定义的级别,就会调用uvm_report_info 举例: --> `uvm_info("DRV_RUN",{req.sprint()},UVM_HIGH) --> `uvm_info("MY_INFO" UVM object.print 如何打印十进制格式 ...
在build_phase中出现的uvm_fatal宏,这个宏和uvm_info的功能是差不多的,都是打印一些信息,它们的区别在于:uvm_fatal在打印第二个参数所示的信息后,会直接调用verilog 的finish函数来终止仿真。uvm_fatal的出现,表示验证平台出现了重大问题而无法继续下去,必须停止仿真并做相应的检查,只要是uvm_fatal打印的信息,就一定...