uvm_config_db#(virtual my_if)::get(this, "", "vif", vif) 在top_tb.sv中,set函数的第一个参数为null,第二个参数为uvm_test_top.drv(第一个参数和第二个参数共同组成了目标路径),第三个参数为input_if接口的索引名(类似于关联数组的字符串),第四个参数表示将那个interface通过uvm
config_db 是参数化的,它的类型可以是标量、类句柄、队列、列表,甚至是虚拟接口。通过uvm_config_db::set 和 uvm_config_db::get 函数进行全局存储和检索数据库中的信息。二、set和get函数 1、set函数 set函数的原型为 static function void set(uvm_component cntxt,string inst_name,string field_name,T ...
第四个参数:和set不同,此时的value是那个要从数据库检索值(也就是要从盒子里取得value)的变量。 get 如果成功返回 1 ,如果数据库中没有找到此类资源则返回 0;set是空函数没有返回值。 3、其他说明 inst_name和field_name都可以包含通配符或正则表达式。 cntxt可以为null,这时inst_name提供完整的层次信息,cntxt...
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 ...
对于uvm_config_db来说,在调用get()函数检索数据库的时候,get()函数传递的{cntxt,”.”, inst_name}会作为uvm_re_match()的str的实参,set()函数设置的{cntxt,”.”, inst_name}在经过uvm_glob_to_re()处理后作为uvm_re_match()的实参,这也就是为什么set()参数的inst_name支持正则格式,而get()参数...
的一些功能进行了扩展,在写入操作上重载了uvm_resource_db的set 函数,在读操作上新建了一个get 函数。 让我们来看看这两个静态函数set and get 函数(有点类似于存储器的写和读功能),首先来看,uvm_config_db 的set 函数。再看uvm_config_db 的get 函数。
//| uvm_config_db#(int)::set(this, "*", "A");// // The parameter value "int" identifies the configuration type as // an int property.// // The <set> and <get> methods provide the same API and // semantics as the set/get_config_* functions in <uvm_component>.//--- c...
("e0", this); // Get virtual IF handle from the top level and pass it to everything // in the env level if(!uvm_config_db#(virtual des_if)::get(this, "", "des_if", vif)) `uvm_fatal("TEST", "Did not get vif") uvm_config_db#(virtual des_if...
一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。 uvm_conf ...
uvm_config_db#(virtual Bus_if)::get(this,"","Bus_if1",Bus_if1)) begin `uvm_fatal("In agent","virtual interface not got successful"); end */ /* uvm_config_db # (virtual Bus_if)::set(this,"monitor","Bus_if1",Bus_if1); uvm_config_db # (vir...