当然,这些信息不希望在regression阶段也被打印,所以应该是UVM_HIGH。 在test中使用this.print就能打印整个testbench的结构,这个command也可以变成sprint用uvm_info来控制verbosity选项: factory.print也能打印所有factory的情况,但没有对应的factory.sprint来和uvm_info配合控制verbosity。 那么工程师要同时打印testbench和fact...
uvm_info本质上通过调用uvm_report_enabled函数来计算当前这条打印语句是不是太啰嗦,再决定是屏蔽还是打印;打印动作是通过uvm_report_info这个函数来完成的。 这里`uvm_file和`uvm_line是两个宏,分别记录了该条打印语句所在的文件名和行号;这就是为什么我们通常会看到uvm_info打印信息里面有文件名和行号的原因。 这...
+UVM_TESTNAME=例如+UVM_TESTNAME=my_case0 2、设置打印(`uvm_info)在命令行中设置冗余度阈值 +UVM_VERBOSITY=例如:+UVM_VERBOSITY=UVM_HIGH UVM预先定义了六个详细程度; UVM_NONE到UVM_DEBUG。这些级别只不过是整数枚举值 如果我们不指定任何冗余度阈值,则UVM将默认使用UVM_MEDIUM。这意味着将打印所有带有UVM_...
env.i_agt.drv.set_report_id_verbosity("ID1", UVM_HIGH); 经过上述设置后“ID1 INFO”会显示,但是“ID2 INFO”不会显示。 这个函数同样有其相应的递归调用函数,其调用方式为: env.i_agt.set_report_id_verbosity_hier("ID1", UVM_HIGH); 除了在代码中设置外,UVM支持在命令行中设置冗余度阈值: <si...
执行uvm_info语句的时候,UVM会将这条语句的啰嗦程度,以及系统对它的容忍等级进行比较。如果当前信息的啰嗦程度比系统所能容忍的等级低,相当于系统认为这句话不啰嗦,于是就打印;否则就不打印。 UVM目前定义了6种啰嗦等级,UVM_NONE -> UVM_LOW -> UVM_MEDIUM -> UVM_HIGH-> UVM_DEBUG -> UVM_FULL是越来越啰...
driver里面两个UVM_HIGH 的info。 base_test里设置为UVM_HIGH。仿真,两条都打印。改成UVM_MEDIUM,两条都不打印。 1)由于牵涉到层次引用,要在connect_phase即以后的phase才能调用。 2)如果不牵涉层次引用,如设置当前component的冗余度,可以在connect_phase之前调用 ...
uvm macro (常用的)[uvm_info] `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测试平台搭建 ...
`uvm_info(“info_id”,“context”,UVM_HIGH); 这个宏有三个参数,第一个是当前uvm_info的id,用户自定义,是一个字符串类型的变量,最终会显示到屏幕上,通常情况下,这个变量在某个组件中打印,会使用get_type_name()方法,该方法存在与uvm基类中,返回当前组件的路径。第二个参数是要打印的内容,可以使用$sformat...
`uvm_info(get_type_name(),"created", UVM_HIGH) endfunction:new `endif// AMP_SEQ_ITEM_SV 在这里,设定了一个枚举变量trans_type,其含有三个元素:IDLE、SET_SCALER和SET_BASE_NUMBER。枚举变量是根据DUT的功能设定的。对amplifier而言,可以分成三个操作:设定基数(base_number)、设定放大倍数(scaler)、空闲...
uvm_driver是一个派生字uvm_component的类,每一个派生自uvm_component或其派生类的类在其new函数种要指明两个参数:name 和 parent。 uvm_info宏有三个参数,第一个参数是字符串,把打印的信息归类,第二个参数是具体要打印的信息,第三个参数是冗余级别(UVM_LOW, UVM_MEDIUM, UVM_HIGH)。