UVM配置之resource机制(1)

本文探讨了UVM中资源配置的重要性,特别是config_db机制如何解决命令行参数配置的不足。通过一个示例解释了uvm_resource_db的工作原理,展示了在uvm_test和uvm_env中配置uvm_agent变量时可能出现的问题。资源的set和get过程被详细阐述,揭示了由于资源按push_back方式存储可能导致的覆盖问题,并提出了uvm_config_db作为更优的解决方案。

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

UVM为什么会迅速成为业内标准(已经是IEEE的标准),在于UVM的TB的可复用性,用户友好性。想象一下下面的一个应用场景,我们在搭建TB时,某些case run起来需要配置某些参数,原有的思路是在TB中利用SV的系统函数比如$test $plusargs 或者 $value $plusargs来获取相应的参数,从而配置某些特定的应用场景。这样做在现在看来有两处不友好的地方,首先在run的时候需要命令行加入参数,参数的数量是如法控制的,其次如果在环境集成的时候,万一需要两个这样同样的子TB来构成上一层的环境,这个时候无法给两个TB配置不同的参数。资源配置机制(config_db机制)作为UVM重要的一个特性,很好的解决了上面的问题,下面介绍一下UVM是如何配置资源的以及获取资源的。
在我们使用UVM资源配置机制的时候,由于一些种种原因,不是使用uvm_config_db进行配置的,我们可能会看见uvm_resource_db来进行配置(一般不会使用,现在有uvm_config_db替代了),在这里我们有必要要先讲一下uvm_resource_db,以及这个配置的缺陷。看下面的例子

package   UVM_cmd;
        import uvm_pkg::*'
		`include "uvm_macros.svh"
		class  unit_agent  extends uvm_agent;
		   int A=10;
		   int i;
		   local int b;
		   uvm_resource#(int) re;
		   uvm_resource_types::rsrc_q_t rq;
		   uvm_resource_pool rp;
		  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值