在之前简单介绍了uvm_reg_predic是怎么实现显示预测的,连上map,连上adapter,连上bus_in即可,下面我们要详细的解释原因
先解释uvm_reg_predict中重要变量的作用

uvm_reg_map map :  从bus总线上上采样到addr信息之后,有map根据addr寻找到RAL中相关寄存器句柄
uvm_reg_adapter adapter:从bus总线上上采样到addr信息之后,调用adapter.bust2reg实现transaction 转换
uvm_analysis_imp#(BUSTYPE,uvm_reg_predict#(BUSTYPE))  bus_in  :TLM 端口

核心方法write(),下面总结了这个方法具体做的事情

(1)    判断adapter是否为null
(2)    应该增加判断map是否为null(虽然UVM源码中没有实现,严谨的角度应该判断)//注意这里挂载的map的必须是root_map。
(3)    adapter.bus2reg//    transaction转换
(4)    map.get_reg_by_offset //获取RAL中reg句柄
(5)    获取reg所在local_map的map_info//获取reg的直连map的map_info信息
(6)    根据map_info信息调用uvm_reg::do_predict//实现预测,包的括多地址的处理情况

上面即为实现显示预测的全步骤
下面介绍一下当register 位宽大于bus_width的时候,uvm_reg_predict是如何处理的
这种情况比较特殊,具体看下面的流程。

(1)基本流程和上面相似,下面说一下不同之处
(2)比如register 位宽是64bit,bus_width是32bit,均以小端模式来说
(3)首先uvm_reg_prdictor采样到了monitor发送来的寄存器低地址(比如00),这个时候
将采样的地址暂时保存起来
(4)接着uvm_reg_prdictor采样到了monitor发送来的寄存器低地址(04)这个时候将
采样的数据也保存到同样的地方
(5)判断发现现在暂时的空间中已经有2个32bit的数据了,与之前map_info中存储的地址的个数一样,2个地址(mp_info中存放了该寄存器的低地址和高地址),这个时候才会调用
uvm_reg::do_predictor去update  mirror value

所有不管是哪种模式,uvm_reg_predict必须采样到一个寄存器的的完整数据才会去做predict 工作。
同时在做predict的时候uvm_reg_predictor默认是打开寄存器的byte_en使能,所有的byte均可以update,因此我们在adapter中重载bus2reg时如果有相关方面的需求,是无法实现的,我们可以去重载uvm_reg_predictor::write方法来实现。
在uvm_reg_predict还有一个变量 uvm_analysis_port #(uvm_reg_item) reg_an

这个TLM 端口的作用是在进行预测完之后,将相关的uvm_reg_item transaction发送出去,有时候我们可能有这方面的需求,

总结:

(1)挂载的map必须是root_map,这样才能对全局所有寄存器可见
(2)挂载的adapter可以是local_adapter或者root_adapter
(3)byte_en默认是全打开的
(4)所有不管是哪种模式,uvm_reg_predict必须采样到一个寄存器的的完整数据才会去做predict 工作。
(5)根据需要可以对write方法进行重载

UVM RAL 中的显示预测 uvm_reg_predictor相关推荐

  1. Science Advances:社会和健康科学中用于描述、预测和因果推理的机器学习方法

    社会和健康科学中使用的机器学习(ML)方法需要符合描述.预测或因果推理等预期研究目的.本文通过结合这些学科的统计分析的必要要求,为社会和健康科学中的研究问题与适当的ML方法进行了全面.系统的元映射.作 ...

  2. TransDecoder识别转录本中编码区并预测蛋白

    TransDecoder可以识别转录本序列中的编码区域,如:Trinity从头组装.Tophat和Cufflinks将RNA-Seq比对到基因组转录本结果 TransDecoder 基于以下标准识别可 ...

  3. 3D图像重建中的颜色预测误差研究

    目录 整体思路: 1.本课题的目的.意义 1. 描述图像 2. 标注图像 3.CNN 3D图像重建中的颜色预测误差研究 摘 要 1 绪 论 1.1背景与意义 1.2 课题研究内容 1.3 3D重建国内 ...

  4. 使用基于时间的关系加权标准来改善社交网络中的链接预测

    使用基于时间的关系加权标准来改善社交网络中的链接预测 关键词:链接预测,社交网络,加权图. 摘要:近年来,对复杂网络中链路预测(LP)问题的研究引起了相当多的关注.此问题试图预测网络中两个未互连节点之 ...

  5. 【论文翻译】从进化和异质网络中表征和预测社区成员

    从进化和异质网络中表征和预测社区成员 摘要 近年来,从web数据中挖掘不同类型的社区吸引了大量的研究工作.然而,现有的社区挖掘技术都没有考虑到web数据的动态性和异构性.在本文中,我们提出了从异构we ...

  6. python图像中如何显示中文

    python图像中如何显示中文 在开头加入这两行即可 from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei']

  7. 脚本中echo显示内容带颜色显示

    脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: echo -e ...

  8. html页面在ie上出现404怎么解决,如何解决自定义404页面在IE等浏览器中无法显示问题...

    网站设置自定义404页面之后(如何在IIS下正确设置404页面?),如无法在浏览器中正常显示,可能是以下原因: 1.404页面文件权限设置错误 我们需要为404页面文件添加上用户everyone的可读 ...

  9. pandas使用set_table_attributes函数、display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side)

    pandas使用set_table_attributes函数.display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side) 目录

最新文章

  1. Oracle宣布提供新的Java支持价格体系
  2. < Android数据存储> 任务二 应用程序数据文件夹里的文件读写
  3. MVC UpdateModel的未能更新XXXXX的类型模型
  4. td 首行缩进_工作中常用的CSS整理
  5. 解决SQL映射文件的警告提示
  6. Spring Cloud构建微服务架构(七)消息总线
  7. django-视图函数 00
  8. 关于快递鸟的顺丰电子面单打印
  9. simulink upd通信
  10. 硬石类山水盆景的制造技法
  11. 简单几步解决 svchost 占用资源过高的问题
  12. 微信支付 发起商家转账API 2022年v3 transfer batches
  13. ipa-server
  14. Learn OpenCV之Rotation Matrix To Euler Angles
  15. switch 求分段函数
  16. prism在java_Prism 框架应用-基础知识篇
  17. vue学习第五天(9月8号)
  18. SQL语句中,有了别名不能再用原名,需要使用别名
  19. 最新 955 不加班的公司名单
  20. 失落世界服务器国庆宝箱位置,烟雨江湖国庆宝箱在哪里 烟雨江湖中秋宝箱位置坐标大全...

热门文章

  1. Ceph Calamari软件包介绍
  2. 这些数学题做不出?不是你的错!
  3. 透过上网管理 看看上班时间员工都在干啥?
  4. 室内定位中非视距的识别和抑制算法研究综述(部分)
  5. 婴儿监护物联网系统设计系统源码开放
  6. pandas 筛选行 整行复制粘贴
  7. 电脑上个别按键失灵可能原因
  8. iOS攻城狮修炼之路
  9. Android流畅度总结
  10. 网络编程之什么是计算机网络