AXI协议(数据传输结构)

article/2025/10/18 4:55:15

AXI协议关于Data read and write structure的部分指出,在数据传输过程中,主要涉及三个问题:

  • 窄位宽数据传输(Narrow transfers)
  • 地址非对齐传输(Unaligned Transfer)
  • 混合大小端传输(Byte invariance)

Narrow transfers

当master产生的一笔数据(transfer)位宽小于总线数据位宽时,该次传输成为窄(位宽)数据传输。

协议中规定:

  • 在 INCR 和 WRAP 模式中每次使用的 byte line 必须不同,即数据位置与地址对应。
  • 在 FIXED 模式中,整个传输过程使用相同的 byte line(地址反正 FIXED 不会变)

在这种传输过程中,Master需要告知slave数据通道中哪些字节是有效的,这就需要使用到W通道中的WSTRB信号。

WSTRB[n] 对应 WDATA[8n+7:8n],也就是:当 WSTRB[n] 为 1 时,WDATA[8n+7:8n]有效。

以下图为例,5笔transfer的WSTRB分别为0001/0010/0100/1000/0001

在这里插入图片描述

从上图我们发现,在每次数据传输中使用的数据总线字节位置(byte line)不同,尽管数据以字节为单位,分为多个周期传输,但是数据的位置仍与其地址对应。D[7:0]将写入起始地址 0x0,故位于最低字节。D[15:8] 将写入地址 0x1,故位于次低字节。

在这里插入图片描述

总之,这种窄位宽传输的设计可能的好处在于,当Master是因为Slave或者其他客观条件限制,需要进行窄传输时,可以一次性将数据放置于数据总线上,只需在每次传输期间由Master改变WSTRB信号即可。窄传输中通过Master来调整有效数据的字节位置,以及给出字节有效信号 WSTRB,能够使Slave无需进行数据重组等工作。

Unaligned transfers

AXI 协议支持地址非对齐的传输,允许突发传输的首字节地址,即起始地址与突发传输位宽不对齐。举个例子,数据总线位宽为 64bit 时,如果起始地址为 0x1002 ,则产生了非对齐现象。与 64bit 位宽总线对齐的地址需要能被 8(byte) 整除,即 ADDR[2:0] = 3’b0。

此处对齐与否应该取决于突发传输的宽度,而不是数据总线位宽!这两个是不一样的!数据总线是64bit不代表WDATA有效的数据是64bit

对于非对齐传输,Master会进行两项操作:

  • 即使起始地址非对齐,也保证所有传输是对齐的
  • 在首个transfer中增加填充数据,将首次传输填充至对齐,填充数据使用 WSTRB 信号标记为无效

在这里插入图片描述

这是一个窄传输+非对齐传输的例子,以1st transfer为例:

  • 首先将transfer填充至突发传输位宽32bit(和数据总线位宽区分开),还需要补充0x07 mod 4(byte) = 3byte。解决了非对齐的问题。
  • 接下来就是窄位宽传输的问题了,遵从上文的分析。
  • Master通过添加7byte数据将的实际地址调整为对齐,并用WSTRB为1000标识出无效字节

Mixed-Endian data structure

首先我们要搞清楚内存中数据存放的大小端模式。可以参考内存中的数据存放模式(大端/小端)

为了能够使大小端模式在存储中共存,AXI 协议设计了一种字节定序(Byte-invariant)的大小端传输方案。对于存储中包括多个字节的数据结构(单字节自然不存在大小端问题)协议做了如下规定:

  • 无论数据按什么顺序存放,每个数据结构存储空间的分配方式是相同的
  • 该数据结构按照其大小端模式决定字节存储的地址顺序
  • 在传输过程中不考虑数据结构的大小端,按照字节原先存储的顺序,原样传输并存放至对端

在这里插入图片描述

这种模式的意义在传输双方均不对数据结构的大小端进行解析转换,而严格按照字节的存储顺序进行传输并转存,防止大小端共存产生数据覆盖。

参考文献:
amba3_axi_protocol_spec.A3.4.3
https://zhuanlan.zhihu.com/p/46538028


http://chatgpt.dhexx.cn/article/vEXtC7iI.shtml

相关文章

AXI总线代码详细整理(一)

目录 说明1. AXI 的时钟与复位1.1 时钟1.2 复位 2. 五个通道2.1 Write Address Channel2.2 Write Data Channel2.3 Write Response (B) Channel2.4 Read Address Channel2.5 Read Data (and Response) Channel 3 突发传输机制3.1 突发传输长度和宽度3.2 突发传输类型 说明 文字…

AXI总线详解完结篇

经过几个月的整理和发文,AXI总线详解系列正式迎来最终篇,内容基本涵盖了上一篇文章的全部内容。 所有文章的链接如下: 1、 AXI总线详解 2、AXI总线详解-总线和接口以及协议 3、AXI协议中的通道结构 4、AXI总线详解-AXI4读

AXI接口简介

此部分,有参考他人帖子的内容,加上自己的理解,感恩原作者 1、 AXI(Advanced eXtensible Interface)协议主要描述了主设备(Master)和从设备(Slave)之间的数据传输方式&…

AXI接口协议详解-AXI总线、接口、协议

转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线、接口、协议 AXI 总线 上面介绍了AMBA总线中的两种,下面看下我们的主角—AXI,在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用…

【AXI】解读AXI协议的低功耗设计

芯片设计验证社区芯片爱好者聚集地硬件相关讨论社区数字verifier星球四社区联合力荐!近500篇数字IC精品文章收录!【数字IC精品文章收录】学习路线基础知识总线脚本语言芯片求职EDA工具低功耗设计VerilogSTA设计验证FPGA架构AMBA书籍 解读AXI协议的低功耗…

AXI总线协议

0.绪论 AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。 AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。 AXI4.0-lite是AXI的简化…

AXI总线学习------从零开始详细学-----------连载(2)axi protocol 通道分类

AXI总线学习连载(2) 鲁迅曾经说过: 学硬件,不是学哪里查哪里,有一些东西是必须系统的学的,不管是嵌入式还是FPGA,硬件学习的积累一定要是系统的。 我也曾经说过: 英文手册非常重要&#xff0c…

【AXI】解读AXI协议中的burst突发传输机制

芯片设计验证社区芯片爱好者聚集地硬件相关讨论社区数字verifier星球四社区联合力荐!近500篇数字IC精品文章收录!【数字IC精品文章收录】学习路线基础知识总线脚本语言芯片求职EDA工具低功耗设计VerilogSTA设计验证FPGA架构AMBA书籍 解读AXI协议中的burs…

【AXI】解读AXI协议事务属性(Transaction Attributes)

芯片设计验证社区芯片爱好者聚集地硬件相关讨论社区数字verifier星球四社区联合力荐!近500篇数字IC精品文章收录!【数字IC精品文章收录】学习路线基础知识总线脚本语言芯片求职EDA工具低功耗设计VerilogSTA设计验证FPGA架构AMBA书籍 解读AXI协议事务属性…

AXI总线知多少?

关注、星标公众号,精彩内容每日送达 来源:数字ICer 前言 本文针对秋招面试高频问题: AXI总线进行总结; 1.简介 AXI是个什么东西呢,它其实不属于Zynq,不属于Xilinx,而是属于ARM。它是ARM最新的总线接口&…

AXI学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一、AXI中关于非对齐问题理解 AXI 协议支持地址非对齐的传输,允许突发传输的首字节地址,即起始地址与突发传输位宽不对齐。举个例子,总线位…

AXI 中文

AXI总线协议资料整理 第一部分: 1、AXI简介:AXI(AdvancedeXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(AdvancedMicrocontroller Bus Architecture)3.0协议中最重要的部分&a…

AXI协议

文章目录 前言一、通道信号二、AXI 握手机制三、读写Timing3.1 写数据3.2 读数据 四、通道间的依赖关系4.1 写地址通道( AW )4.2 写数据通道( W )4.2 写响应通道( B )4.3 读数据( R ) 五、信号详细解释5.1 ACLK和ARESETn5.2 Burst…

AXI 总线详解

综述 本文我们详解AXI,在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议。其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地…

AXI总线概述

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。 AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.…

AXI协议学习笔记~~

AXI总线简介 ​  AXI属于AMBA(The ARM Advanced Microcontroller Bus Architecture)家族的一员,AXI协议在AMBA3.0版本中开始出现,并在后续的AMBA4.0,AMBA5.0中持续更新,对应为 AXI3,AXI4,AXI5。 ​   …

AXI 系列 之 AXI概述

目录 AXI简介 AMBA总线的演进图 AXI overriew AXI读写通道 AXI读取传输 事务 AXI 写入传输事务 AXI 概念解读 burst传输 FIXED模式下传输首地址后就可以不停传输数据吗? 突发传输不能跨4KB边界? 非对齐传输 复位期间对接口有如下要求&#xf…

AXI接口协议学习总结

AXI接口协议学习总结 下面将AXI接口协议学到的相关内容整理如下 一、AXI接口协议定义 AXI是Advanced eXtensible Interface的缩写,译为高级可扩展接口协议,是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)高级…

【AXI】解读AXI协议双向握手机制的原理

解读AXI协议双向握手机制的原理 一、写在前面二、AXI 双向握手机制简介2.1 信号列表2.2 双向握手目的2.3 握手过程2.3.1 CASE1(READY信号先于VALID信号改变)2.3.2 CASE2(READY信号与VALID信号同时改变)2.3.3 CASE3(REA…

带你快速入门AXI4总线--AXI4-Full篇(1)----AXI4-Full总线

写在前面 AXI4系列链接:带你快速入门AXI4总线--汇总篇(直达链接) 1、什么是AXI4-Full? AXI 表示 Advanced eXtensible Interface(高级可扩展接口),它是由 Arm 定义的接口协议,包含在…