微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > UVM中如何在uvm_object或着其派生类中使用config_db机制传递信息

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

时间:10-02 整理:3721RD 点击:

如题,张强的《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到这个类。所以想请教各位这样使用是可否以,有什么需要注意的地方呢?

老样子,自己先顶一下!

试一下在my_transaction中定义数据类型
intaaaa
注册一下
base_test中build时直接set可以解决
目前我就是这样用的

请问是否可以具体一些,是现在transaction中定义变量int XX,然后使用`uvm_object_utils_begin...end宏注册。在base_test的build_phase中直接使用config_db#(value type)::set。这样就可以吗?那么set后面的具体路径是什么呢?

关于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),这样即可

给你发个网址你看一下有UVM的config机制用法,也有例子讲的还是很详细的
http://www.asicdv.com/uvm_scan.asp

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

http://www.asicdv.com/uvm_scan.asp

非常感谢分享!

不得不说,这个网站非常不错啊!

good!thanks



网址无效啦

可以使用uvm_resource_db

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top