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;...
uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数据库的条目(储存的信息)。 config_db 是参数化的,它的类型可以是标量、类句柄、队列、列表,甚至是虚拟接口。通过uvm_config_db::set 和 uvm_config_db::get 函数进行全局存储和检索数据库中的信...
在UVM中,`config_db`(配置数据库)就像一个邮局,你可以使用它来“寄信”(`set`操作)告诉邮局你家的地址(`input_if`接口)。然后,服务员(`my_driver`)会去邮局“收信”(`get`操作),得知派对的地址,这样他们就知道在哪里工作了。 这是对应到UVM代码的“寄信”和“收信”过程: 1. 寄信(Set: 在`top_tb`...
(2) uvm_config_db::set的参数解释: 1initialbegin2uvm_config_db#(virtual my_if)::set(null,"uvm_test_top.env.i_agt.drv","vif",input_if);3end45initialbegin6uvm_config_db#(virtual my_if)::set(uvm_root::get(),"uvm_test_top.env.i_agt.drv","vif",input_if);7end 注1:在top m...
config_db机制用于在UVM验证平台间传递参数。它们通常都是成对出现的。set函数是寄信,而get函数是收信。 【在哪里用】 build_phase中使用cfg_db机制 【set 寄信】 uvm_config_db#(int)::set(this,"env.i_agt.drv","pre_num",100); int:需要填写要送的东西的类型 ...
UVM:3.5.7 config_db 机制对通配符的支持,config_db::set时,第二个参数都是完整的路径。还可以用通配符*:之前:可以把前两个set合并为一个set:可以进一步简化为:不推荐使用通配符,容易产生交互问题。
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。
1.为什么在TOP里面uvm_config_db set的时候都需要用到uvm_test_top,它针对不同的case产生的实例名字是一样的吗? 是一样的。对于+UVM_TESTNAME=example_case_(0…n),UVM验证平台会创建一个example_case_(0…n)的实例,他们的实例有一个共同的名字:uvm_test_top,所以你在top中congig_db的时候都会自上而下...
build_phase主要的作用就是通过config_db的set和get操作来做一些数据的配置和传递,以及实例化成员变量等。值得注意的是,super.build_phase这条语句是必须的,在父类uvm_build_phase 中执行了一些必要的操作,必须显式地调用并执行它。 build_phase和main_phase的区别 ...