1分钟了解常用的AXI4 接口协议

作者:FPGA入门到精通

AXI4协议广泛应用于FPGA和ASIC设计中,特别是在需要高速数据传输和复杂系统架构的场合,比如DDR、PCIE、音视频处理IP等等,对于FPGA开发者需要熟练掌握这套协议。

一、AXI4的特点

1、独立的读写通道

AXI4协议包含五个独立的通道:读地址通道、写地址通道、读数据通道、写数据通道和写响应通道。

这种通道分离特性使得控制、地址信息和数据信息无固定的相位关系,有利于流水线操作和提升传输效率。

2、支持突发传输

AXI4支持突发式传输,这意味着可以一次性传输多个数据,而不需要为每个数据传输单独指定地址。

这种特性特别适用于需要高速数据传输的场景,如处理器访问存储器。

3、乱序数据包收发

AXI4允许在未收到回应时发送多个待执行操作的地址信息,当多个slave操作完成时间不一致时,完成顺序与Master的控制顺序可以不同,从而提高了系统的性能。

4、支持非对齐数据传输

AXI4支持非对齐数据传输,即数据可以在任意地址开始传输,这对于处理不规则数据分布的场景非常有用。

5、地址/控制信号与数据分离

AXI4的地址/控制信号与数据处于不同阶段,这使得可以同时传输地址、控制信息和数据,进一步提高了传输效率。

二、AXI4 接口类型

AXI4协议支持三种类型的接口:

1、AXI4(AXI4-full)

面向高性能地址映射通信的需求,允许最大256轮的数据突发传输。

支持突发传输,主要用于处理器或FPGA访问存储器等高速数据传输场景。

2、AXI4-Lite

轻量级的地址映射单次传输接口,适用于吞吐量较小的通信,不支持突发传输。

主要用于访问一些低速外设中的寄存器。

3、AXI4-Stream

面向高速流数据传输,不需要地址映射,允许无限制的数据突发传输规模。

与FIFO一样,根据握手机制,连续发送数据流,主要用于如视频、PCIe、DMA 接口等需要高速数据流传输的场景。

三、AXI4 握手机制

AXI4协议采用READY和VALID握手通信机制,只有READY和VALID都为高时,对应通道的所有信号才有效。

VALID 信号由发送端产生,表示当前地址或者数据是有效的。

READY 信号由接收端产生,则表示当前接收端空闲,已准备好接收信息。

根据VALID和READY的出现时间,可以分为以下3种握手机制:

握手机制.png

对于这个握手机制需要注意的理解误区,那就是:

可能出现当前周期下REDAY信号拉高,但下一个周期REDAY信号就拉低了。

发送端在当前周期下READY信号为高时,才能更新下一个数据,且保持VALID信号和DATA信号不变。

四、AXI4 通道

这块了解即可,实际使用时,对于不熟悉的接口再对照手册查看。

AXI4协议包含五个通道,每个通道都有其特定的信号和功能:

1、写地址通道(AW channel)

包含AWVALID, AWADDR, AWREADY信号,用于传输写请求的地址信息。

写地址通道.png

2、写数据通道(W channel)

包含WVALID, WDATA, WSTRB, WREADY信号,用于传输写数据及其控制信息。

写数据通道.png

3、写响应通道(B channel)

包含BVALID, BRESP, BREADY信号,用于传输写操作的响应。

写响应通道.png

4、读地址通道(AR channel)

包含ARVALID, ARADDR, ARREADY号,用于传输读请求的地址信息。

读地址通道.png

5、读数据通道(R channel)

包含RVALID, RDATA, RREADY, RRESP信号,用于传输读响应的数据和状态。

读数据通道.png

五、操作时序

1、突发写时序

突发写时序需要依次操作“写地址通道”、“写数据通道”、“写响应通道”,传输过程如下图所示:

突发写时序.png

写数据时序图如下:

写数据时序图.png

2、突发读时序

突发读时序需要依次操作“读地址通道”、“读数据通道”,传输过程如下图所示:

突发读时序.png

读数据时序图如下:

读数据时序图.png

最新文章

最新文章