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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4703|回复: 11

[讨论] UVM中如何在uvm_object或着其派生类中使用config_db机制传递信息

[复制链接]
发表于 2016-12-23 14:32:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lx2116 于 2016-12-23 14:33 编辑

如题,张强的《UVM实战》中有在介绍sequence的那一章中提到如何在sequence中使用config_db,而sequence不属于uvm_component。所以可以参考这部分内容。现在我想在my_transaction(uvm_sequence_item派生类)中使用一个配置类cfg(uvm_object的派生类),在其中有几个变量,通过随机化这些变量实现测试环境的不同配置,不知道这样是否会有问题。所以想在my_transaction中使用config_db::get,在base_test的end_of_elaboration_phase中config_db::set,但是总是无法在my_transaction中get到这个类。所以想请教各位这样使用是可否以,有什么需要注意的地方呢?
 楼主| 发表于 2016-12-23 16:07:25 | 显示全部楼层
老样子,自己先顶一下!
发表于 2016-12-24 12:31:47 | 显示全部楼层
试一下在my_transaction中定义数据类型
int  aaaa
注册一下
base_test中build时直接set可以解决

目前我就是这样用的
 楼主| 发表于 2016-12-24 15:24:44 | 显示全部楼层
回复 3# hushishun1987


   请问是否可以具体一些,是现在transaction中定义变量int XX,然后使用`uvm_object_utils_begin...end宏注册。在base_test的build_phase中直接使用config_db#(value type)::set。这样就可以吗?那么set后面的具体路径是什么呢?
发表于 2016-12-24 18:59:43 | 显示全部楼层
关于uvm_config_db可以这样理解,uvm_config_db#(uvm_object)::set(comp,string0,string1,obj),set 操作可以认为做了一个联合数组aa[{comp.get_full_name(),string0,string1}] = obj,而get操作就是得到 aa[{comp.get_full_name(),string0,string1}],那么关于你的问题,在transaction中get某个obj,就可以这样,在test中uvm_config_db#(uvm_object)::set(null,string0,string1,obj),而get时也是uvm_config_db#(uvm_object)::get(null,string0,string1,obj),这样即可
发表于 2016-12-25 22:11:00 | 显示全部楼层
给你发个网址你看一下有UVM的config机制用法,也有例子讲的还是很详细的

http://www.asicdv.com/uvm_scan.asp
发表于 2016-12-25 22:13:08 | 显示全部楼层
回复 4# lx2116


   给你个网址你看一下,有UVM的config机制,例子讲的很清楚

http://www.asicdv.com/uvm_scan.asp
 楼主| 发表于 2016-12-26 09:11:13 | 显示全部楼层
回复 7# hushishun1987


   非常感谢分享
 楼主| 发表于 2016-12-26 09:31:52 | 显示全部楼层
回复 7# hushishun1987


   不得不说,这个网站非常不错啊!
发表于 2017-11-20 16:36:17 | 显示全部楼层
good!thanks ~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 03:26 , Processed in 0.021529 second(s), 6 queries , Gzip On, Redis On.

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