// 在组件的phase中设置sequence中变量的值 uvm_config_db #(int)::set(this,"env.agent.seqr","INR",30); 用于设置sequence中的值,sequence不是comoponent,所以在填context的时候使用get_sequencer()获取sequencer highlighter- CSS // 在sequence中获取变量的值 uvm_config_db #(int)::get(get_squencer(...
void'(uvm_config_db#(int)::get(this.m_parent, "i_agt.drv", "pre_num", drv_pre_num));`uvm_info("my_model", $sformatf("after get, the pre_num is %0d", drv_pre_num), UVM_LOW)endfunction//或void'(uvm_config_db#(int)::get(uvm_root::get(), "uvm_test_top.env.i_agt...
uvm_config_db静态函数dump 这个函数会将resource pool中的所有配置内容打印出来。 // example code: // uvm_config_db#(string)::dump(); // 这里无论数据类型用什么,拿到的resource pool都是同一个。所以数据类型可以随便填。 // function: dump // // Dump all the resources in the resource pool. ...
例程中,uvm_config_string的原型是uvm_config_db#(string),uvm_config_int的原型是uvm_config_db#(uvm_bitstream_t),这是UVM中为了简写通过typedef定义的类型。 仿真结果如下: 04 扩展:Config_db资源优先级 当不得已需要在环境中的多个地方,对相同数据对象,通过config_db进行配置的时候,就需要关心到这些资源的...
对于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()参数...
上面学习了参数化的类和静态方法,我们常使用的UVM的config_db,就结合了这两个语法: uvm_config_db传入的参数类型是uvm_object_wrapper, 通过 ”::" 调用静态方法 set() 。 静态类 static也可以声明class, 表示静态类。静态类和静态变量类似,只不过静态类可以封装更多内容。声明静态类的class, 该class的所有实例...
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。
UVM:3.5.7 config_db 机制对通配符的支持,config_db::set时,第二个参数都是完整的路径。还可以用通配符*:之前:可以把前两个set合并为一个set:可以进一步简化为:不推荐使用通配符,容易产生交互问题。