如过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中...
1、warning/error/fatal调试语句 调试语句除了uvm_info,UVM内部根据问题的严重性(severity)由低到高,还引入了uvm_warning/uvm_error/uvm_fatal。 它们也是UVM预定义的宏,格式跟umv_info很像,只是不再需要设定啰嗦程度了;因此不能通过调整啰嗦容忍等级来忽略。 uvm_warning是打印一些警告信息,用来提醒仿真中的潜在问题。
在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_info(“info_id”,“context”,UVM_HIGH); 这个宏有三个参数,第一个是当前uvm_info的id,用户自定义,是一个字符串类型的变量,最终会显示到屏幕上,通常情况下,这个变量在某个组件中打印,会使用get_type_name()方法,该方法存在与uvm基类中,返回当前组件的路径。第二个参数是要打印的内容,可以使用$sformat...
一、创建接口 在agent文件夹下创建一个名为amp_interface.sv的文件。amp字段代表着这个DUT的名字。interface主要是用来连接DUT和各个组件。在刚开始时,只需要定义好与DUT端口相匹配的变量即可。 标准的接口定义,其输入变量只有时钟信号和复位信号,而内部变量无需再有时钟
`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打印的信息,就一定...
对于同一实例组件的同一个变量,如果有多个上层组件对该变量进行设置时,更上层组件的配置会覆盖低层的配置;但是如果是同一个层次组件对该变量进行多次配置时,应该遵循后面的配置会覆盖前面的配置。 用户应该在使用uvm_config_db::get()方法时,添加便于调试的语句,来通过UVM信息打印得知get方法的变量是否从uvm_config_...
28、#39;uvm_field_int(vlan_info3, UVM_ALL_ON)'uvm_field_int(vlan_info4, UVM_ALL_ON)end'uvm_field_int(ether_type, UVM_ALL_ON)'uvm_field_array_int(pload, UVM_ALL_ON)'uvm_field_int(crc, UVM_ALL_ON | UVM_NOPACK)'uvm_field_int( is_vlan, UVM_ALL_ON | UVM_NOPACK)'uvm_ob...