【总线】AXI第九课时:介绍AXI响应信号 (Response Signaling):RRESP和 BRESP

news2024/11/15 21:01:33

 大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。

        上课时我们讲了AXI的 "原子访问" :独占访问(Exclusive Access)和锁定访问(Locked Access),本章节讲解AXI响应信号 (Response Signaling):RRESP和 BRESP,理解这一章节,有助于设计和调试基于AXI协议的系统,确保系统能够正确地响应和处理各种事务状态。

        这里会有一系列的课程,和大家分享AMBA总线家族,欢迎大家一起学习,收藏点赞。

  系列文章

【总线】AMBA总线架构的发展历程-CSDN博客

【总线】设计fpga系统时,为什么要使用总线?-CSDN博客

【总线】AXI总线:FPGA设计中的通信骨干-CSDN博客

【总线】AMBA总线家族的明星成员:AXI协议简介-CSDN博客

【总线】AXI4第一课时:揭秘AXI4总线的五大独立通道-CSDN博客

【总线】AXI4第二课时:深入AXI4总线的基础事务-CSDN博客

【总线】AXI4第三课时:握手机制-CSDN博客

【总线】AXI4第五课时:信号描述-CSDN博客

【总线】AXI4第六课时:寻址选项深入解析-CSDN博客

【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)-CSDN博客

【总线】AXI4第八课时:介绍AXI的 “原子访问“ :独占访问(Exclusive Access)和锁定访问(Locked Access)-CSDN博客

【总线】AXI第九课时:介绍AXI响应信号 (Response Signaling):RRESP和 BRESP-CSDN博客 


9.1 关于响应信号 (About Response Signaling)

AXI协议允许对读写事务进行响应信号的传递。对于读事务,从设备会将响应信息与读数据一起传递;对于写事务,响应信息则通过写响应通道来传递。

AXI协议定义了以下响应类型:

  • OKAY:正常访问成功,或者独占访问失败。
  • EXOKAY:独占访问成功。
  • SLVERR:从设备错误。
  • DECERR:解码错误。

表9-1 RRESP[1:0] 和 BRESP[1:0] 编码 (Table 7-1 RRESP[1:0] and BRESP[1:0] encoding)

对于写事务,整个突发传输期间只给出一个响应,而不是每个数据传输都给出响应。在读事务中,从设备可以在突发传输中的不同传输上给出不同的响应。例如,在16次读传输的突发中,从设备可能对15次传输返回OKAY响应,而对一次传输返回SLVERR响应。

协议规定即使报告了错误,也必须执行所要求数量的数据传输。例如,如果从设备在请求8次传输的读操作中遇到错误,那么它必须执行8次数据传输,每次都带有错误响应。如果从设备给出了单个错误响应,突发传输的其余部分不会取消。

这种协议对能够发出多个未完成地址的主设备施加了限制,这些主设备还必须支持精确的错误信号传递。这样的主设备必须能够在早期传输已经出错的情况下,处理后续传输。

9.2 响应类型 (Response Types)

本节描述了AXI协议中的四种响应类型:

• Normal access success
• Exclusive access
• Slave error
• Decode error.
 

9.2.1 正常访问成功 (Normal Access Success)

OKAY响应表示:

  • 正常访问的成功。
  • 独占访问的失败。
  • 对于不支持独占访问的从设备进行的独占访问。

OKAY是大多数事务的响应。

9.2.2 独占访问 (Exclusive Access)

EXOKAY响应表示独占访问的成功。第八章 "原子访问" 描述了这种响应。

9.2.3 从设备错误 (Slave Error)

SLVERR响应表示事务未能成功完成。从设备错误条件的例子包括:

  • FIFO/缓冲区溢出或下溢。
  • 尝试的传输大小不受支持。
  • 尝试向只读位置进行写访问。
  • 从设备中的超时条件。
  • 尝试访问不存在寄存器的地址。
  • 尝试访问已禁用或已关闭功能的地址。

为了简化系统的监控和调试,建议仅在出现错误条件时使用错误响应,而不是用于信号正常、预期的事件。

9.2.4 解码错误 (Decode Error)

在没有完全解码的地址映射系统中,可能存在没有从设备响应事务的地址。在这种情况下,互联组件必须提供合适的错误响应,以标记访问为非法,并防止系统因尝试访问不存在的从设备而锁定。

当互联组件无法成功解码从设备访问时,它实际上将访问路由到默认从设备,并且默认从设备返回DECERR响应。实现选项是让默认从设备还记录解码错误的详细信息,以便稍后确定错误的发生方式。通过这种方式,默认从设备可以大大简化调试过程。

AXI协议要求即使出现错误条件,也必须完成事务的所有数据传输。因此,任何给出DECERR响应的组件都必须满足此要求。

请注意,以上翻译是根据您提供的PDF文件内容进行的。如果需要进一步的整合或详细解释,请告知。

总结

  1. 响应信号的作用:在AXI协议中,响应信号用于指示一个事务是否成功完成,或者在执行过程中遇到了什么类型的错误。这对于确保数据的一致性和系统的稳定性至关重要。

  2. 响应类型:AXI定义了四种基本的响应类型:

    • OKAY:表示事务正常完成。如果事务是独占访问但失败了,也会返回OKAY。
    • EXOKAY:表示独占访问事务成功完成。独占访问是一种特殊的事务类型,其中总线不会被其他事务抢占。
    • SLVERR(Slave Error):表示从设备在接收到事务后,由于某些原因(如FIFO溢出、不支持的传输大小等)无法完成该事务。
    • DECERR(Decode Error):通常由互联组件发出,表示没有找到与事务地址匹配的从设备。
  3. 响应信号的编码:响应信号通过RRESP[1:0]BRESP[1:0]来编码。这些信号是2位宽的,每种响应类型对应一个特定的编码组合。

  4. 事务的完成:即使在报告错误的情况下,AXI协议也要求完成事务所需的所有数据传输。这意味着,即使从设备返回了错误响应,它也必须完成整个突发传输。

  5. 多主设备系统中的响应:在多主设备系统中,主设备可能同时发出多个事务。AXI协议要求这些主设备能够处理早期事务的错误响应,同时已经开始后续事务。

  6. 错误处理:系统设计者需要根据返回的响应类型进行相应的错误处理。例如,对于SLVERR,可能需要重试事务或报告错误;对于DECERR,则可能需要检查地址映射或从设备的配置。

  7. 响应信号的设计意图:响应信号的设计旨在提供足够的信息,以便系统能够优雅地处理错误情况,同时确保事务的顺序性和数据的完整性。

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

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

相关文章

如何在 Odoo 16 中配置搜索视图、过滤器和分组

Odoo 中有多种视图类型,包括表单、看板、树、日历、Qweb、搜索等。与表单视图相比,搜索视图用于过滤其他视图的内容,而不是显示内容本身。这使得搜索视图与其他视图不同。表单视图仅包含一条记录,因此不需要搜索。 本文将详细介绍…

PointNet——源码调试(模型训练+可视化测试显示)

因为项目涉及到3D点云项目,故学习下PointNet这个用来处理点云的神经网络 论文的话,大致都看了下,网络结构有了一定的了解,本博文主要为了下载调试PointNet网络源码,训练和测试调通而已,不涉及后续的改进优化…

PHP项目中的前端页面随意点击卡片后会重定向到首页或登录页

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

判断对象能否回收的两种方法,以及JVM引用

判断对象能否回收的两种方法:引用计数算法,可达性分析算法 引用计数算法:给对象添加一个引用计数器,当该对象被其它对象引用时计数加一,引用失效时计数减一,计数为0时,可以回收。 特点&#xf…

STMCUBEMX_IIC_LL库/HAL库_扫描总线设备

STMCUBEMX_IIC_LL库/HAL库_扫描总线设备 前言: 在很多开发过程中,I2C总线上会挂载多个从机设备,但是又不知道设备的地址是多少,我做一个简单的小工具扫描总线,把地址打印出来就很方便 LL库实例: void scan…

欧姆龙安全PLC及周边产品要点指南

电气安全、自动化设备作业安全,向来是非常非常之重要的!越来越多的客户在规划新产线、改造既有产线的过程中,明确要求设计方和施工方将安全考虑进整体方案中进行考虑和报价!作为一名自动化电气工程师,尤其是高级工程师…

Python爬虫教程第3篇-解决使用reqeusts遇到的ProxyError异常

起因 问题出现在windows电脑上,我用mac执行程序的时候并不会报错,但是如果在windows上的时候,大部分windows电脑会报错,而有些版本低的windows电脑又不会报错。 异常栈信息 HTTPSConnectionPool, Cannot connect to proxy, no …

智能无人数字直播间 打造24小时的无人直播间源码系统 带网站的安装代码包以及搭建教程

系统概述 智能无人数字直播间系统是一种基于人工智能技术的软件工具,它结合了高精度扫描建模、自动化控制、多模态生成等多项先进技术,能够实现对真实人物的高度仿真,并自主执行各类直播任务。该系统不仅支持24小时不间断直播,还…

物联网安全的优秀实践以及八种策略

大多数物联网安全漏洞都是可以预防的,甚至可能是全部。看看任何引人注目的物联网攻击,都会发现一个已知的安全漏洞。 大多数物联网安全漏洞都是可以预防的,甚至可能是全部。看看任何引人注目的物联网攻击,都会发现一个已知的安全漏…

【BUG】RestTemplate发送Post请求后,响应中编码为gzip而导致的报错

BUG描述 20240613-09:59:59.062|INFO|null|810184|xxx|xxx||8|http-nio-xxx-exec-1|com.xxx.jim.xxx.XXXController.?.?|MSG接收到来自xxx的文件请求 headers:[host:"xxx", accept:"text/html,application/json,application/xhtmlxml,application/xml;q0.9,*…

如何在OpenFOAM的案例文件夹中确定数据的点和面,确定点和网格之间的关系,从而用于深度学习预测和构建模型呢(分析数据格式及其含义)

在OpenFOAM中,点(points)和面(faces)的定义是通过不同的文件来进行的。在案例一级目录下面的constant/polyMesh目录下,会有points, faces, owner, neighbour等文件,来描述网格的几何和拓扑结构。…

Vue学习笔记-自定义组件使用v-model

拆解实现 父组件 <template><div></div><Son :name"name" inputChange"inputChange"></Son>{{ name }} </template><script setup> import {ref} from vue import Son from ./son2.vueconst nameref("张…

戴尔笔记本(WIndows11)长时间睡眠后就会蓝屏或者死机必须重启问题解决

以下只是记录客服解决的过程&#xff0c;本人非专业人员&#xff0c;不能提供帮助。 戴尔笔记本&#xff08;游匣G15 5510&#xff09;长时间睡眠后&#xff0c;会出现蓝屏&#xff1a; 控制面板 -> 电源 -> 选择关闭计算机盖的功能 关闭快速启动&#xff1a; 关闭快速…

学习XDMA—20240709

概览&#xff1a; 在内部&#xff0c;子系统可以配置为实现多达8个独立的物理DMA引擎(最多4个H2C和4个C2H)。这些DMA引擎可以映射到单独的AXI4Stream接口&#xff0c;也可以将共享的AXI4内存映射(MM)接口映射到用户应用程序。在axis4 MM接口上&#xff0c;PCI Express的DMA/桥接…

Goby漏洞利用优化 | GeoServer远程代码执行漏洞(CVE-2024-36401)(支持回显命令执行、内存马)

漏洞名称&#xff1a;GeoServer /geoserver/wfs 远程代码执行漏洞&#xff08;CVE-2024-36401&#xff09; English Name&#xff1a;GeoServer /geoserver/wfs Code Execution Vulnerability(CVE-2024-36401) 漏洞描述及详情&#xff1a;&#xff08;见上篇&#xff09; Ge…

Linux -- 认识gcc/g++、代码的编译过程

目录 前言&#xff1a; 使用 gcc/g&#xff1a; 代码的编译过程&#xff1a; 预处理&#xff1a; 头文件展开&#xff1a; 宏替换去注释&#xff1a; ​编辑 条件编译&#xff1a; 编译&#xff1a; 汇编&#xff1a; 链接&#xff1a; 动态库&#xff08;动态链…

爬取天气数据,利用Pyecharts作轮播图

爬取网站链接&#xff1a;https://lishi.tianqi.com/xiamen/202312.html 爬取了厦门市2023年一整年的天气数据&#xff0c;包括最高温&#xff0c;最低温&#xff0c;天气&#xff0c;风力风向等 爬虫代码&#xff1a; import requests import pandas as pd import csv from…

新手怎么使用《藏文翻译词典》查藏文单词和藏语近义词反义词?手把手教你写藏文作文!

西藏地区的学生常常需要使用藏语写作业写作文&#xff0c;同时还需要学习汉语中文&#xff0c;在这种情况下&#xff0c;一款好用的藏语翻译和藏文词典工具&#xff0c;就显得非常重要了&#xff0c;在这里教大家使用《藏文翻译词典》工具&#xff0c;利用它学习汉语和写好藏文…

excel表格移动一整行或者移动一整列

首先选中一整行&#xff0c;将鼠标移动到边边上&#xff0c;知道出现黑色十字型箭头鼠标头然后按住shift键&#xff0c;同时移动到想去的地方就可以了 注意&#xff1a;mac和Windows都是shift键&#xff0c;mac的option键只是将列复制一份到移动到的地方&#xff0c;然后移动到…

带有子节点的树状表的父节点拖动排序#Vue3#Sortable插件

带有子节点的树状表的父节点拖动排序#Vue3#Sortable插件 使用Sortable插件这里要保证获取到的是父节点的下标&#xff0c;属性newDraggableIndex获取到的就是只有父节点的下标。设置子节点不能被拖动&#xff0c;最后在逐个调用接口进行数据库中顺序的更新。 <template>…