`uvm_fatal("my_driver","virtual interface must be set for vif!!!")endfunction//省略下面get语句:uvm_config_db#(int)::get(this,"","pre_num", pre_num);//build_phase中的super.build_phase语句,当执行到driver的super.build_phase时,会自动执行get语句。 //这种做法的前提是://第一,my_driver...
1.在testbench中例化了interface,然后通过config_db::set来把interface这个样的一个virtual interface放进resource_pool里面,resource_pool也就是两张表。放起来的目的是为了让需要使用virtual interface的component可以获取这个virtual interface。 module tb; reg clk; always #10 clk =~ clk; DUT_if _if (clk); ...
· 接口的传递应该发生在run_test()之前。这保证了在进入build phase之前,virtual interface已经传递进入uvm_config_db中。 · 用户应当把interface与virtual interface的声明区分开来。在传递过程中的类型应当为virtual interface,即实际接口的句柄。 在使用uvm_config_db API set/get时,实际发生了如下的后台操作: 1....
$sformatf("test_sig=%0d",test_sig),UVM_LOW)`uvm_info(this.name,"build_phase active.",UVM_LOW)if(!uvm_config_db#(virtualwr_interface)::get(this,"","wr_drv_if",wr_drv_if))begin`uvm_fatal(this.
1)向sequence 中传递参数,可以像10.3.2节,在virtual sequence 中启动sequence,并赋值。 4.前提是virtual sequence已经启动,前面都是default_sequence 来启动的: 还可以在main_phase 中手工启动: 5.那么如何set呢? 6.在top_tb 中使用config_db 对interface 进行传递,可以使用绝对路径: ...
UVM中的配置机制uvm_config_db,uvm_config_db机制⽤于在UVM平台间传递参数。它们通常是成对出现的,set 寄信,⽽get函数是收信。config 机制⼤⼤提⾼了UVM的验证灵活性。例如module 和 class 连接通过config_db virtual interace.module tb_top initial begin uvm_config_db #(virtual spi_if)::set(nul...
virtual function void build_phase(uvm_phase phase); pattern = 4'b1011; super.build_phase(phase); seq.randomize() with { num inside {[300:500]}; }; endfunction endclass // This interface allows verification components to access DUT signals // using a virtual interface h...
T is the type of the element being configured - usually a virtual interface or a configuration object. cntxt and inst_name together form a scope that is used to locate the resource within the database. The scope is formed by appending the instance name to the full hierarchical name of the...
void uvm_config_db #( type T = int )::set( uvm_component cntxt , string inst_name , ...
1)基础用法:我们在工程中主要是对virtual的interface用到了config_db,大概流程如下: 首先我们在顶层中例化了interface,然后就用config_db::set把interface这样一个virtual interface放入resource_pool中,resource_pool也就是两张表,之后在所需要的时候调用config_db::get获取即可,config_d... ...