set和get方法是静态的,所以必须使用 ::三、一个示例 在test中set:class my_test extends uvm_test;my_config cfg;...function void bulid_phase(uvm_phase phase);...uvm_config_db#(my_config)::set(this,"env","cfg",cfg);...endfunctionendclass 在test.env中get:class my_env extends uvm_env;...
intwr_sig=66;initialbeginuvm_config_db#(int)::set(null,"uvm_test_top.fifo_env.wr_agt.sqr.*","wr_sig",wr_sig);end 在sequence中进行get: intwr_sig;uvm_config_db#(int)::get(null,get_full_name(),"wr_sig",wr_sig);`uvm_info(this.name,$sformatf("wr_sig=%0d.",wr_sig),UVM...
virtualtaskpre_body();if(uvm_config_db#(int)::get(null, get_full_name(),"count", count)) `uvm_info("seq0", $sformatf("get count value %0d via config_db", count), UVM_MEDIUM)else`uvm_error("seq0","can't get count value!") #10000; uvm_config_db#(bit)::set(uvm_root::...
uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数据库的条目(储存的信息)。 config_db 是参数化的,它的类型可以是标量、类句柄、队列、列表,甚至是虚拟接口。通过uvm_config_db::set 和 uvm_config_db::get 函数进行全局存储和检索数据库中的信...
对于uvm_config_db来说,在调用get()函数检索数据库的时候,get()函数传递的{cntxt,”.”, inst_name}会作为uvm_re_match()的str的实参,set()函数设置的{cntxt,”.”, inst_name}在经过uvm_glob_to_re()处理后作为uvm_re_match()的实参,这也就是为什么set()参数的inst_name支持正则格式,而get()参数...
get exists wait_modified 今天我们就通过这四个method来一点点揭开uvm_config_db神秘的面纱。 首先我们最先有的疑惑就是,当我们调用set这个function的时候,我们所set的变量被存在了何处? 我们看到uvm_config_db是从uvm_resource_db继承而来的。 这个uvm_resource是个什么数据类型?
uvm_config_db#(ahb_config)::set( this,"ahb_agent","ahb_cfg",ahb_cfg); endfunction ... endclass class my_ahb_agent extends uvm_component; ... function void build(); ahb_config my_cfg; if (!uvm_config_db::ahb_config::get( ...
UVM(十)之config机制续1 1. 省略get的config config总是set和get成对出现的。在build_phase中,要写上如下的两句话才能把pre_num_max和pre_num_min的值更新为case的设置值: uvm_config_db#(int)::get(this,””,”pre_num_max”,pre_num_max); ...
• uvm_config_db#(T): :set(uvm_component cntxt, string inst_name, string field_name, T value); • uvm_config_db# (T): :get(uvm_component cntxt, string inst_name,string field_name, inout T value); • UVM的uvm_config_db使得接口的传递和获取彻底分离开来。
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。