简述
AXI是由ARM公司提出的一种总线协议,它涵盖了总线、接口和协议三个层面的标准。总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成;接口是总线下的连接标准,又常常被称之为物理接口;协议是在总线下的数据传输的规则。
如今AXI已经发展到了AXI4,它包含有三个子集:
- AXI4:面向高性能映射通信需求,是面向地址映射的接口,允许最大突发长度256轮
- AXI4-Lite:轻量级地址映射单次传输接口,占用较少逻辑资源
- AXI4-Stream:面向高速流传输,没有地址项,允许无限制的数据突发传输规模
AXI4-Lite作为AXI4的一个轻量化版本,和AXI4具有高度的兼容性,同时又裁剪了很多复杂的功能:
- 读写通道依然分离,即可以同时读和写交易
- 猝发长度恒为1,即一次交易只有一个地址+一个数据
- 数据位宽全程要保持一致(32/64)
- 总线无缓冲区,不支持乱序交易
- 总线不支持AXI IDs,不支持互斥性操作
AXI4-Lite接口列表
全局信号
名称 | 方向 | 功能 |
---|---|---|
ACLK | ->MS | 全局时钟,上升沿敏感 |
ARESETn | ->MS | 全局复位,同步低电平复位 |
写地址通道AW
名称 | 方向 | 功能 |
---|---|---|
AWADDR[31:0] | M->S | 写地址,本次交易的目标地址 |
AWPROT[2:0] | M->S | 写保护类型 |
[0] 0:非优先,1:优先 | ||
[1] 0:安全,1:不安全 | ||
[2] 0:数据,1:指令 | ||
AWVALID | M->S | 写地址有效,一直拉高直到AWREADY为1 |
AWREADY | S->M | 写地址准备,从机对VALID的回应 |
写数据通道W
名称 | 方向 | 功能 |
---|---|---|
WDATA[31:0] | M->S | 写数据 |
WSTRB[3:0] | M->S | 写选通,高电平写入,4位对应4个字节 |
WVALID | M->S | 写有效,一直拉高直到WREADY为1 |
WREADY | S->M | 写准备,对VALID的回应,从机可以被写 |
写响应通道B
名称 | 方向 | 功能 |
---|---|---|
BRESP[1:0] | S->M | 写响应 |
00:OK,01:不存在 | ||
10:Slave Err,11:Decode Err | ||
BVALID | S->M | 写响应有效,写完给回复,拉高直到主机回应 |
BREADY | M->S | 写响应准备,主机可以接受BVALID |
读地址通道AR
名称 | 方向 | 功能 |
---|---|---|
ARADDR[31:0] | M->S | 读地址,本次交易的目标地址 |
ARPROT[2:0] | M->S | 读保护类型 |
[0] 0:非优先,1:优先 | ||
[1] 0:安全,1:不安全 | ||
[2] 0:数据,1:指令 | ||
ARVALID | M->S | 读地址有效,拉高直到从机回应 |
ARREADY | S->M | 读地址准备,从机对VALID的回应 |
读数据通道R
名称 | 方向 | 功能 |
---|---|---|
RDATA[31:0] | S->M | 读数据 |
RRESP[1:0] | S->M | 读响应 |
00:OK,01:不存在 | ||
10:Slave Err,11:Decode Err | ||
RVALID | S->M | 读有效,从机发出的数据是有效的,拉高直到主机回应 |
RREADY | M->S | 读准备,主设备可以接收读数据 |
AXI4-Lite交易时序
交易由通道握手构成。
例如,一次写地址就是一次握手,这意味着给主机出AWADDR和AWPROT后,主机和从机发生一次VALID/READY交互,意味着握手结束。
写交易
一次写交易需要3次握手。主机提供写地址和写数据,写入完成后从机回复写响应。
其中,写地址和写数据的先后顺序是没有要求的,两者在同一时钟周期传输也是允许的。
数据地址都写入从机,如果没有问题,从机需要回复一次写响应。
读交易
一次读交易需要2次握手。主机提供读地址,从机得到地址后回复读数据。
总结
AXI4-Lite控制简单,且保持向上兼容能力,用途广泛。