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 ...
如果在build前进行set,则使用 cntxt 层次结构来确定优先级,层次结构越高,优先级越高; 同一层次结构的set后面的配置会覆盖前面的配置。如果在build后set,所有设置都使用默认优先级,后面的配置会覆盖前面的配置。因此建议在其相关配置组件创建前调用set,确保得到期望的值。 set和get方法是静态的,所以必须使用 :: 三...
1uvm_config_db#(int)::get(this,"","pre_num_max",pre_num_max); 1.2 示例解释 (1) uvm_config_db中set和get都是静态函数,可用双冒号形式调用. 1staticfunctionvoid set(uvm_component cntxt,2stringinst_name,3stringfield_name,4T value);5staticfunctionbit get(uvm_component cntxt,6stringinst_na...
在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()与...
uvm_set_config 在Kubernetes中,uvm_set_config是一个用来配置Universal VM(虚拟机)的关键参数的命令。当我们需要设置这些参数时,我们可以通过执行uvm_set_config命令来实现。 流程概述: 为了帮助新人理解如何使用uvm_set_config命令,我将按照以下步骤展示整个过程。通过这些步骤,你将学会如何在Kubernetes环境中配置Univers...
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方法中设置的数...
总结而言,通过uvm_config_db的set函数,我们能够将变量设置到m_rsc数组中。这个数组是静态的,意味着通过uvm_config_db类的任何实例都可以访问。设置过程已经包含了优先级判断,因此,数据被安全地存储和更新。接下来,我们将讨论get函数。其工作原理相对简单,主要是在m_rsc数组中查找并返回对应的值。
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 ...
第二个cntxt和第三个参数instname一起定义了uvmconfigdb中set或get函数的作用范围第四个参数决定了是对作用范围中的那个对象或变量进行操作第五个参数value会存储当前操作对象的句柄或着操作变量的值需要注意的是当我们指定的第二个参数是一个uvm组件时uvm会用它的全局名字去替换它而全局名字会通过uvm的getfullname...