当前位置:首页 > > ZYNQ
		


AXI(Advanced eXtensible Interface)是一种总线协议,该协议的第一个版本AXI3是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分。2010发布的AMBA4.0包含了AXI的第二个版本AXI4。
AXI4总线分为主、从两端,两者间可以连续的进行通信,AXI4总线采用READY、VALID握手通信机制,主设备收到从设备发送的READY,主设备将数据和VALID信号同时发给从设备。1)、AXI4:主要面向高性能地址映射通信的需求;2)、AXI4-Lite:是一个轻量级的,适用于吞吐量较小的地址映射通信总线,占用较少的逻辑资源,AXI4-Lite所有的猝发长度为1,数据总线宽度为32位或64位;
3)、AXI4-Stream:面向高速流数据传输,AXI4-Stream数据总线宽度为8、16、32、64、128、256、512和1024位,去掉了地址传输的功能,允许无限制的数据突发传输,无需考虑地址映射。
AXI总线分为五个通道:
  • 读地址通道,包含ARVALID,ARADDR,ARREADY信号;
  • 写地址通道,包含AWVALID,AWADDR,AWREADY信号;
  • 读数据通道,包含RVALID,RDATA,RREADY,RRESP信号;
  • 写数据通道,包含WVALID,WDATA,WSTRB,WREADY信号;
  • 写应答通道,包含BVALID,BRESP,BREADY信号;
数据可以在主从设备间同步的双向传输,并且数据传输大小可以改变。AXI4将数据传输的突发长度限制为最大256,AXI4-Lite每次传输仅传输一个数据。如图1所示,AXI4协议主从设备间的读操作使用独立的读地址和读数据通道,只需要一个地址就可以执行最大为256的突发长度的读操作。

图1 读操作的通道结构如图2所示,AXI4协议主从设备间的写操作使用写地址、写数据和写响应通道只需要一个地址就可以执行最大为256的突发长度的写操作。

图2写操作的通道结构AXI4-Lite接口和AXI4接口类似,但是不支持AXI4的突发传输模式,AXI4-Stream接口仅使用数据通道传输数据流,数据突发长度无限。
AXI4和AXI4-Lite接口信号1)全局信号
信号名
AXI4 AXI4-Lite
ACLK 全局时钟

ARESETN 全局复位,低有效

2)写地址通道信号
信号名
AXI4 AXI4-Lite
AWID
写地址ID。这个信号用于写地址信号组的标记 不支持
AWADDR

写地址。写地址给出突发数据传输的第一个传输地址
AWLEN
突发长度。给出突发传输中准确的传输个数。支持INCR和WRAP传输模式。 不支持
AWSIZE
突发大小。这个信号用于确定突发传输中每个传输的大小。 不支持
AWBURST
突发类型。该消息与突发大小消息一致,表示在突发过程中,地址如何应用于每个传输。支持INCR和WRAP传输模式。 不支持
AWLOCK
锁类型。该信号提供了关于传输原子特性的额外信息 不支持
AWCACHE
缓存类型,建议值为0011。
AWPROT
保护类型,建议值为000。
AWQOS
QoS标识符,Xilinx AXI4 不支持。 不支持
AWREGION
用于每个写操作的地址通道上的域标识符。 不支持
AWUSER
Xilinx不支持 不支持
AWVALID 写地址有效信号。为高指示地址有效。
AWREADY
写地址准备信号。为高表示从设备空闲,准备接收;为低表示从设备忙。
3)写数据通道信号
信号名
AXI4 AXI4-Lite
WDATA

写数据,32位到1024位宽。 只支持32位宽
WSTRB

写字节选通,用于表示更新存储器的字节通道,对于数据总线的每8位数据有一位写选通信号。 从设备端可选择忽略
WLAST
写最后一个数据指示信号。表示突发传输中的最后一个数据。 不支持
WUSER Xilinx AXI4不支持 不支持
WVALID

写有效。为高指示数据有效。
WREADY

写准备。为高表示从设备空闲,准备接收数据;为低表示从设备忙。

4)写响应通道
信号名
AXI4
AXI-Lite
BID
响应ID。写响应识别标记,BID值必须匹配AWID值
不支持
BRESP

写响应。该信号表示写状态,可允许相应的表示为OKAY/EXOKAY/SLVERR/DECERR。
EXOKAY状态不支持
BUSER
Xilinx AXI4不支持。 不支持
BVALID
写响应有效。为高指示响应数据有效。

BREADY
写响应准备。为高表示主设备空闲,准备接收数据;为低表示主设备忙。
5)读地址通道
信号名
AXI4

AXI-Lite

ARID

读地址ID。这个信号用于读地址信号组的标记。 不支持
ARADDR
读地址。读地址给出突发数据传输的第一个传输地址。

ARLEN 突发长度。给出突发传输中准确的传输个数。支持INCR和WRAP传输模式。 不支持
ARSIZE
突发大小。这个信息用于确定突发传输中每个传输的大小。
不支持
ARBURST
突发类型。该信息与突发大小信息一起,表示在突发过程中,地址如何应用于每个传输。支持INCR和WRAP传输模式。 不支持
ARLOCK
锁类型。该信号提供了关于传输原子特性的额外信息。 不支持
ARCACHE
缓存类型,建议值为0011。

ARPROT
保护类型,建议值为000。

ARQOS
QoS标识符,Xilinx AXI4不支持。 不支持
ARREGION
用于每个读操作的地址通道上的域标识符。 不支持
ARUSER
Xilinx AXI4 不支持。 不支持
ARVALID
读地址有效信号。为高指示地址有效。

ARREADY

读地址准备信号。为为高表示从设备空闲,准备接收数据;为低表示从设备忙。
6)读数据通道
信号名
AXI4 AXI-Lite
RID

读ID标记,该信号是读数据信号组标记,由从设备产生RID,RID必须和读交易中的ARID匹配。
不支持
RDATA
读数据。32位到1024位宽。
只支持32位宽
RRESP 读响应。该信号表示读状态,可允许相应的表示为OKAY/EXOKAY/SLVERR/DECERR。 EXOKAY状态不支持
RLAST
读最后一个数据指示信号。表示突发传输中的最后一个数据。
不支持
RUSER
Xilinx AXI4不支持。
不支持
RVALID
读有效。为高指示数据有效。
RRADY

读准备。为高表示主设备空闲,准备接收数据;为低表示主设备忙。
7)AXI4-Stream信号
信号名
默认值 功能
TVALID No
N/A
Stream读写数据有效。为高指示数据有效。
TREADY
Yes
1
Stream读写准备。为高表示对端设备空闲,准备接收数据;为低表示对端设备忙。
TDATA
Yes 0
Stream读写数据,8到4096位宽。
TSTRB Yes 同TKEEP,否则为1 字节选通信号。用于表示更新存储器的字节通道,对于数据总线的每8位数据有一位选通信号。
TKEEP
Yes 1
字节选通信号。TKEEP未被确认的那些相关的字节是空字节,可以从数据流中去除。
TLAST
Yes 0
表明包的边界。
TID Yes 0 数据流表示符。
TDEST
Yes 0
数据流路由信息。
TUSER
Yes 0 用户定义的边带信息,这些信息能伴随数据流进行发送。

主机/设备之间的握手过程以及READY和VALID握手信号的关系以及默认值


1、全部5个通道使用相同的VALID/READY握手机制传输数据及控制信息。传输源产生VALID信号来指明何时数据或控制信息有效。而目的源产生READY信号来指明已经准备好接受数据或控制信息。传输发生在VALID和READY信号同时为高的时候。VALID和READY信号的出现有三种关系。

(1)VALID先变高READY后变高。时序图如下:

figure 3  VALID before READY handshake在箭头处信息传输发生。
(2)READY先变高VALID后变高。时序图如下:

figure 4 READY before VALID handshake
同样在箭头处信息传输发生。
(3)VALID和READY信号同时变高。时序图如下:

figure 5 VALID with READY handshake
在这种情况下,信息传输立马发生,如图箭头处指明信息传输发生。

2、通道之间的关系

地址、读、写和写响应通道之间的关系是灵活的。

例如,写数据可以出现在接口上早于与相关联的写地址,也有可能写数据与写地址在一个周期中出现。

两种关系必须被保持:

(1)读数据必须总是跟在与其数据相关联的地址之后。

(2)写响应必须总是跟在与其相关联的写事务的最后出现。


3、通道握手信号之间的依赖性
读事务握手依赖关系如图:

figure 6 READ transaction handshake dependencies

(1)设备可以在ARVALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARVALID信号。

(2)但是设备必须等待ARVALID和ARREADY信号都有效才能给出RVALID信号,开始数据传输。


写事务握手依赖关系如图:

figure 7 Write transaction handshake dependencies

(1)主机必须不能够等待设备先给出AWREADY或WREADY信号后再给出信号AWVALID或WVALID。

(2)设备可以等待信号AWVALID或WVALID信号有效或者两个都有效之后再给出AWREADY信号。

(3)设备可以等待AWVALID或WVALID信号有效或者两个都有效之后再给出WREADY信号。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭