AXI4整理.docx
《AXI4整理.docx》由会员分享,可在线阅读,更多相关《AXI4整理.docx(24页珍藏版)》请在冰豆网上搜索。
![AXI4整理.docx](https://file1.bdocx.com/fileroot1/2022-11/27/17e0bb2c-a870-4385-8c89-7693bd0f246d/17e0bb2c-a870-4385-8c89-7693bd0f246d1.gif)
AXI4整理
AMBAAXIProtocolVersion:
2.0
序言
面向的读者:
这是AMBA(高速微控制器总线结构)AXI(高速可扩展接口)协议的说明书。
主要面向想熟悉AMBA、或是想去设计与AMBAAXI协议相兼容的系统和模块的读者。
说明书的内容安排:
第一章绪论
阅读本章,你会了解到AXI协议的结构、该协议中定义的基本的交易过程。
第二章信号描述
本章主要介绍AXI一些信号的定义,如:
写地址通道、读数据通道、写反应通道、读地址通道、读数据通道、以及低功耗接口等所用到信号。
第三章通道握手
介绍通道握手的整个过程
第四章地址选择
主要讲AXI猝发类型、如何去计算地址、在一次猝发中使用字节通道传输的过程。
第五章附加的控制信息
本章主要讲怎样让AXI协议支持系统级缓存和保护单元。
第六章自动访问
本章主要讲互斥访问和锁定访问
第七章反应信号
主要讲AXI从模块的四种交易反应。
第八章模式调整
主要讲AXI协议如何使用ID标签去进行无序传输。
第九章数据总线
主要讲在AXI读和写数据线上,如何处理交易大小可变的数据,以及如何用字节固定端的方式去处理混合端类型数据。
第十章非对齐传输
主要讲如何使用AXI协议处理非对齐传输。
第十一章时钟和复字节
主要讲述AXI时钟和复字节信号的时序。
第十二章低功耗接口
主要讲如何使用AXI时钟控制接口,进入或者跳出一种低功耗的模式。
第十三章AXI4
主要描述AXI协议中AXI3版本和AXI4版本技术上的不同。
第十四章AXI4-Lite
主要讲述AXI4-Lite接口,它是一种简单控制寄存器类型的接口,在不需要AXI4全部功能的时候使用。
说明书中的约定如下:
●印刷字体的类型
●第四页的时序图
●第四页中的信号
印刷字体的类型:
斜体此类型的字体用于突出显示重要的注释,介绍专用术语,指出文中所用到的参照和引用。
加粗字体此类型的字体用于突出显示接口包含的成分,如:
菜单名。
指示出信号的名字。
在描述列表的适当之处,也可用来表示术语。
等宽字体此类型字体指出通过键盘输入的文本,如:
命令,文件,程序名,源代码。
等宽的带下滑线字体此类型的字体指出一个命令或选项可以使用它的缩写。
不需要输入命令或选项的全称,输入相应下划线的部分即可。
等宽斜体此类型的字体指出等宽字体文本中的参数,文本中那些地方可以用一种特殊值替换参数。
等宽粗体当引用外部示例代码时,指出所用的语言关键字
在汇编所在的代码或代码段处,使用括号里的术语替换汇编的语法。
例如:
MRCp15,0,,
时序图
如图是时序图关键性约定,解释了时序图中用到的成分。
当这些成分发生变化的时候,都会有清晰度标注。
不需要假定表中任何不明确的时序信息。
时序关键性约定图
阴影部分的总线和信号区域没有给出定义,因此这个时候,在阴影区域内,可以假定总线或者信号是任意一个值。
而实际的电平值是多少并不重要,也不影响正常的操作。
时序图中有时,会同时出现单比特字节表示的信号,如HIGH和LOW,并且它们与时序关键性约定图中显示的总线变化很相似。
如果一个时序图中用上述方式显示一个单比特字节信号,那么,信号的值不会影响到它所在图中的描述。
信号
信号约束如下:
信号电平:
有效信号的电平取决于这个信号是高电平有效还是低电平有效。
有效的意思是:
●高有效高电平有效的信号
●低有效低电平有效的信号
低电平情况下的命名在信号名字的开始或结尾指出是一个低电平有效的信号。
第一章绪论
阅读本章,你会了解到AXI协议的结构、该协议中定义的基本的交易过程。
包含的章节如下:
●AXI协议的介绍
●AXI协议中的结构
●AXI协议中的基本交易
1.1AXI协议的介绍
AMBAAXI协议是以高性能,高频系统设计为目标,提供了很多适合高速亚微型系统互连的特征。
最新的AMBA接口的目标是:
适合高带宽、低延迟的设计
不使用复杂桥的情况下能够进行高频的操作
适应多部件的接口要求
适合初始访问高延迟的访问控制器
为互联结构实现提供灵活性
向后兼容现存的AHB和APB接口
AXI协议的关键特征有:
分离的地址/控制和数据通道
采用字节选通的方式,支持非对齐数据的传输
基于猝发交易的数据传输,主机只需提供首地址
分离的读写数据通道,能支持低功耗的DMA
可以发出多个未使用地址
支持乱序交易
易于通过添加寄存器段结束时序
除了数据传输协议,AXI协议还提供可选扩展功能,该功能包含支持低功耗操作的信号。
1.1.1AXI协议的版本
AXI协议在许多年前就作为一种工业标准,并且AMBAAXI协议版本1.0的说明书中介绍了AXI协议接口。
2.0版本的说明文档,包括1.0版本AXI协议中的所有信息,当前的文档涉及到AXI3,添加新的两章内容分别对AXI4和AXI4-Lite做了详细介绍。
AXI4
AXI4协议是对AXI3协议内容的更新,更新的内容如下:
支持的猝发长度达256节拍
质量服务(QoS)信号
支持多个区域的接口
更新写响应需求
更新AWCACHE和ARCACHE信令细节
顺序传输需求上的其他信息
可选的用户信令
去除锁定传输
清除交错写入
AXI4也包括上述所用到的默认信令信息,并讨论了各组成部分的互操作性。
AXI4-Lite
AXI4精简版是AXI4协议的一个子集,目的是为了与控制寄存器风格的接口组件进行通信并允许建立简单的组件接口。
AXI4-Lite的接口的主要特点是:
•所有传输都是猝发长度为1
•所有数据访问宽度和数据总线的宽度大小相同
•支持数据总线宽度为32字节或64字节
•AWCACHE或ARCACHE访问操作都是相同的,等于B0000
•不支持独占访问。
1.2AXI协议中的通道结构
AXI4协议基于猝发式传输机制。
在地址通道上,每个交易有地址和控制信息,这些信息描述了需要传输的数据性质。
主从设备间的数据传输有两种情况,一种是主设备经过写通道向从设备写数据(简称写交易),另一种是主设备经过读通道从从设备那里读取数据(简称读交易)。
在写交易过程中,AXI有一个额外的写响应通道,从设备通过该通道向主设备发出信号表示完成写交易。
AXI协议可以实现:
地址信息发出先于实际传输的数据
支持多个未完成的交易
支持乱序交易
图1-1展示了使用读地址和读数据通道如何实现读交易。
图1-1读通道结构
图1-2描述了使用写地址、写数据和写响应通道如何实现一次写交易。
图1-2写通道结构
1.2.1通道定义
五个独立的通道都包含一组标记信息的信号,并且使用双向的VALID和READY信号实现握手机制。
当通道上的有效数据或控制信息可用时,发送信息的源设备将使能VALID信号。
当目的设备接收到数据时,使能READY信号.当一次交易中最后数据传输完成时,读数据通道和写数据通道都会发出一个LAST信号。
读地址和写地址通道
读交易和写交易都有各自的地址通道,相应的地址通道承载了一次交易中所有需要的地址和控制信息。
AXI协议支持以下机制:
可变长度猝发,每次猝发完成1-16次数据传输
支持8-1024字节的传输块猝发
地址卷回、地址递增和地址固定的猝发
通过独占交易和锁定交易实现原子操作
系统级的缓存和缓冲控制
安全访问和特权访问
读数据通道
读数据通道用于传输从设备返回给主设备的数据和读响应信息。
读数据通
道包含:
8,16,32,64,128,256,512或1024位宽的数据总线
读响应标志了读交易完成的状态
写数据通道
写数据通道主要传输从主设备向从设备写数据信息,其包含:
数据总线,宽度可以为8,16,32,64,128,256,512或1024字节
每8个比特一个字节选通字节,标志总线上的哪个字节可用
写数据通道的信息总是放入缓存中,当前一个写交易从设备没有做出响应的情况下,以便于主设备进行写交易。
写响应通道
写响应通道是从设备对写交易作出响应的通道。
所有写交易使用完成信
号。
不是猝发中每个独立数据传输都返回一个完成信号,而是每个猝发完成后一起返回一个完成信号。
1.2.2接口与互联
一个典型的系统主要是由一个主设备和从设备连接组成的,它们通过某种形式的互连组合在一起,如图1-3所示。
图1-3接口和互联
AXI协议提供了一个单独的接口定义来描述接口:
•主设备和互连之间
•从设备和互联之间
•主设备和从设备之间。
上述接口定义使各种不同的互连易于表达。
设备之间的互联,与其他具有对称的主端口和从端口设备一样,可以连接真正的主设备和从设备。
大多数系统采用如下三种互连的方式之一:
•共享地址和数据总线
•共享地址总线和多个数据总线
•拥有多个地址和数据总线的多层互联。
在大多数系统中,地址的通道的带宽需求明显小于数据通道带宽的需求。
这种系统能在系统运行和复杂度之间实现良好平衡,而复杂度主要由于使用共享地址总线和多个数据总线互联方式去使能数据并行传输而导致的。
1.2.3寄存器片
每个AXI的通道仅在一个方向上进行信息的传输,各通道之间不需要固定联系。
这是很重要的,因为它以添加循环延时为代价,在任何通道内运行使能一个寄存器片,这使得在循环延迟和最大工作频率之间的权衡考虑成为可能。
另外,当给定一个互联后,在其内部几乎任何一点处均可以使用寄存器片。
它对处理器和高速内存之间实现直接,快速链接非常有利。
但使用简单的寄存器片去分离一个较长的路径给低性能外设。
1.3AXI协议中的基本交易
本部分给出基于AXI协议的基本交易的示例。
每个示例都使用了VALID和READY握手机制。
地址信息及数据的传输都是在VALID和READY信号同时为高的时候传输。
示例下面几部分介绍:
1.3.1读猝发示例
1.3.2连续的读猝发示例
1.3.3写猝发示例
本部分也介绍了交易顺序。
1.3.1读猝发示例
图1-4为一个4拍的读猝发交易的时序图。
在这个例子中,主设备发送地址,一个周期后从设备接收。
主设备在发送地址的同时也发送了一些控制信息,用于记录猝发的类型和长度,为了保持图的清晰性,在此省略这些信号。
地址总线上出现地址之后,在读数据通道上发生数据的传输。
从设备一直保持
VALID信号为低,直到读数据准备好。
从设备发送RLAST信号标志着此次猝发交易中这是最后一个数据的传输。
图1-4读猝发交易
1.3.2交叠读猝发示例
图1-5为主设备在从设备接收第一个猝发交易的地址后发送另一个猝发交易的地址的时序图。
这样可以保证一个从设备在完成第一个猝发交易的同时可以开始处理第二个猝发交易的数据。
图1-5交叠读猝发交易
1.3.3写猝发示例
图1-6为一次写交易的时序图。
当主设备发送地址和控制信息到写地址通道之后,交易过程开始。
然后主设备通过写数据通道发送每一个写数据,当为最后一个需要发送的数据时,主设备将WLAST信号置高。
当从设备接收完所有的数据时,从设备返回给主设备一个写响应信号标志本次写交易的结束。
图1-6写猝发交易
1.3.4交易顺序
AXI协议支持乱序交易。
通过接口的每次交易,协议都会分配一个ID标签。
协议要求相同ID的交易按顺序完成,而对不同ID的交易没有顺序限制,可以乱序完成。
乱序交易可以在两个方面提高系统的性能:
互连设备在与具有快速响应能力的从设备和速度相对慢的从设备进行交易时,前者的交易优先后者完成。
复杂的从设备返回读到的数据,此时的数据可能是乱序的。
例如,较晚获得的数据由于它被存放在内部缓冲器中,数据访问要优先于早期获得的数据。
如果一个主设备要求以交易开始时顺序一样的方式完成交易,则那些交易要使用相同的ID标签。
但是若主设备不要求按顺序完成交易,则可以为不同的交易分配不同的ID,可以按任何顺序完成交易。
在一个多主设备的系统中,互连设备负责给ID添加额外信息,以保证所有从主设备那里传来的ID标签是唯一的。
ID就像一个主设备号码,但通过扩展可以使得每个主设备可以实现多个虚拟主设备,在相同端口通过提供ID,指示虚拟主设备号码。
虽然复杂的装置可以利用乱序,但是简单的装置不要求使用。
简单的主设备可以为每个交易分配相同的ID,简单的从设备可以按序响应交易,不用管ID。
第二章信号描述
本章定义了AXI协议中使用的信号。
虽然总线宽度和交易ID的宽度都是需要具体说明的,但在本章的表中先显示32位的数据总线,一个4位的写入数据选通,和4位的ID域。
本章包含以下几个部分:
•全局信号
•写地址通道信号
•写数据通道信号
•写响应通道信号
•读地址通道信号
•读数据通道信号
•低功耗接口信号
2.1全局信号
表2-1中给出了AXI全局信号
表2-1AXI全局信号
2.2写地址通道信号
表2-2列出了写地址通道信号
表2-2写地址通道信号
2.3写数据通道信号
表2-3列出了写数据通道中用到的信号
表2-3写数据通道信号
2.4写响应通道信号
表2-4列出了写响应通道中用到的信号
表2-4写响应通道信号
2.5读地址通道信号
表2-5列出了读地址通道中用到的信号
表2-5读地址通道信号
2.6读数据通道信号
表2-6列出了读数据通道中用到的信号
表2-5读数据通道信号
2.7低功耗接口信号
表2-7列出了可以选择的低功耗接口信号。
表2-7低功耗接口信号
第三章通道握手
本章介绍了主/从设备之间的握手过程、概括出通道之间的关系以及握手信号READY和VALID的默认值。
本章包含以下几个部分:
•握手过程
•通道之间的关系
•通道握手信号之间的依赖关系
3.1握手过程
所有五个通道使用相同的VALID/READY握手来传输数据和控制信息。
这种双向的流控制机制使得主设备和从设备都可以控制数据和控制信息的传输速率。
源设备产生VALID信号标志当前的数据和控制信息有效。
目的设备产生READY信号标志着可以接收主设备发来的数据和控制信息。
只有当VALID和READY同时为高时,才能进行传输。
不管主设备接口还是从设备接口,在输入和输出信号之间不允许有组合路径。
图3-1到图3-3举出握手时序的一些例子。
图3-1中,源设备发出数据或控制信息同时将VALID信号拉高,从主设备发来的数据或控制信息保持稳定,直到目的设备将READY信号拉高,表示从设备可以接收数据或控制信息。
箭头指示了传输开始的时刻。
图3-1VALID信号早于READY信号
只有在VALID信号使能之前,使能READY信号,才允许去等待,一旦使能VALID信号,只要握手不发生,该信号一直保持使能的状态。
图3-2中,目的设备将READY信号拉高之后数据或控制信号才会有效。
这表明,一旦信号有效,目的设备就可以一个单周期内接收数据或控制信息。
箭头指示了传输开始的时刻。
图3-2READY信号早于VALID信号
在响应的READY信号被使能之前,允许等待VALID信号的使能。
如果已经使能了READY信号,允许在VALID信号使能之前,清除READY信号。
图3-3中,源设备和目的设备恰好在同一个周期进行数据或控制信息的传输。
这种情况下,传输会立即进行。
箭头指示了传输开始的时刻。
图3-3VALID信号与READY信号同时
如下通道中描述了独立的AXI协议握手机制:
•写地址通道
•写数据通道
•写响应通道
•读地址通道
•读数据通道。
3.1.1写地址通道
只有当主设备发出有效地址和控制信息的情况下,主设备才能使能AWVALID信号。
该信号一直保持使能的状态直到从设备使能相关的AWREADY信号去接收地址和控制信息。
AWREADY的默认值可以为高,也可以为低。
虽然AWREADY信号使能为高,从设备能够接受任何合法地址发来的数据,但是建议使能为高。
AWREADY的默认值设为低也可以,但是不建议使用,因为,这样至少要花费两个周期去传输数据,一个周期用于使能AWVALID信号,另一周期用于使能AWREADY信号。
3.1.2写数据通道
在一个写猝发交易中,只有当主设备发出有效的写数据时,它才会将使能WVALID信号。
WVALID信号必须一直保持使能的状态直到从设备使能WREADY信号去接收发来的写数据。
从设备总在一个周期内接收发来的写数据,这种情况下,WREADY信号的的默认值可以设置为高。
当主设备在一次猝发中,写数据传输即将完成时,主设备必须使能WLAST信号。
虽然建议将WVALID信号置为低或保持原值,但当WVALID信号为低时,WSTRB[3:
0]信号可以为任何值。
3.1.3写响应通道
只有当从设备发出有效的写响应信号时,从设备才会使能BVALID信号BVALID信号必须一直保持使能的状态直到主设备使能BREADY信号去接收来自从设备的写响应信号。
只要主设备总在一个周期内接收写响应信号,BREADY信号的默认值可以设置为高。
3.1.4读地址通道
只有当主设备发出有效地址和控制信息的情况下,主设备才能使能ARVALID信号。
该信号一直保持使能的状态直到从设备使能相关的ARREADY信号去接收地址和控制信息。
ARREADY的默认值可以为高,也可以为低。
虽然ARREADY信号使能为高,从设备能够接受有效地址发来的数据,但是建议使能为高。
ARREADY的默认值设为低也可以,但是不建议使用,因为,这样至少要花费两个周期去传输数据,一个周期用于使能ARVALID信号,另一周期用于使能ARREADY信号。
3.1.5读数据通道
只有当从设备发出有效的读数据时,从设备才会使能RVALID信号。
RVALID信号必须一直保持使能的状态直到主设备使能RREADY信号去接收发来的数据。
尽管一个从设备只是一个读数据的资源,但在响应数据请求情况下,从设备必须使能RVALID信号。
主设备接口通过设置RREADY信号去接收数据。
主设备无论何时进行读交易,它都能立即接收数据。
只有在这情况下,RREADY的默认值可以设置为高。
当从设备在一次猝发中,读数据传输即将完成时,从设备必须使能RLAST信号。
3.2通道之间的关系
地址通道、读数据通道、写数据通道和写响应通道的关系是灵活的。
例如,总线接口上写数据可能比相关写地址早出现。
当写地址通道包含寄存器操作多于写地址通道上的操作时,会出现这种情况。
也可能是因为写的数据与相关的写的地址出现在同一个周期。
当互联设备必须确定目的地址空间或从设备空间时,互连设备必须重新对齐地址和写数据。
确保写数据只对目的从设备有效,是必要的。
两种关系必须满足:
与读数据相关的读数据地址出现后,必须进行读数据
与写响应相关的写交易中,在写数据传输即将完成时,必须做出写响应
3.3通道握手信号之间的依赖关系
为了防止发生死锁,必须重视握手信号之间的依赖关系。
任何交易中:
一个AXI模块的VALID信号不能依赖于另一个模块的READY信号
READY信号可以等待VALID信号使能
-------------------注意---------------------------------------------
可以在使能VALID信号之后使能READY,也可以在使能VALID信号之前将
READY信号使能为默认值,这样设计更高效。
.
--------------------------------------------------------------------
图3-4和图3-5为各握手信号之间的依赖关系图。
单箭头指向的信号可以在指向它的信号未使能或使能后,它再使能;双箭头向的信号,必须在指向它的信号全都使能后,它再使能。
图3-4中所示,在一次读交易中:
从设备使能ARREADY信号之前,可以在等待ARVALID信号被使能。
从设备必须等待ARVALID和ARREADY信号都有效后,再去使能RVALID信号以返回读数据
图3-4读交易中握手信号的依赖关系
图3-5中所示,在一次写交易中:
主设备必须等待从设备使能AWVALID、WVALID信号之后,主设备再去使能AWREADY、WREADY信号。
从设备可以等待使能AWREADY、WVALID信号或者同时使能俩个信号后,再去使能AWREADY。
从设备可以等待使能AWREADY、WVALID信号或者同时使能俩个信号后,再去使能AWREADY。
从设备可以等待使能AWREADY、WVALID信号或者同时使能俩个信号后,再去使能AWREADY。
图3-5写交易握手信号依赖关系
注意:
在一次写交易中,主设备不必等AWREADY有效之后去发送WVALID,这一点是很重要的。
如果主设备在发送WVALID信号之前,必定不会等待使能AWREADY信号,反过来如果从设备在等待使能WVALID信号,再去使能AWREADY则这样就会造成死锁状况。
第四章地址选择
本章主要描述AXI猝发类型、在一次猝发过程中如何计算地址以及字节传输的通道。
包含章节如下:
●关于地址选择
●猝发长度
●猝发大小
●猝发类型
●猝发地址
4.1关于地址选择
AXI协议是基于猝发方式,主设备开始每次的猝发,是通过发送传输所需的控制信息和传输过程中所需的首字节地址的方式,随着猝发交易进行,从设备负责计算接下来的传输所需要的地址。
猝发数不能超过4KB临界值,这是为了防止猝发长度在从设备之间出现交叉现象,同时也限制了从设备需要地址增量的大小。
4.2猝发长度
AWLEN或ARLEN信号说明每次猝发传输开始时,数据传输的个数,如表4-1所示,每猝发可以传输长1-16个数据。
对于循回猝发方式来讲,猝发的长度必须是2,4,8,或16。
每次交易进行时,必须通过设置AWLEN或ARLEN信号来确定传输长度,任何器件都不能通过尽早地终止猝发的方式去减少数据传输个数。
在一次写猝发的过程中,主设备通过禁止写选通信号的方式终止进一步的写操作,但是它必须完成本次猝发中剩下数据传输。
在一次读猝发过程中,主设备能丢弃进一步的读到数据,但是它必须完成在本次猝发中剩下的数据传输。
-------------------注意---------------------------------------------
当访问一个读敏感设备例如FIFO时,抛弃不需要的读数据会导致丢失数据。
主设备不会来访问这样一种设备,它使用的猝发长度比自身需要的还长。
--------------------------------------------------------------------
4.3猝发大小
如表4-2中显示,通过ARSIZE