UVM-前门访问和后门访问

2023-12-31 11:18
文章标签 访问 uvm 后门 前门

本文主要是介绍UVM-前门访问和后门访问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前门访问: 通过寄存器配置总线SPI(如APB协议、OCP协议、I2C协议)来对DUT进行操作,前门访问操作只有两种方式:读和写操作
后门访问: 是与前门访问相对的操作,从广义上讲所有不通过DUT的总线而对DUT内部的寄存器或者存储器进行存取的操作都是后门访问,利用UVM DPI(uvm_hdl_read()、uvm_hdl_deposit()),而不通过物理总线访问
1.前门访问

  • 第一种uvm_reg::read()/write(),在传递时,用户需要将参数path指定为UVM_FRONTDOOR。除了status和value两个参数需要传入,其他参数可采用默认值
1.寄存器模型提供的方法
//reg_model寄存器模型实例名,reg寄存器实例名
reg_model.reg.write(status, value, UVM_FRONTDOOR, .parent(this));
reg_model.reg.read(status, value, UVM_FRONTDOOR, .parent(this));
  • 第二种uvm_reg_sequence::read_reg()/write_reg(),在使用时,也要将path指定为UVM_FRONTDOOR
2.uvm_reg_sequence预定义方法
read_reg(rgm.ss, status, data, UVM_FRONTDOOR);
write_reg(rgm.ss, status, data, UVM_FRONTDOOR);

2.后门访问

1.确保寄存器模型在建立时将各个寄存器映射到DUT一侧的HDL路径

add_hdl_path("reg_backdoor_access.dut");
chnl0_ctrl_reg.add_hdl_path_slice($sformatf("regs[%0d]", `SLVO_RW_REG), 0, 32);
lock_model();
  • 通过uvm_reg_block::add_hdl_path()将寄存器模型关联到DUT一端
  • 通过uvm_reg::add_hdl_path_slice完成将寄存器模型各个寄存器成员与HDL一侧的地址映射
  • lock_model()函数结尾,结束地址映射关系,保证模型不会被其他用户修改

2.寄存器模型完成HDL路径映射后,利用uvm_reg或uvm_reg_sequence自带的方法进行后门访问

  • uvm_reg::read()/write(),在调用该方法时设置UVM_BACKDOOR的访问方式
  • uvm_reg_sequence::read_reg()/write_reg(),在调用该方法时设置UVM_BACKDOOR的访问方式
  • uvm_reg::peek()/poke()两个方法,分别对应了读取寄存器(peek)和修改寄存器(poke)两种操作,本身只针对后门访问,所以无需设置UVM_BACKDOOR
1. 寄存器模型提供的方法read()/write()
rgm.ctrl.read(status,data,UVM_BACKDOOR,.parent(this));        
rgm.ctrl.write(status,'h11,UVM_BACKDOOR,.parent(this))
2. uvm_reg_sequence预定义方法read_reg()/write_reg()
read_reg(rgm.ss,status,data,UVM_FRONTDOOR);
write_reg(rgm.ss,status,'h22,UVM_FRONTDOOR);
3. 寄存器模型提供的方法peek()/poke()
rgm.ctrl.peek(status,data,.parent(this));    
rgm.ctrl.poke(status,'h22,.parent(this));
前门访问后门访问
通过总线协议访问需要耗时,且在总线访问结束时才能结束前门访问通过UVM DPI关联硬件寄存器信号路径,直接读取或修改硬件,不需要访问时间,零时刻响应
一般读写只能按字(word)读写,无法直接读写寄存器域可以对寄存器或寄存器域直接做读写
依靠监测总线来对寄存器模型内容做预测依靠 auto prediction方式自动对寄存器内容做预测
正确反应了时序关系不受硬件时序控制,对硬件做的后门访问可能发生时序冲突
不受总线时序功能影响通过总线协议,可以有效捕捉总线错误,继而验证总线访问路径

这篇关于UVM-前门访问和后门访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/555880

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

UVM:callback机制的意义和用法

1. 作用         Callback机制在UVM验证平台,最大用处就是为了提高验证平台的可重用性。在不创建复杂的OOP层次结构前提下,针对组件中的某些行为,在其之前后之后,内置一些函数,增加或者修改UVM组件的操作,增加新的功能,从而实现一个环境多个用例。此外还可以通过Callback机制构建异常的测试用例。 2. 使用步骤         (1)在UVM组件中内嵌callback函

OpenStack中加固VNC访问安全

OpenStack中加固VNC访问安全 目录 OpenStack中加固VNC访问安全1.问题发现2.流程分析3.潜在后果4.解决方案④配置IPtables⑤VNC添加访问密码 5.参考链接 1.问题发现 很多同学使用noVNC之后都没有退出终端的习惯,往往都是用完了就直接关闭网页窗口。说这样隐患很大,如果内网里面有一些script kiddie随时都能将我们线上的虚拟

Qt: 详细理解delete与deleteLater (避免访问悬空指针导致程序异常终止)

前言 珍爱生命,远离悬空指针。 正文 delete 立即删除:调用 delete 后,对象会立即被销毁,其内存会立即被释放。调用顺序:对象的析构函数会被立即调用,销毁该对象及其子对象。无事件处理:如果在对象销毁过程中还涉及到信号和槽、事件处理等,直接 delete 可能会导致问题,尤其是在对象正在处理事件时。适用场景:适用于在确定对象已经不再被使用的情况下,并且不涉及异步处理或事件循环中的

Windows下安装Elasticsearch,启动报错,解决方法,访问

对于Windows用户,我们推荐使用MSI安装包进行安装。这个安装包使用图形用户界面来引导你进行安装。 首先,从这里https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.msi下载Elasticsearch 6.1.1的MSI安装包。 然后双击下载好的安装包文件启动图形化安装程序,在第一个界面,选

145-Linux权限维持Rootkit后门Strace监控Alias别名Cron定时任务

参考 【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务_alias ls='alerts(){ ls $* --color=auto;python -c "-CSDN博客 参考 FlowUs 息流 - 新一代生产力工具 权限维持-Linux-定时任务-Cron后门 利用系统的定时任务功能进行反弹Shell 1、编辑后门反弹shell脚本

访问controller404:The origin server did not find a current representation for the target resource

ider build->rebuild project。Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过。由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。 参考:资料

Springboot工程配置https访问

背景 因为前端工程使用nginx配置了https访问,在https直接请求我们Springboot后端的http接口会报错。那么我们就需要配置使得我们后端的springboot服务支持https访问。 证书生成 在配置springboot工程https之前,我们需要生成自签名证书以及Spring Boot通常使用的PKCS#12格式的密钥库。 生成自签名证书 openssl req -x