AXI的设计目标是可以在高始终频率下运行,并且在迟滞时间长的情况下也可以达到高数据吞吐率。他可以将读/写请求和读/写结果相互分离,将数据写入和数据读出的信号分类,并且可以同时进行写入和读出的动作,因此可以大幅度提升数据吞吐量。
AXI有以下关键特性:
1.分离的地址/控制通道和数据通道
2.支持非对齐传输,使用byte strobs指示
3.支持burst传输,只需要发送其实地址就行
4.具有分离的读写数据通道
5.支持多种outstanding传输(即地址和数据传输没有严格的先后要求,即我们在处理两个不同的transaction时不需要等待一个transaction处理完成才进行下一个)
6.支持乱序传输
下面是一个读传输时如何应用读地址和读数据通道的 流程:
1.主机通过读地址通道发出读取请求。
2.从机通过读数据通道将读取的数据传送给主机
下面是一个写传输时如何应用写地址和写数据通道的 流程:
1.主机通过写地址通道发出写入请求。
2.主机通过写数据通道发送写入的数据。
3.从机在完成写入动作后,通过写响应通道发回确认信息。
我们需要注意的是,AXI有5个独立的传输通道,分别是AR,R,AW,W,B通道:
AR:读地址通道,传输读操作时的地址和对应控制信息。
R;读数据通道,传输AR通道对应的读回数据(位宽可以是8.16.32.64.128.256.512.1024)和传输从机的响应信息。
AW:写数据通道,传输写操作的地址和对应的控制信息。
W:写数据通道,传输写数据相关的信息(位宽可以是8.16.32.64.128.256.512.1024).以及为每一个8bit的数据准备了一额字节选通信号,用于指示数据的哪几个字节是有效的。
我们需要注意,写数据通道总是被buffe的,因此主机可以在未接受到前一次写事务的从机响应信号时就可以进行下一次写操作。
B:写响应通道,传输从机返回的写响应信息。注意此信号只在一次写事务彻底完成之后才产生。
我们要注意,这五个通道都是双向流量控制通道,即发送端用valid表示数据时有效的,接收端用ready表示数据时可以接受的,只有两者同时为1的时候,数据才可以成功传送。
接下来我们看一下个通道的依赖关系:单箭头表示两个信号之间没有依赖关系,,但是推荐使用这种前后关系,双箭头表示两个信号之间具有依赖关系,必须要等到前面的信号有效之后才可以使能后面的信号。
对于读传输,ARVALID和ARREADY之间没有先后关系,但是RVALID信号必须等到前面两个信号有效之后才能生效,这在逻辑上也符合,因为只有读地址等请求信息有效之后,从机才能返回相应数据,通过RVALID表示传输有效。READY不依赖于其他信号。
对于写传输,写地址中的AWVALID,AWREADY和写数据通道的WVALID,WREADY没有相互依赖的关系,完全独立的,BVALID信号需要依赖WVALID,WREADY信号,因为BVALID信号表示写操作的完成。BREADY不依赖于其他信号。注意在AXI3中没有定义BVALID和AWVALID,AWREADY之间的关系,但是在实际设计中,我们会指定BVALID应该在他们之后有效,因为如果地址时无效的,对应后面的写数据和写响应都是无效的。
而在AXI4中定义了BVALID应该在AWVALID,AWREADY,WVALID,WREADY之后有效。并且从机必须等到主机的WLAST信号置位ie,才能将BVALID信号置位。
我们知道,AXI协议时基于突发的。他的流程如下:
1.主机子在读/写地址通道写入地址以及突发传输的长度,宽度,类型等信息
2.从机将在起始地址开始,一次接受主机传送的写数据,或者读取连续地址上的数据,作为读数据传输给主机。
AWLEN和ARLEN信号控制着突发传输长度,即一次突发传输中包含的数据传输数量。AXI3的突发传输长度是1-16transfer。AXI4的突发传输在INCR模式支持1-256transfer。其他模式支持1-16transfer。
突发传输的一些限制:
1.对于回环传输,突发传输长度仅为2.4.8.16.
2.在一次突发传输中,地址不能跨越4KB地址边界。
3.一次突发传输不能在所有数据结束前久结束。
接下来看一看突发传输宽度,即传输中的位宽(每周期传输数据的字节数量),这是由AWSIZE和ARSIZE决定的。
AXI协议规定了三种突发类型:
固定(FIXED):在突发事务中,每次传输的地址一致,有效的字节线也一致。
递增(INCR):在一个递增突发传输中,每次传输,地址都会在原有的基础上递增,第增量为传输大小。
回环(WRAP):地址到达边界后,地址会回绕到下界。
下面将一些特殊的传输方式:
狭窄传输:当主设备产生了一个数据宽度小于数据总线的传输时,地址和控制信号可以按照不同的方式决定使用哪些字节线:
在递增或者回绕的突发模式中,每拍使用不同的字节线。
在固定突发模式中,没拍使用相同的字节线。
非对齐传输:
对于任何数据宽度大于一个字节的传输来说,第一个字节的访问都可能使非对齐的
一个主设备可以:
使用低位地址线发送一个非对齐开始的地址。
提供对齐的地址并且使用字节选通信号线发送非对齐的开始地址。
最后,AXI协议中提供了读/写事务的i相应信号:对于读操作,响应信号在读地址通过的RRESP[1:0];对于写操作,响应信号在写响应通道BRESP[1:0]
OKEY:常规访问成功
EXOKEY独占访问成功
SLVERR从机错误
DECERR解码错误