在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1969|回复: 8

[讨论] 关于config_db传参数

[复制链接]
发表于 2018-8-16 15:10:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
一般都是在component的build_phase中set和get相关的参数,uvm支持在main_phase中使用config_db传参吗? 我试了试,没有get到我想要的参数,各位大神请不吝赐教。
发表于 2018-8-16 15:38:36 | 显示全部楼层
可能是你的set和get时间没对上,试试在get之前先用config_db()::wait_modified等待一下
 楼主| 发表于 2018-8-16 16:05:36 | 显示全部楼层
回复 2# irina


    您的意思可以在main_phase中用config_db来传参吗?
 楼主| 发表于 2018-8-16 16:06:12 | 显示全部楼层
本帖最后由 静影沉璧 于 2018-8-16 17:11 编辑

回复 2# irina


    可能存在时间对不上的问题,我想知道是不是可以在main_phase中使用config_db机制
发表于 2018-8-16 19:37:46 | 显示全部楼层
main_phase支持config_db参数传递,只要你set的时间早于get的时间就能得到想要的值
发表于 2018-8-17 09:41:54 | 显示全部楼层

可以的 甚至在TB top 里写个initial 都可以 用这个传
 楼主| 发表于 2018-8-17 09:48:16 | 显示全部楼层
回复 5# lovehere33


   多谢,我再试试,可能是时间问题导致参数值没传过去。
 楼主| 发表于 2018-8-17 10:14:29 | 显示全部楼层
回复 5# lovehere33


    试了一下,确实可以在main_phase中传参数,时间要自己控制好,多谢~
发表于 2018-8-17 13:15:33 | 显示全部楼层
可以在任何地方使用config_db,只要你保证set在get之前。uvm是有一个叫resource_pool(资源池)的结构,你写的所有config_db::set都会存到这个结构里面,get实际就是在这个结构里面找想要的东西。
查找的依据就是前三个参数,前两个参数会构成一个叫做scope的属性,第三个参数是name属性,scope和name这两个属性就是用来表示这个资源的,只要这两个属性能对上号,就能从资源池中get到。
另外,前两个参数实际也没有UVM_tree的要求,scope这个属性其实也是string类型。
config_db#(int)::set(component_handle,"string","name",4);
上面资源池送了一个int类型值为4的资源,它的scope其实是:
scope={"component_handle.get_full_name()"."string"};
所以其实第二个参数并没有要求要按照UVM_tree来填。
另外第一个子所以要求是uvm_component句柄类型,这是因为资源的优先级是根据这个来定的,第一个参数所处层次越高,其优先级越高。
书上要求按层次其实是coding style,因为按层次的话,get的时候第一个参数填this,那么第二各参数就不用填了,很方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 20:24 , Processed in 0.021199 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表