1.概要
1.1 AXI4协议的三种主要类型
AXI4 协议根据不同的应用需求,分为三种类型:
-
AXI4(内存映射接口,AXI Full):
- 用于高带宽内存映射数据传输,常用于处理器与内存之间的数据传输。
- 支持突发传输(Burst Transfer),一次传输最多可传送 256 个数据(支持256长度突发(burst)传输)。
- 支持分离的读写通道,可以并行处理数据读写。
-
AXI4-Lite:
- 这种接口是 AXI4 的简化版本,不支持突发传输。
- 通常用于低带宽的控制寄存器访问,如连接外设、状态寄存器等。
- 适合较简单的读写操作(单次事务操作)。
-
AXI4-Stream:
- 这种接口主要用于无内存映射的高速数据流传输,如音视频数据处理、网络数据包等。
- 没有地址概念,只传输连续的数据流,适合用于需要低延迟的系统。
1.2 AXI4 的基本信号
AXI4 通常包括多个信号通道,主要有五个:
- 读地址通道(AR):用于发送读操作的地址。
- 写地址通道(AW):用于发送写操作的地址。
- 读数据通道(R):用于返回读取的数据。
- 写数据通道(W):用于传送要写入的数据。
- 写响应通道(B):用于返回写操作的状态信息。
每个通道都可以独立操作,AXI4 可以在读写操作上实现并行性和高效性。
1.3 AXI的握手机制
基于valid-ready的握手机制:
发送方置高 vaild 信号表示地址/数据/控制信息已准备好,并保持在消息总线上;
接收方置高 ready 信号表示接收方已做好接收的准备。在 ACLK 上升沿,若 vaild、ready 同时为高,则进行数据传输。
ready和valid完全独立,这样主从双方都有终止通信的能力。 若想要从机接收全部的来自主机的数据,可设 ready = H 。
1.4 AXI4通道信号
-
读地址通道(AXI4-AR):
-
写地址通道(AXI4-AW):
-
读数据通道(AXI4-R):
-
写数据通道(AXI4-W):
-
写响应通道(AXI4-B):
1.5 AXI-Full的读写时序
写时序
第一步,写地址:
写操作开始时,主机发送地址和控制信息到写地址通道中。当地址通道上AWVALID 和 AWREADY 同时为高时,地址被有效的传给设备,然后主机发送写数据到写数据通道中。
第二步,写数据:
当 WREADY 和 WVALID 同时为高的时候表明一个有效的写数据。当主机发送最后一个数据时,WLAST 信号变为高电平。
第三步,写响应:
当设备接收完所有数据之后,设备会向主机发送一个写响应BRESP来表明写完成,当BVALID 和 BREADY 同时为高的时候表明是有效的响应。
读时序
第一步 读地址:
主机发送地址和控制信息到读地址通道中,当地址通道上 ARVALID 和 ARREADY 同时为高时,地址 ARADDR被有效的传给设备,之后设备输出的数据将出现在读数据通道上。
第二步 读数据:
当 RREADY 和 RVALID 同时为高的时候表明有效的数据传输,从图中可以看到传输了 4 个数据。为了表明一次突发式读写的完成,设备 用 RLAST 信号变高电平来表示最后一个被传输的数据,D(A3)是本次突发读 的最后一个读数据。
在数据读取时,读取的数据从图中可以看到不是连续读取,说明slave是空闲时才传递