一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数...
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...
staticfunctionbit get ( uvm_component cntxt,stringinst_name,stringfield_name,inoutT value);//Get virtual interface handle under name "apb_vif" into local virtual interface handle at m_env leveluvm_config_db #(virtual apb_if) :: get (this,"*","apb_vif", apb_if);//Get int variable ...
config_db::set一共有4个参数。 头两个参数的作用是合起来形成一个范围,只有在这个范围内的单位才可以通过config_db::get来获得我们set的东西。 第三个参数是我们自己瞎起的一个名字,就是个string型的标签,到时候系统在执行config_db::get的时候,就依据我们起的这个名字以及我们规定的类型(在这里类型就是virtual...
在TB调用uvm_config_db::set()的时候,set函数会将参数cntxt和inst_name拼接起来后,调用用uvm_glob_to_re()转换格式,再存到uvm_resource类里的scope字符串变量,set()的值也是放在uvm_resource类里。当TB调用uvm_config_db::get()的时候,get函数也会将参数cntxt和inst_name拼接起来,再调用uvm_re_match()与...
uvm_config_db#(int)::get(this, "", "pre_num", pre_num); 这里的关键是build_phase中的super.build_phase语句,当执行到driver的super.build_phase时,会自动执行get语句。这种做法的前 提是: 第一,my_driver必须使用uvm_component_utils宏注册; ...
1.config_db::set 的第二个参数是字符串,经常出错,可以通过get_full_name 来获得。对driver 进行设置: 对sequence 某个参数设置,可以: 2.但在build_phase 时,整棵UVM 树还为形成,会引起空指针错误。要想这么做有两种方法: 1)都在new 中create
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。
config_db.svh文件。类uvm_config_db扩展了uvm_resource_db。定义了一个静态的uvm_pool,其中包含字符串和uvm_resource的数组。还定义了一个静态局部变量,它是一个uvm_queue类型,用于存储m_uvm_waiter。通过uvm_config_db类,实现str type config sim nbsp stat pool provides basic功能。
总结而言,通过uvm_config_db的set函数,我们能够将变量设置到m_rsc数组中。这个数组是静态的,意味着通过uvm_config_db类的任何实例都可以访问。设置过程已经包含了优先级判断,因此,数据被安全地存储和更新。接下来,我们将讨论get函数。其工作原理相对简单,主要是在m_rsc数组中查找并返回对应的值。