UVM中config_db的使用(一)

本文介绍了UVM验证环境中config_db机制的使用,它用于在组件间传递参数。config_db通过set和get方法进行设置和获取,设置时需要指定参数类型、组件路径、标识符和值,获取时则根据路径和标识符读取。当高层和低层同时设置时,高层优先级更高。此外,特殊情况可以在build_phase中自动完成get操作,但需要满足特定条件。

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

学习笔记:

  1. config_db机制的使用

学习产出:

config_db机制
config_db机制用于在UVM验证平台间传递参数。通常set和get成对出现。
例:uvm_config_db#(int)::set(this,”env.i_agt.drv”,”pre_num”,100); //其中第一个括号指定传递参数的类型。第二个括号的第一个参数是uvm_component实例的指针;第二个参数是相对该实例的路径;第三个参数表示一个记号,用以说明这个值传给目标中的哪个成员的,仅做标识用,类似于对暗号,你可以任意指定字符串;第四个参数是要设置的值。总路径由第一个参数和第二个参数组合而来。
例:uvm_config_db#(int)::get(this,””,”pre_num”,pre_num); //一般地,第一个参数如果是this,第二个参数可以是空的字符串,第三个参数与set保持一致,第四个参数即要设置的变量。
若第一个参数为null,则与uvm_root::get()等价,即uvm_top。那么第二个参数的相对路径就要从uvm_test_top开始延伸。
特殊情况时可以仅出现set,不出现get,在build_phase中调用super.build_phase()即可自动完成get操作。但必须满足两个条件:1.被传参所在的component实例必须使用uvm_component_utils宏注册。2.被传参变量必须使用uvm_field_int宏注册。3.set函数设置时第三个参数必须要与get函数中的变量名字相一致。即不要使用稀奇古怪的标记,养成标记与变量同名的习惯。
如果低层和高层同时向同一地点发送,则高层优先,即在get操作之前,若有两个set函数已完成,则仅接收传递来源UVM层次高的那个参数,即越靠近根节点uvm_top的层次越高,优先级越高。如果从同一层次向同一目的地发则取最新的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值