当前位置: 首页 > news >正文

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

 大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是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. 响应信号的设计意图:响应信号的设计旨在提供足够的信息,以便系统能够优雅地处理错误情况,同时确保事务的顺序性和数据的完整性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网络层重点协议—IP协议
  • Angular页面项目以HTTPS方式启动调试
  • 【教程】Hexo 部署到 Github Page 后,自定义域名失效的问题
  • RDD 专项练习
  • 提升机器视觉与机器学习软件安全性的实践策略
  • OpenCV距离变换函数distanceTransform的使用
  • 01MFC建立单个文件类型——画线
  • 9. Python的魔法函数
  • DP讨论——适配器模式
  • 使用sklearn的基本流程
  • Qt5 Ubuntu18 QStackedWidget
  • 路由守卫中使用next()跳转到指定路径时会无限循环
  • 【C/C++】【学生成绩管理系统】深度剖析
  • Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
  • anaconda常用指令学习
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 2017 年终总结 —— 在路上
  • Brief introduction of how to 'Call, Apply and Bind'
  • canvas 高仿 Apple Watch 表盘
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • IDEA常用插件整理
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • java概述
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Lsb图片隐写
  • Mysql数据库的条件查询语句
  • mysql中InnoDB引擎中页的概念
  • PHP变量
  • Python利用正则抓取网页内容保存到本地
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 动态规划入门(以爬楼梯为例)
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 对象管理器(defineProperty)学习笔记
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端攻城师
  • 实习面试笔记
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • Java总结 - String - 这篇请使劲喷我
  • Mac 上flink的安装与启动
  • ​你们这样子,耽误我的工作进度怎么办?
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (arch)linux 转换文件编码格式
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)计算机毕业设计高校学生选课系统
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转)VC++中ondraw在什么时候调用的
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ./configure,make,make install的作用