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)...
既然不是结构节点,就不是组件,自然就没法写出地址。尤其是sequence,sequence是环境中非常重要的一部分,但sequence是object而不是component。这个时候如果要用config_db机制对sequence进行set,就需要使用通配符。注意:除了对必要的object进行设置之外,对组件的设置不推荐使用通配符。 通配符其实就是不给出完整的路径。例如现在...
可以看到只是一个从uvm_object继承而来的virtual类而已,uvm_resource继承后增加了个参数化,而uvm_resource_db中定义(typedef)了一个跟其参数一致的参数化的uvm_resource类型rsrc_t。 后面用的一些函数的返回值或者中间数据都是rsrc_t类型的,本质上是uvm_resource类型。 现在我们回到最开始讨论的问题,set的数据究竟放在...
使用uvm_config_db#(int) ::set来设置,而使用get_config_int来获取。 set/get_config_string和set/get_config_object。它们分别对应uvm_config_db#(string) ::set/get和uvm_config_db#(uvm_object) ::set/get config_db比set/get_config强大的地方在于,它设置的参数类型并不局限于以上三种。常见的枚举类型...
"env","cfg",cfg);...endfunctionendclass 在test.env中get:class my_env extends uvm_env;my_config cfg;...function void bulid_phase(uvm_phase phase);...if(!uvm_config_db#(my_config)::get(this,"","cfg",cfg))begin`uvm_fatal(" get config object failed")end...endfunctionendclass ...
答案在于uvm_config_db继承自uvm_resource_db。进一步探究,uvm_resource_base是一个虚拟类,继承自uvm_object,并且uvm_resource_db通过typedef定义了一个参数化的uvm_resource类型rsrc_t。因此,无论uvm_config_db使用哪个具体方法,其返回值或中间数据都是rsrc_t类型,本质上都是uvm_resource。回到问题...
在top_tb 中为这个类的interface 赋值: 1)get 函数是if_object 的一个静态函数,通过它可以得到if_object 的一个实例,并对此实例中的interface 赋值。 在base_test 的connect_phase(build_phase后的其它任一phase)对所有的interface 进行赋值: if_object就是一个中间媒介。
(my_config extends uvm_object)中实现。 config_db 机制是UVM中⽤于在不同component之间共享资源的⼀种机制,它满⾜了资源共享的要求,同时避免全局变量的弊端。uvm_config_db 是uvm_resource_db 的外壳。资源共享,有三个问题:1 资源是存放在什么地⽅?( uvm_resource_pool )2 资源以什么样的⽅...
void uvm_config_db #( type T = int )::set( uvm_component cntxt , string inst_name , ...
It is quite clear that the first argumentcntxtcannot be anything other than auvm_componentobject. From the following simulation log, we can see that when+UVM_CONFIG_DB_TRACEis passed as a command-line switch, simulation will dump all function calls tosetandgetinto the log. However, the lin...