一个component(如my_driver)内通过get_full_name()函数可以得到此component的路径
config_db机制用于在UVM验证平台间传递参数。它们通常都是成对出现的。set函数是寄信,而get函数是收信。如下设置当前名字为pre_num=100寄信给drive
uvm_config_db#(int)::set(this, "env.i_agt.drv", "pre_num", 100);
其中第一个和第二个参数联合起来组成目标路径,与此路径符合的目标才能收信。第一个参数必须是一个uvm_component实例的指针,第二个参数是相对此实例的路径。第三个参数表示一个记号,用以说明这个值是传给目标中的哪个成员的,第四个参数是要设置的值。set函数的第一个参数为null时,在这种情况下,UVM会自动把第一个参数替换为uvm_ root::get()。
假如把this替换为了this.env,第二个参数是my_driver相对于env的路径
uvm_config_db#(int)::set(this.env, "i_agt.drv", "pre_num_max", 100);
在driver中的build_phase使用如下方式收信
uvm_config_db#(int)::get(this, "", "pre_num", pre_num);
get函数中的第一个参数和第二个参数联合起来组成路径。第一个参数也必须是一个uvm_component实例的指针,第二个参数是相对此实例的路径。一般的,如果第一个参数被设置为this,那么第二个参数可以是一个空的字符串。第三个参数就是set函数中的第三个参数,这两个参数必须严格匹配,第四个参数则是要设置的
set与get函数一般都是成对出现,但是在某些情况下,是可以只有set而没有get语句,即省略get语句。
只要使用uvm_field_int注册,并且在build_phase中调用super.build_phase(),就可以省略在build_phase中的如下get语句
uvm_config_db#(int)::get(this, "", "pre_num", pre_num);
关键是build_phase中的super.build_phase语句,当执行到driver的super.build_ phase时,会自动执行get语句。
审核编辑:刘清
-
UVM
+关注
关注
0文章
182浏览量
19240
原文标题:UVM的config机制
文章出处:【微信号:FPGA学姐,微信公众号:FPGA学姐】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
ADS1115的Config Register在什么时候配置比较好?
“碰一下”支付背后的4G技术
支付宝发布新一代AI视觉搜索“探一下”
深入探讨Linux系统中的动态链接库机制
![深入<b class='flag-5'>探讨</b>Linux系统中的动态链接库<b class='flag-5'>机制</b>](https://file1.elecfans.com/web3/M00/02/B7/wKgZPGdiLnaAaR-oAAAPLwOzZgA047.png)
MySQL编码机制原理
自感线圈断电时灯泡为啥会闪亮一下
欢创播报 支付宝“碰一下”正式发布
![欢创播报 支付宝“碰<b class='flag-5'>一下</b>”正式发布](https://file1.elecfans.com//web2/M00/FC/02/wKgaomaPUkeACiRpAAASJK4J4sA16.webp)
新版CubeMX CRC校验模块没有Config吗?
uvm1.1升级为uvm1.2 uvm_report_server报错是何原因?
![<b class='flag-5'>uvm</b>1.1升级为<b class='flag-5'>uvm</b>1.2 <b class='flag-5'>uvm</b>_report_server报错是何原因?](https://file1.elecfans.com/web2/M00/C2/84/wKgZomXlaBOAeLH-AAAeICCaSgU574.png)
UVM手把手教程系列(一)UVM验证平台基础知识介绍
![<b class='flag-5'>UVM</b>手把手教程系列(<b class='flag-5'>一</b>)<b class='flag-5'>UVM</b>验证平台基础知识介绍](https://file1.elecfans.com/web2/M00/C1/37/wKgZomXdNsGASQ4iAAAqhaYIWIk472.png)
评论