[UVM]config_db机制(set和get函数)

本文深入探讨UVM中的config_db机制,主要关注set和get函数的使用。set函数用于设置参数,get函数用于获取参数。通过源码分析和参数解析,解释了如何在验证环境中利用config_db传递资源。set函数的四个参数定义了作用范围和目标字段,而get函数则根据组件和实例名称获取指定字段的值。
摘要由CSDN通过智能技术生成

uvm_config机制

在UVM中,参数的传递依赖于config_db机制以下两个函数

  • set函数是用来发送需要传递的参数
  • get函数是用来接收需要传递的参数

针对uvm验证环境,一般使用uvm_config机制来传递的资源

uvm_config_db#(T)::set(cntxt,inst_name,field_name,value);
uvm_config_db#(T)::get(cntxt,inst_name,field_name,value);

uvm_config_db

uvm_config_db#(T)::set(cntxt,inst_name,field_name,value);
uvm_config_db#(T)::get(cntxt,inst_name,field_name,value);

参数T是指传递参数的类型,可以是vulture interfacesequencer

get 函数

源码分析

static function void get(	uvm_component 	cntxt,
							string 			inst_name,
							string 			field_name,
							T 				value	)

参数解析

获取 inst_name 中 field_name 的值,使用组件 cntxt 作为起始搜索点。 inst_name 是相对于 cntxt 的显式实例名称,如果 cntxt 是配置对象适用的实例,则可能是空字符串。 field_name 是要搜索的范围内的特定字段。


set 函数

源码

static function void set(	uvm_component 	cntxt,
							string 			inst_name,
							string 			field_name,
							T 				value	)

参数解析

为 cntxt 中的 inst_name 中的 field_name 创建新的或更新现有的配置设置。

如源码所示,set函数具有四个参数:

  • cntxt和inst_name一起定义了uvm_config_db中set或get函数的作用范围完整的范围为{cntxt,“.”,inst_name},如果cntxt是null,则inst_name需要提供完整范围信息
  • field_name是目标字段

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chen_陈某人

一杯水,一包烟,一把键盘敲一天

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值