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

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

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

相关文章

STM32F103RB多通道ADC转换功能实现(DMA)

目录 概述 1 硬件 1.1 硬件实物介绍 1.2 nucleo-f103rb 1.3 软件版本 2 软件实现 2.1 STM32Cube配置参数 2.2 项目代码 3 功能代码实现 3.1 ADC功能函数 3.2 函数调用 4 测试 4.1 DMA配置data width:byte 4.2 DMA配置data width:Half wor…

java如何实现一个死锁 ?

死锁(Deadlock)是指在并发系统中,两个或多个线程(或进程)因争夺资源而互相等待,导致它们都无法继续执行的一种状态。 一、简易代码 public class DeadlockExample {private static final Object lock1 = new Object();private

如何在 ASP.NET MVC 项目中使用身份验证器应用程序实现多因素身份验证?

介绍 增强安全性对于任何应用程序都至关重要,而多因素身份验证 (MFA) 是实现此目标的有效方法。在本文中,我们将介绍在 ASP.NET MVC 项目中使用身份验证器应用程序集成 MFA 的过程。无论您是从头开始还是将 MFA 添加到现有项目,本指南都将提…

生物素标记降钙素Biotin-α-CGRP, rat 中间体

生物素标记降钙素Biotin-α-CGRP, rat 中间体是一种特定的生物化学试剂,主要用于科学研究领域。以下是对该产品的详细介绍: 一、基本信息 产品名称:生物素标记降钙素Biotin-α-CGRP, rat 中间体 英文名称:Biotin-α-CGRP, rat 纯度…

Qt 线程同步机制 互斥锁 信号量 条件变量 读写锁

qt线程同步 Qt提供了丰富的线程同步机制来帮助开发者更高效和安全地进行多线程编程。其主要包括: QMutex:为共享数据提供互斥访问能力,避免同时写入导致的数据冲突。利用lock()/unlock()方法实现锁定和解锁。 QReadWriteLock:读写锁,允许多个读线程同时访问,但写操作需要独占…

springboot社区物资交易互助平台+lw+源码+调试+讲解

第3章 系统分析 用户的需求以及与本系统相似的在市场上存在的其它系统可以作为系统分析中参考的资料,分析人员可以根据这些信息确定出本系统具备的功能,分析出本系统具备的性能等内容。 3.1可行性分析 尽管系统是根据用户的要求进行制作,但…

windows USB 设备驱动开发-USB带宽

本文讨论如何仔细管理 USB 带宽的指导。 每个 USB 客户端驱动程序都有责任最大程度地减少其使用的 USB 带宽,并尽快将未使用的带宽返回到可用带宽池。 在这里,我们认为USB 2.0 的速度是480Mbps、12Mbps、1.5Mbps,这分别对应高速、全速、低速…

Python面试宝典第9题:买卖股票

题目 给定一个整型数组,它的第i个元素是一支给定股票第i天的价格。如果最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。 示例 1&#…

LabVIEW平台从离散光子到连续光子的光子计数技术

光子计数技术用于将输入光子数转换为离散脉冲。常见的光子计数器假设光子是离散到达的,记录到来的每一个光子。但是,当两个或多个光子同时到达时,计数器会将其记录为单个脉冲,从而只计数一次。当连续光子到达时,离散光…

python学习-容器类型

列表 列表(list)是一种有序容器,可以向其中添加或删除任意元素. 列表数据类型是一种容器类型,列表中可以存放不同数据类型的值,代码示例如下: 列表中可以实现元素的增、删、改、查。 示例代码如下: 增 …

基于Unity3D的Rokid AR Glass项目开发环境搭建

初识Rokid AR 一、SDK简介二、准备工作1.软件环境2.硬件环境 三、快速接入SDK1.配置Package Manager2.安装UXR2.0 SDK 四、导入官方Demo进行模拟器测试五、Rokid AR系列教程 一、SDK简介 UXR2.0 SDK是Rokid为Unity开发者提供的AR开发工具包,提供空间定位跟踪、双目…

Windows 网络重置及重置网络可能出现的问题( WIFI 没有了 / WLAN 图标消失)

netsh int ip reset 命令是用于重置 Windows 操作系统中的网络设置和配置的命令。 在网络故障排除、修复网络连接问题以及清除可能存在的网络配置冲突时非常有用。 命令详解: netsh: 用于配置各种网络设置 int: 用于管理网络接口 ip: 用于管理网络接口的 IP 配…

学习嵌入式对于学历有要求吗?

学习嵌入式系统开发通常并不对学历有严格的要求,尤其是在技术行业中,实际的技能和经验往往比学历更为重要。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕…

Swift 中 map 和 flatMap 的区别 (入门版)

在 Swift 中,map 和 flatMap 是用于处理集合类型(如数组、字典、集合等)的两个重要方法。尽管它们看起来相似,但它们在处理集合中的元素和结果时有着不同的行为。 map 方法 map 方法会对集合中的每一个元素应用一个变换&#xff…

Ubuntu 24.04 LTS (Linux) 安装二维码生成工具 QRencode 二维码生成和识别

1 Ubuntu 安装 sudo apt update sudo apt-get install qrencode 2 查看版本 qrencode -V 3 生成二维码 qrencode -o test.png http://www.baidu.com 可以下载test.png图片,用手机浏览器扫描下看(⊙﹏⊙)

FPGA 项目菜单功能比较

为了帮助您更好地理解每个FPGA功能模块的实用场合、区别和特点,以下是详细的比较: 功能模块实用场合区别特点FPGA I/O自动控制系统、数据采集系统直接与FPGA板卡上的物理端口交互,配置和使用外部I/O设备灵活配置输入输出端口,支持…

Day62 单调栈part01

LC739每日温度(未掌握) 暴力解法:两层for循环,时间复杂度O(n^2),会超时未掌握原因分析:只想到了从栈顶到栈底是递减的情况,忽略了从栈顶到栈底是递增的情况 因为需要找到一个元素右边第一个更大元素,只有…

寂静孤独的404页面源码

寂静孤独的404页面源码,灯光闪烁动态效果,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 寂静孤独的404页面源…

【深度学习】PyTorch深度学习笔记01-Overview

参考学习:B站视频【《PyTorch深度学习实践》完结合集】-刘二大人 ------------------------------------------------------------------------------------------------------- 1. 基于规则的深度学习 2. 经典的机器学习——手动提取一些简单的特征 3. 表示学习…

深入理解 LXC (Linux Containers)

目录 引言LXC 的定义LXC 的架构LXC 的工作原理LXC 的应用场景LXC 在 CentOS 上的常见命令实验场景模拟总结 1. 引言 在现代 IT 基础设施中,容器技术已经成为一种重要的应用和部署方式。与虚拟机相比,容器具有更高的效率、更轻量的特性和更快的启动速度…