AMBAAXI总线详解Word文件下载.docx
《AMBAAXI总线详解Word文件下载.docx》由会员分享,可在线阅读,更多相关《AMBAAXI总线详解Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
全局时钟信号
ARESETn
Resetsource
全局复位信号,低电平有效
2、写地址通道信号
信号
AWID[3:
0]
主机
写地址ID,这个信号是写地址信号组的IDtag。
AWADDR[31:
写地址。
AWLEN[3:
突发式写的长度。
此长度决定突发式写所传输的数据的个数。
AWSIZE[2:
突发式写的大小。
AWBURST[1:
0]
突发式写的类型。
AWLOCK[1:
锁类型。
AWCACHE[3:
Cache类型。
这信号指明事务的bufferable、cacheable、write-through、write-back、allocateattributes信息。
AWPROT[2:
保护类型。
AWVALID
写地址有效。
1=地址和控制信息有效
0=地址和控制信息无效
这个信号会一直保持,直到AWREADY变为高。
AWREADY
设备
写地址准备好。
这个信号用来指明设备已经准备好接受地址和控制信息了。
1=设备准备好
0=设备没准备好
3、写数据通道信号
WID[3:
写IDtag,WID的值必须与AWID的值匹配
WDATA[31:
写的数据。
WSTRB[3:
写阀门。
WSTRB[n]标示的区间为WDATA[(8*n)+7:
(8*n)]
WLAST
写的最后一个数据。
WVALID
写有效
1=写数据和阀门有效
0=写数据和阀门无效
WREADY
写就绪。
指明设备已经准备好接受数据了
1=设备就绪
0=设备未就绪
4、写响应通道信号
BID[3:
响应ID,这个数值必须与AWID的数值匹配。
BRESP[1:
写响应。
这个信号指明写事务的状态。
可能有的响应:
OKAY、EXOKAY、SLVERR、DECERR。
BVALID
写响应有效。
1=写响应有效
0=写响应无效
BREADY
接受响应就绪。
该信号表示主机已经能够接受响应信息。
1=主机就绪
0=主机未就绪
5、读地址通道信号
ARID[3:
读地址ID。
ARADDR[31:
读地址。
ARLEN[3:
突发式读长度。
ARSIZE[2:
突发式读大小。
ARBURST[1:
突发式读类型。
ARLOCK[1:
ARCACHE[3:
ARPROT[2:
ARVALID
读地址有效。
信号一直保持,直到ARREADY为高。
ARREADY
读地址就绪。
指明设备已经准备好接受数据了。
6、读数据通道信号
RID[3:
读IDtag。
RID的数值必须与ARID的数值匹配。
RDATA[31:
读数据。
RRESP[1:
读响应。
这个信号指明读传输的状态:
RLAST
读事务传送的最后一个数据。
RVALID
读数据有效。
1=读数据有效。
0=读数据无效。
RREADY
读数据就绪。
7、低功耗接口信号
CSYSREQ
CLOCKcontroller
系统低功耗请求。
此信号来自系统时钟控制器,使外围设备进入低功耗状态。
CSYSACK
外围设备
低功耗请求应答。
CACTIVE
Clockactive
1=外围设备时钟请求
0=外围设备时钟无请求
第三章
本章介绍主机/设备之间的握手过程以及READY和VALD握手信号的关系以及默认值。
1、全部5个通道使用相同的VALID/READY握手机制传输数据及控制信息。
传输源产生VLAID信号来指明何时数据或控制信息有效。
而目地源产生READY信号来指明已经准备好接受数据或控制信息。
传输发生在VALID和READY信号同时为高的时候。
VALID和READY信号的出现有三种关系。
(1)VALID先变高READY后变高。
时序图如下:
在箭头处信息传输发生。
(2)READY先变高VALID后变高。
同样在箭头处信息传输发生。
(3)VALID和READY信号同时变高。
在这种情况下,信息传输立马发生,如图箭头处指明信息传输发生。
2、通道之间的关系
地址、读、写和写响应通道之间的关系是灵活的。
例如,写数据可以出现在接口上早于与其相关联的写地址。
也有可能写数据与写地址在一个周期中出现。
两种关系必须被保持:
(1)读数据必须总是跟在与其数据相关联的地址之后。
(2)写响应必须总是跟在与其相关联的写事务的最后出现。
3、通道握手信号之间的依赖性
读事务握手依赖关系如图:
(1)设备可以在ARVALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARVALID信号。
(2)但是设备必须等待ARVALID和ARREADY信号都有效才能给出RVALID信号,开始数据传输。
写事务握手依赖关系如图:
(1)主机必须不能够等待设备先给出AWREADY或WREADY信号信号后再给出信号AWVALID或WVLAID。
(2)设备可以等待信号AWVALID或WVALID信号有效或者两个都有效之后再给出AWREADY信号。
(3)设备可以等待AWVALID或WVALID信号有效或者两个信号都有效之后再给出WREADY信号。
第四章
本章主要介绍AXI突发式读写的类型和在一次突发式读写事务内如何计算地址和bytelanes。
1、突发式读写的地址必须以4KB对齐。
2、信号AWLEN或信号ARLEN指定每一次突发式读写所传输的数据的个数。
具体信息如下图:
3、ARSIZE信号或AWSIZE信号指定每一个时钟节拍所传输的数据的最大位数。
需要注意的是任何传输的SIZE都不能超过数据总线的宽度。
4、AXI协议定义了三种突发式读写的类型:
固定式的突发读写、增值式突发读写、包装式突发读写。
用信号ARBURST或AWBURST来选择突发式读写的类型。
(1)固定式突发读写是指地址是固定的,每一次传输的地址都不变。
这样的突发式读写是重复的对一个相同的位置进行存取。
例如FIFO。
(2)增值式突发读写是指每一次读写的地址都比上一次的地址增加一个固定的值。
(3)包装式突发读写跟增值式突发读写类似。
包装式突发读写的地址是包数据的低地址当到达一个包边界。
包装式突发读写有两个限制:
起始地址必须以传输的size对齐。
突发式读写的长度必须是2、4、8或者16。
5、关于一些地址的计算公式。
Start_Address主机发送的起始地址
Number_Bytes每一次数据传输所能传输的数据byte的最大数量
Data_Bus_Bytes数据总线上面bytelanes的数量
Aligned_Address对齐版本的起始地址
Burst_Length一次突发式读写所传输的数据的个数
Address_N每一次突发式读写所传输的地址数量,范围是2-16
Wrap_Boundary包装式突发读写的最低地址
Lower_Byte_Lane传输的最低地址的bytelane
Upper_Byte_Lane传输的最高地址的bytelane
INT(x)对x进行向下取整
下面是计算公式:
Start_Address=ADDR
Number_Bytes=2SIZE
Burst_Length=LEN+1
Aligned_Address=(INT(Start_Address/Number_Bytes))xNumber_Bytes
Address_1=Start_Address
Address_N=Aligned_Address+(N–1)xNumber_Bytes
Wrap_Boundary=(INT(Start_Address/(Number_BytesxBurst_Length)))
x(Number_BytesxBurst_Length)
如果有Address_N=Wrap_Boundary+(Number_BytesxBurst_Length),则后面的公式成立Address_N=Wrap_Boundary。
第一次突发式读写:
Lower_Byte_Lane=Start_Address-(INT(Start_Address/Data_Bus_Bytes))
xData_Bus_Bytes
Upper_Byte_Lane=Aligned_Address+(Number_Bytes-1)-
(INT(Start_Address/Data_Bus_Bytes))xData_Bus_Bytes
除了第一次读写之后的读写:
Lower_Byte_Lane=Address_N–(INT(Address_N/Data_Bus_Bytes))
Upper_Byte_Lane=Lower_Byte_Lane+Number_Bytes–1
DATA[(8xUpper_Byte_Lane)+7:
(8xLower_Byte_Lane)]。
第五章
本章描述了AXI协议支持的系统级的Cache和保护单元。
1、ARCACHE[3:
0]和AWCACHE[3:
0]的编码如下图:
在一些情况下,信号AWACAHE可以用来确定哪个部件来提供写响应。
如果写事务被指定为bufferable,那么他接受来自桥或者系统级的cache提供的写响应。
如果事务被指定为non-bufferable,那么写响应必须有最终目的源提供。
2、AWPROT或者ARPROT信号提供三种级别的存取保护:
(1)正常存取或者特权存取,ARPROT[0]和AWPROT[0]
(2)安全性存取或者没有安全性存取,ARPROT[1]和AWPROT[1]
(3)指令存取或者数据存取ARPROT[2]和AWPROT[2]
信号ARPROT[2:
0]和信号AWPROT[2:
第六章
本章描述了AXI协议工具的独占式存取和锁存取机制。
1、当对自动存取时能之后,可以通过信号ARLOCK[1:
0]或信号AWLOCK[1:
0]来配置独占式存取和锁存取。
编码如下图:
我们通过信号ARLOCK[1:
0]或AWLOCK[1:
0]来选择独占式存取,用信号RRESP[1:
0]或BRESP[1:
0]来指明独占式存取的成功与否。
2、主机在请求独占式存取时,设备会返回两个响应分别是EXOKAY和OKAY。
EXOKAY是指设备支持独占式存取,而OKAY是指设备不支持独占式存取。
、
3、如果一个设备不支持独占式存取,可以忽略信号ARLOCK[1:
0]和AWLOCK[1:
0]。
他必须提供OKAY响应对正常式存取和独占式存取。
如果一个设备要支持独占式存取则必须有硬件监视器。
4、通过信号ARLOCK[1:
0]对事务加锁,需要确定只允许主机存取设备区域直到一个未加锁的事务从同一个主机完成。
此处推荐锁存取只用来支持legacydevices。
5、推荐遵循下面两条建议,但是不强制:
(1)保持所有锁事务序列都在相同的4KB地址区域内。
(2)限制用琐事务序列对两个事务加锁。
第七章
本章描述了AXI读写事务的四个设备响应。
1、AXI协议对读事务和写事务都有响应。
对于读事务,读响应与读数据一起发送给主机,而写事务将写响应通过写响应通道传送。
AXI协议的响应类型有OKAY、EXOKAY、SLVERR、DECERR。
2、通过信号RRESP[1:
0]和BRESP[1:
0]来编码响应信号,具体如下图:
协议规定请求的需要传输的数据数量必须被执行,即使有错误报告。
在一次突发式读写的剩余数据不会被取消传输,即使有单个错误报告。
3、AXI协议的四种响应类型:
正常存取成功、独占式存取、设备错误、译码错误。
AXI协议要求,在一个传输事务中的所有数据必须传输完成,即使有错误状态发生。
第八章
本章描述AXI协议用事务IDtags来处理多地址和乱序传输。
1、下面介绍5中事务IDs:
(1)AWID这个IDtag是写地址群组信号。
(2)WID这个是写IDtag在写事务中,与写数据在一起,主机传送一个WID去匹配与地址相一致的AWID。
(3)BID这个IDtag是写响应事务中。
设备会传送BID去匹配与AWID和WID相一致的事务。
(4)ARID这个IDtag是读地址群组信号。
(5)RID这个IDtag是在读事务中。
设备传送RID去匹配与ARID相一致的事务。
2、主机可以使用一个事务的ARID或者AWID段提供的附加信息排序主机的需要。
事务序列规则如下:
(1)从不同主机传输的事务没有先后顺序限制。
他们可以以任意顺序完成。
(2)从同一个主机传输的不同ID事务,也没有先后顺序限制。
(3)相同数值的AWID写事务数据序列必须按照顺序依次写入主机发送的地址内。
(4)相同数值的ARID读事务数据序列必须遵循下面的顺序:
当从相同设备读相同的ARID时,设备必须确保读数据按照相同的地址顺序接受。
当从不同的设备读相同的ARID时,接口处必须确保读数据按照主机发送的相同的地址顺序。
(5)在相同的AWID和ARID的读事务和写事务之间没有先后顺序限制。
如果主机要求有顺序限制,那么必须确保第一次事务完全完成后才开始执行第二个事务。
3、当一个主机接口与interconnect相连时,interconnect会在信号ARID、AWID、WID段添加一位,每一个主机端口都是独一无二的。
这样做有两个影响:
(1)主机不需要去知道其他主机的ID数值,因为interconnect是ID值是唯一的,当将主机number添加到段中。
(2)在设备接口处的ID段的宽度要比主机接口处的ID段宽。
对于读数据,interconnect附加一位到RID段中,用来判断哪个主机端口读取数据。
Interconnect会移除RID段中的这一位在将RID的值送往正确的主机端口之前。
第九章
本章描述了AXI读写数据总线传输的不同大小和接口如何用字节不变endian去握手混合endian传输。
1、Narrow传输,当主机产生的数据宽度小于数据总线宽度时,地址和控制信息决定哪一个bytelanes为有效的数据。
下面是两个应用bytelanes的例子:
Example1:
Example2:
2、下面是一个数据不变性存取需求的数据结构的例子。
他包含头信息,例如source、destinationidentifiers这些信息是采用little-endian格式,但是payload是big-endian字节流,具体情况如下图:
数据不变性确保在数据结构中little-endian存取头信息的部分不会破坏其他big-endian数据。
第十章
本章描述AXI协议不对齐握手传输。
1、AXI协议允许主机使用低阶地址行去标示一个不对齐的起始地址在突发读写中。
低阶地址行的信息必须包含bytelanestrobes信息。
2、下面是几个例子来表明数据以对齐或者不对齐的地址为起始地址,分别在32位和64位数据总线上面传输的情况。
其中暗色的框表示没有传输的数据。
第十一章
本章主要描述AXI时钟和复位信号的时序。
1、在复位期间,以下接口必须遵循:
(1)主机接口必须将ARVALID、AWVALID、WVALID信号置低。
(2)设备接口必须将RVALID、BVALID信号置低。
(3)所有其它信号可以为任意值。
2、主机接口必须开始将ARVALID、AWVLAID或WVALID置高仅仅在ARESETn信号变高后的ACK的第一个上升沿。
具体情况如下图:
第十二章
本章主要描述AXI协议在进入和离开低功耗状态期间的时钟控制接口。
1、低功耗时钟控制接口包括下面两个信号:
(1)来自外围设备的信号,用于指明什么时候时钟使能能或者禁能。
(2)两个握手信号用于系统时钟控制器请求退出或者进入低功耗状态。
2、时钟控制接口的一个主要信号时CACTIVE,外围设备用这个信号来指明请求时钟使能。
外围设备置CACTIVE有效去请求时钟,系统时钟控制器必须马上使能时钟。
如果外围设备将CACTIVE置为无效,则系统时钟控制器将自己决定是否使能或者禁能外围设备时钟。
3、AXI协议提供双线request/acknowledge握手来支持请求:
(1)CSYSREQ当外围设备请求进入低功耗状态时,系统时钟控制器将CSYSREQ置低,平时CSYSREQ都是置高的。
(2)CSYSACK外围设备用CSYSACK信号作为进入低功耗状态和离开低功耗状态的应答信号。
下面是CSYSREQ和CSYSACK信号之间的时序图:
系统时钟控制器在T1时刻发出请求,外围设备在T2时刻给予应答,此时进入低功耗状态。
在T3时刻,CSYSREQ变高,请求离开低功耗状态,在T4时刻得到应答,此时离开低功耗状态进入正常模式。
4、外围设备可以选择接受请求也可以选择不接受请求。
主要通过信号CACTIVE来决定。
接受请求的情况:
不接受请求的情况:
5、既可以通过系统也可以通过外围设备来退出低功耗状态。
只要置信号CACTIVE和CSYSREQ这两个信号中的一个为高就可以退出低功耗模式。
而系统可以通过置CSYSREQ为高来退出低功耗模式。
6、时钟控制框图如下: