UMV config_db机制

本文详细介绍了UVM中的配置数据库(config_db)如何作为全局数据交换平台,演示了如何设置和获取数据,以及在组件间传递接口、变量和对象的实践示例。重点讲解了config_db的用法,包括set和get函数的参数及其实现流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

UVM 提供了一套全局数据存取的机制,通过这种机制可以实现数据存取和交换。

典型应用

  1. 传递interface
  2. 传递数据,类似全局变量
  3. 传递object

接口说明

发送数据

config_db#(int )::set(this,“env.drv”,“pre_num”,100)
第一个参数:数据类型 ,可以是变量类型,也可以是接口类型也可以是对象类型。
第二个参数:uvm_compnent 实例的指针
第三个参数:相对第二个参数的路径
第四个参数:传递的实例名
第五个参数: 传递的实例的值

接收数据

config_db#(int )::get(this,"",“pre_num”,pre_num)
第一个参数:数据类型 ,可以是变量类型,也可以是接口类型也可以是对象类型。
第二个参数:uvm_compnent 实例的指针,因为是接收,可以使用this
第三个参数:相对第二个参数的路径
第四个参数:传递的实例名
第五个参数: 接收值存放的实例

举例

发送端

class c1 extends uvm_component;
int a = 1;

`uvm_component_utils_begin(c1)

`uvm_component_utils_end
uvm_config_db#(int)::set(“uvm_root”, “c2”, “a”, 1)

endclass

class c2 extends uvm_component;
int a = 1;

`uvm_component_utils_begin(c1)

`uvm_component_utils_end
uvm_config_db#(int)::get(“this”, “”, “a”, a)

endclass

大体就是这样一个流程,设置数据到全局存储区域,然后其他可以进行获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值