uvm_config_db扩展自uvm_resource_db m_rsrc是一个关联数组,索引是uvm_component,内容是uvm_pool#(string,uvm_resource#(T)) 其实跟uvm_resource_db是一样的。 pool.add是用来判断同一个component的path+inst_name是否有多次覆盖。 同一个uvm_component,并且path+inst_name相同的时候,set_priority_name(),后一...
于是我们这么做,在test中通过config_db::get拿到已经写入资源池的virtual interface,然后通过config_db::set来重新设置一个virtual interface,并且设置它的范围是例化出来的ageent a0下面的所有单元都有权利调用它。 class test extends uvm_test; `uvm_component_utils(test) function new(string name = "test", u...
3、set_config_int/set_config_string/set_config_object是参数固定后的uvm_config_db#(int)::set等的简写。 接下来我们再看set函数内的执行代码 我们还需要知道几个变量的来历: m_rsc是一个key为string,value为uvm_resource#(T)的静态键值对(其他语言里也有叫字典等)(uvm里给之取名叫uvm_pool)组成的以uvm...
答案在于uvm_config_db内部的m_rsc数组。这是一个由string作为键,uvm_resource#(T)作为值的静态键值对数组,以uvm_component为索引。这意味着,m_rsc数组实际上是一个以uvm_component为键,联合数组为值的结构,其中联合数组内部包含了key(string类型)和value(uvm_resource#(T)类型)。接下来,我们...