标签:get mem config 数据库 db UVM Config uvm
configuration database 提供对集中式数据库的访问,其中可以存储和接收特定类型的信息。config_db 可以包含对象、类句柄、队列、列表,虚拟接口。
数据库有一个名称表和一个类型表,每个资源都输入到这两个表中。资源存储在数据库中,以便可以按名称或类型检索每个资源,并且可以全局访问该数据库。
uvm config db get and set
uvm_config_db::set 和 uvm_config_db::get 方法分别用于存储和检索数据库中的信息。
uvm config db set method
void uvm_config_db#(type T = int)::set(uvm_component cntxt, string inst_name, string field_name, T value);
这里,
T 是正在配置的元素的类型。类型可以是对象、类句柄、队列、列表,虚拟接口)
cntxt 是可访问数据库内容的分层起点。
inst_name 是可访问数据库内容的分层路径。
例如:
top.env.agent.monitor
top.* – 顶级组件为 top 的所有作用域。
top.env.*.monitor – env 中所有以监视器结尾的范围;
field_name 是用作数据库条目查找的标签
value 是要存储在数据库中的值
uvm_config_db set示例
下面的示例显示,设置接口句柄 intf,键入 mem_if,使用全局范围标记 mem_intf。
mem_if intf(clk,reset); //interface instance
uvm_config_db#(virtual mem_if)::set(null,"*","mem_intf",intf); //set method
上图说明了名称为 mem_intf 且类型为 mem_if 的资源如何存储在数据库中。
uvm config db get method
bit uvm_config_db#(type T=int)::get(uvm_component cntxt, string inst_name, string field_name, ref T value);
value 是要从数据库中检索到的值的变量
其他字段与 set 方法相同。
如果成功,该方法返回 1,如果数据库中没有此类资源,则返回 0。
get 方法示例:
下面的例子显示。使用 get 方法从数据库中获取虚拟接口句柄并将其分配给 mem_vif。如果 get 方法失败,将显示 fatal 消息。
virtual interface mem_if mem_vif; //virtual interface declaration
if( !uvm_config_db#(virtual mem_if)::get(this,"*", "mem_intf", mem_vif))
`uvm_fatal(get_full_name(),{"virtual interface must be set for:",".mem_vif"} ); //get method
标签:get,mem,config,数据库,db,UVM,Config,uvm 来源: https://www.cnblogs.com/fuqiangblog/p/16683924.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。