uvm_config_db#(virtual my_if)::get(this, "", "vif", vif) 在top_tb.sv中,set函数的第一个参数为null,第二个参数为uvm_test_top(测试用例的实例名),第三个参数为input_if接口的索引名(类似于关联数组的字符串),第四个参数表示将那个interface通过uvm_config_db传递给my_driver。 get函数一般在my_...
uvm_config_db#(T)::get(uvm_component cntxt, string inst_name, string field_name, inout T value); cntxt应该是一个有效的uvm_component实例,或者在某些情况下可以是null(但需要注意null的使用场景)。 inst_name和field_name应该与set方法中使用的一致。 value应该是一个变量,其类型与set方法中设置的数...
在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 ...
第四个参数:和set不同,此时的value是那个要从数据库检索值(也就是要从盒子里取得value)的变量。 get 如果成功返回 1 ,如果数据库中没有找到此类资源则返回 0;set是空函数没有返回值。 3、其他说明 inst_name和field_name都可以包含通配符或正则表达式。 cntxt可以为null,这时inst_name提供完整的层次信息,cntxt...
if (!uvm_config_db#(virtual my_if)::get(this, "", "vif", vif)) begin `uvm_error("my_driver", "Cannot get vif") end 这样,即使服务员(`my_driver`)是通过代理(UVM工厂)雇佣的,并且你无法直接和他们互动,你还是可以通过邮局(`config_db`)来传达必要的信息,保证派对(UVM测试)可以顺利进行。这...
主要有两个 uvm_config_db函数,即 set()和get()。和 get()函数。让其他人访问它所创建的对象,并控制哪些组件可以看到它共享的对象。对象可以全局共享,也可以提供给一个或多个特定的测试平台组件。使用获取()的验证组件检查是否存在与所用参数匹配的共享句柄.get()函数函数定义了对象类型、名称和搜索对象的层...
对于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(十)之config机制续1标题1. 省略get的configconfig总是set和get成对出现的。在build_phase中,要写上如下的两句话才能把pre_num_max和pre_num_min的值更新为case的设置值:uvm_config_db#(int)::get(this,””,”pre_num_max”,pre_num_max);uvm_config_db#(int)::g ...
config_db.get(null, "my_param_key", my_param_val); $display("my_param = %0d", my_param_val); ``` 通过以上操作,我们成功实现了使用uvm_config_db传递和获取配置参数的过程。 总结一下,uvm_config_db在Kubernetes中扮演着重要的角色,能够帮助我们在测试环境中管理和分发配置参数,提高测试用例的灵活...
$display("%s", get_full_name());endfunction set与get函数的参数 config_db机制用于在UVM验证平台间传递参数。它们通常都是成对出现的。 set函数是寄信, get函数是收信。 如在某个测试用例的build_phase中可以使用如下方式寄信: //寄信方式uvm_config_db#(int)::set(this,"env.i_agt.drv","pre_num"...