一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数...
在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()与...
1//top_tb.sv2//不使用通配符3initialbegin4uvm_config_db#(virtual my_if)::set(null,"uvm_test_top.env.i_agt.drv","vif",input_if);5uvm_config_db#(virtual my_if)::set(null,"uvm_test_top.env.i_agt.mon","vif",input_if);6uvm_config_db#(virtual my_if)::set(null,"uvm_test_...
uvm_config_db#(int)::get(this, "", "pre_num", pre_num); int:收到的东西的类型一定是与送出的是一致的 【省略get】 set与get函数一般都是成对出现,但是在某些情况下,是可以只有set而没有get语句,即省略get语句。 条件: 使用uvm_component_utils宏注册my_drv,uvm_field_int注册控制变量pre_num 2....
uvm_config_db#(virtual my_if)::set(null, "uvm_test_top", "vif", input_if); 2. 收信(Get): 在`my_driver`或其他UVM组件中,他们在开始工作之前会通过`uvm_config_db#(...)::get(...)`来“收信” - 即查找并获取接口实例的地址。 // 在my_driver中 - 收信 virtual my_if vif; if ...
1、uvm object 使用config_db。 <1>. uvm_object中通过config_db get得到变量 class my_config extends uvm_object; `uvm_object_utils(my_config) virtual my_if vif;functionnew(stringname ="my_config"); super.new(name); $display("%s", get_full_name());if(!uvm_config_db#(virtual my_if)...
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的类型。
UVM:3.5.10 config_db 调试 1.除了之前的check_config_usage,UVM还提供了print_config 函数: 参数1 表示递归;0,只显示当前的component信息。 2.结果如下: 1)遍历整个验证平台(我发现只是这个component 下的,不包括并列和之上,书上有可能是错的?),找出那些被设置过的信息对于它们是可见的,比如 agt_scb_fifo...