[UVM源代码研究] 谈谈寄存器模型中predict

深入解析UVM寄存器模型中的predict功能及其自动预测管理
本文详细探讨了在UVM环境中寄存器模型中predict函数的使用,包括自动预测的开启与关闭策略,以及手动使用predictor时的组件连接和数据流通过程。重点介绍了如何在connect_phase中配置自动预测,以及关闭自动预测时predictor的实例化与监控器的配合工作。

[UVM源代码研究] 谈谈寄存器模型中predict

我们在前面的文章 聊聊寄存器模型中的期望值(desired value)、镜像值(mirrored value)以及DUT中的实际值(actual value)的相关概念及方法 已经简单介绍了predict()函数以及auto_predict相关的概念,本文我们来详细介绍一下寄存器模型中如何正确引入predictor。

首先我们看下当我们环境中使用自动预测时,UVM源代码是如何工作的,我们需要在寄存器模型创建的组件的connect_phase()执行如下代码,将我们寄存器模型中的uvm_reg_map设置为自动预测。
在这里插入图片描述

我们来看看源代码中该函数的定义
在这里插入图片描述

这里的set_auto_predict()参数是可以为1和0的,参数值会直接赋给m_auto_predict,m_auto_predict为1会打开自动预测的功能。

如果打开自动预测的功能,那么通过uvm_reg_map来进行总线的的读写(包括UVM_FRONTDOOR和UVM_BACKDOOR)时,在读写task调用结束前,该寄存器的predict()函数会被自动调用以更新镜像值和期望值。

如果关闭自动预测功能,那么我们需要将uvm_reg_predictor实例化(或者继承一个我们自己的predictor),将predictor实例与我们monitor相连接(这里还需要我们monitor能够正确抓去总线数据),这样predictor就会实时的获取m

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值