数字IC验证23915--寄存器方法

文章目录

  • 镜像值与期望值
  • predication的分类
    • 自动预测
    • 显示预测
  • uvm_reg的访问方法
  • 寄存器健康检查![在这里插入图片描述](https://img-blog.csdnimg.cn/8b1832ab43854068970bb5a66d851d06.png)

镜像值与期望值

寄存器模型中的每一个寄存器,都应该有两个值,一个是镜像值(mirrored value) ,一个是期望值(desired value) :

  • 期望值是先利用寄存器模型修改软件对象值,而后利用该值更新硬件值;镜像值是表示当前硬件的已知状态值。
  • 镜像值往往由模型预测给出,即在前门访问时通过观察总线或者在后门访问时通过自动预测等方式来给出镜像值。

predication的分类

UVM提供了两种用来跟踪寄存器值的方式,我们将其分为自动预测(auto prediction)和显式预测(explicit) 。

  • 如果用户想使用自动预测的方式,还需要调用函数uvm_reg _map::set_auto_predict()。
  • 两种预测方式的显著差别在于,显式预测对寄存器数值预测更为准确,我们可以通过下面对两种模式的分析得出具体原因。

自动预测

  • 如果用户没有在环境中集成独立的predictor,而是利用寄存器的操作来自动记录每一次寄存器的读写数值,并在后台自动调用predict()方法的话,这种方式被称之为自动预测。
  • 这种方式简单有效,然而需要注意,如果出现了其它一些sequence直接在总线层面上对寄存器进行操作(跳过寄存器级别的write()/read()操作,或者通过其它总线来访问寄存器等这些额外的情况,都无法自动得到寄存器的镜像值和预期值。

显示预测

  • 更为可靠的一种方式是在物理总线上通过监视器来捕捉总线事务,并将捕捉到的事务传递给外部例化的predictor,该predictor由UVM参数化类uvm_reg _predictor例化并集成在顶层环境中。
  • 在集成的过程中需要将adapter与map的句柄也一并传递给predicttor一侧,同时将monitor采集的事务通过analysis port接入到predictor—侧。
  • 这种集成关系可以使得,monitor一旦捕捉到有效事务,会发送给predictor,再由其利用adapter的桥接方法,实现事务信息转换,并将转化后的寄存器模型有关信息更新到map中。
  • 默认情况下,系统将采用显式预测的方式,这就要求集成到环境中的总线UVC monitor需要具备捕捉事务的功能和对应的analysis port,以便于同predictor连接。
    prediction在环境中的使用:
class mcdf_ bus_env extends uvm _env;mcdf_ bus_agent agent;mcdf_rgm rgm;reg2mcdf _adapter reg2mcdf ;uvm _reg predictor # (mcdf_bus_trans) mcdf2reg_predictor;`uvm_component _utils (mcdf bus_env)function void build phase (uvm phase phase) ;agent = mcdf bus_agent: :type_id: : create ( "agent" , this);if ( !uvm_config_db#(mcdf_rgm) : :get(this, "","rgm" , rgm)) beginuvm_info ( "GETRGM","no top-down RGM handle is assigned",UVM_LOW)rgm = mcdf_rgm : : type_id: :create ("rgm" , this) ;'uvm_info("NEWRGM" , "created rgm instance locally",UVM_LOW)endrgm. build() ;reg2mcdf = reg2mcdf_adapter: :type_id: :create("reg2mcdf" );mcdf2reg predictor = uvm_reg_predictor# (mcdf_bus_trans) : :type_id::create("mcdf2reg _predcitor" ,this) ;mcdf2reg predictor.map = rgm.map;mcdf2reg predictor.adapter = reg2mcdf ;endfunqtionfunction void connect _phase (uvm _phase phase) ;rgm. map.set_sequencer(agent.sequencer,reg2mcdf);agent.monitor.ap. connect(mcdf2reg_predictor.bus_in) ;endfunction
endclass

uvm_reg的访问方法

在这里插入图片描述

uvm_reg_sequence提供的方法
在这里插入图片描述

寄存器健康检查在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的C#基础

using System; namespace HelloWorldApplication }TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。 为帮助您在CSDN创作的文章获得更多曝光和关注,我们为您提供了专属福利: 已注册且未在CSDN平台发布过…

ESIM实战文本匹配

引言 今天我们来实现ESIM文本匹配,这是一个典型的交互型文本匹配方式,也是近期第一个测试集准确率超过80%的模型。 我们来看下是如何实现的。 模型架构 我们主要实现左边的ESIM网络。 从下往上看,分别是 输入编码层(Input Ecoding) 对前…

网工内推 | 网络安全工程师,上市公司,13薪,食宿有补贴

01 苏州奖多多科技有限公司 招聘岗位:网络安全工程师(安服渗透) 职责描述: 1、负责客户网络安全攻击入侵事件溯源分析、处置等工作; 2、根据攻击告警/入侵事件,进行取证调查,攻击溯源反制&…

.netcore 连接 apache doris

apache doris 兼容mysql协议&#xff1b;所以我们在.netcore项目中&#xff0c;可以使用Mysql的驱动 dotnet add package MySqlConnector 测试代码&#xff1a; [HttpGet]public async Task<string> Get2(){//打开连接await using var connection new MySqlConnectio…

入职美团近三个月,闲聊几句

校招入职美团近3个月&#xff0c;随便聊聊 今天和组内的小伙伴们团建来着&#xff0c;聊了很多&#xff0c;感触颇深&#xff0c;碎碎念一下。 作为组内的唯一的校招生&#xff0c;刚入职时面对复杂的业务&#xff0c;各种不熟悉的工具&#xff0c;真的是一脸懵。至少对我自己…

Jmeter系列-环境部署、详细介绍、安装目录介绍(1)

环境部署 官网下载Jmeter http://jmeter.apache.org/下载最新版本的 JMeter&#xff0c;解压文件到任意目录 安装JDK&#xff0c;配置Java环境 1、下载&#xff08;注意选择操作系统对应的位数32/64&#xff09; 官网 &#xff1a;http://www.oracle.com 2、安装&#xff0…

commons-io版本变动在windows环境下引发的NTFS ADS separator问题

起因 因业务需求&#xff0c;项目中引入了一个对方的业务jar包&#xff0c;但是发现代码却启动不起来了&#xff0c;报错&#xff1a; org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.s…

程序与保持健康的六个秘诀

虽然编程并不被视为是一个高危职业,但我们发现一大批数量惊人的开发人员正遭受健康问题的折磨。坐在办公桌很舒适,但有研究表明,它并不像你想象的那样健康。幸运的是,有很多非常容易做到的方法可以改善你的健康。 1.锻炼 尽管这可能是最明显的方法,但很多开发人员常常会…

变压器寿命预测(python代码,Logistic Regression模型预测效果一般,可以做对比实验)

1.数据来源官网&#xff1a;Data for: Root cause analysis improved with machine learning for failure analysis in power transformers - Mendeley Data 点Download All 10kb即可下载数据 2.下载下来后是这样 每一列的介绍&#xff1a; Hydrogen 氢气&#xff1b; Oxyge…

Virtualbox中Ubuntu根目录空间不足

现象 Virtualbox中Ubuntu根目录空间不足 解决 动态存储 虚拟机关闭先在虚拟介质管理里把硬盘Size调大开启Ubuntu用Disks或者GParted重新调整分区大小重新启动 步骤参考: https://zhuanlan.zhihu.com/p/319431032 https://blog.csdn.net/ningmengzhihe/article/details/1272…

VirtualBox宿主机和虚拟机文件互传设置

一、如图1、2、3步骤&#xff0c;设置共享粘贴板和拖放为双向 二、 在启动的虚拟机设置的里面&#xff0c;安装增强插件&#xff0c;然后重启虚拟机。 三、在网络位置就可以看到了

Business Objects单一报表升级为全套商业智能BI产品,探索更多平台与行业

从Crystal Reports到Business Objects 1994年的时候&#xff0c;Crystal Decisions还只有单一的报表产品Crystal Reports&#xff0c;也是全球第一个Microsoft Windows环境下的报表制作工具。 与微软的合作过程中&#xff0c;Crystal Decisions不断进行产品更迭&#xff0c;于…

CentOS 7 调优之周期性的访问中断

文章目录 背景问题描述原因分析解决方案相关版本 背景 操作系统版本&#xff1a;CentOS Linux release 7.6.1810 (Core) 操作系统镜像安装后&#xff0c;未进行任何调整。正常部署应用&#xff0c;应用在 CentOS 7.9 未出现过此类现象。 问题描述 问题描述&#xff1a;负载教…

Pytorch 多卡并行(2)—— 使用 torchrun 进行容错处理

前文 Pytorch 多卡并行&#xff08;1&#xff09;—— 原理简介和 DDP 并行实践 介绍了使用 Pytorch 的 DDP 库进行单机多卡训练的方法&#xff0c;本文进一步说明如何用 torchrun 改写前文代码&#xff0c;以提高模型训练的效率和容错性torchrun 是从 Pytorch 1.9.0 开始引入的…

[管理与领导-93]:IT基层管理者 - 扩展技能 - 5 - 职场丛林法则 -7- 复杂问题分析能力与复杂问题的解决能力:系统化思维

目录 前言&#xff1a; 一、系统化思维 VS 分解思维 1.1 系统化思维 1.2 分解思维 二、中医与西医思维模式的区别 三、正向闭环/正反馈 VS 负向闭环/负反馈 VS 开环 3.1 开环与管理 3.2 闭环与管理 3.3 生态系统是闭环系统 3.4 团队是一个闭环系统 3.5 正向闭环/正反…

华为云云服务器云耀L实例评测 | 在华为云耀L实例上搭建电商店铺管理系统:一次场景体验

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

最优化:建模、算法与理论(典型优化问题

第四章 典型优化问题 4.1 线性规划 4.1.1 基本形式和应用背景 再次说明一下&#xff0c;其实这本书很多的内容之前肯定大家都学过&#xff0c;但是我觉得这本书和我们之前学的东西的出发角度不一样&#xff0c;他更偏向数学&#xff0c;也多一个角度让我们去理解 线性规划问…

STM32-HAL库06-硬件IIC驱动FM24CL16B非易失存储器

STM32-HAL库06-IIC驱动FM24CL16B非易失存储器 一、所用材料&#xff1a; STM32VGT6自制控制板 STM32CUBEMX&#xff08;HAL库软件&#xff09; MDK5 二、所学内容&#xff1a; 通过HAL库的硬件IIC对FM24CL16B存储器进行写与读取操作。 三、CUBEMX配置&#xff1a; 第一步…

【Cocos Creator 3.5实现赛车游戏】10.实现汽车节点的运动逻辑

转载知识星球 | 深度连接铁杆粉丝&#xff0c;运营高品质社群&#xff0c;知识变现的工具 项目地址&#xff1a;赛车小游戏-基于Cocos Creator 3.5版本实现: 课程的源码&#xff0c;基于Cocos Creator 3.5版本实现 上一节的学习后&#xff0c;您已经完成了对汽车节点的控制逻…

简单记一下Vue router 路由中使用 vue-i18n 进行标题国际化

引入状态管理和国际化文件 import store from ../store import i18n from /configs/i18n使用状态管理设置路由当前国际化选项 // 使用状态管理 i18n.locale store.state.setStore.i18n??zh路由中使用i18n { path: /login, name: login, component: LoginPage, meta: { ti…