参考资料:
Xilinx官方文档:基于Vivado的AXI参考指南(UG1037)
ARM文档:AMBA AXI协议规范(INI0022D)
1.接口简介
AXI(Advanced eXtensible Interface):全称高级可扩展接口。是ARM AMBA(Advanced Microcontriller Bus Architecture)高级微控制器总线架构的一部分。
是1996年首次引入的一组微控制器总线;是开放的片内互联的总线标准,是能在多主机设计中实现多个控制器和外围设备之间的连接和管理。
目前使用的是2003年的AMBA4.0中的AXI4版本。
AXI4接口类型:
AXI4(AXI4_Full):用于高性能的存储器映射需求。
AXI4_Lite:简化版的AXI4接口,用于低吞吐的存储器映射接口通讯。是一个轻量级、单次存储器映射接口。不支持突发。
AXI_Stream:用于高速的流数据通讯,不属于存储器映射。
2.接口优势…
高效的生产力:AXI接口是一个标准的协议,用户只需要学习简单的IP接口即可。
灵活性:AXI4只需要给出一个地址就可以支持最大256个数据的高吞吐的突发。AXI4_Lite接口是设计简单,占用资源少,不支持突发。AXI_Stream接口移除了地址需求,突发传输数据数量没有限制。
通用性:许多IP核都支持AXI协议。
3.工作方式
AXI协议规范描述了单个主机和单个从机之间的接口。用于主从之间交互信息的IP核。多个存储器映射的主机和从机可以通过AXI基础结构的IP核进行连接。
AXI Interconnect IP 和 AXI SmartConnect IP 包含了符合AXI一个可配置的AXI主从接口和一个可被用来连接一个或者多个主从设备的接口。
AXI4和AXI4_Lite包含了五组独立的通道:
1.读地址通道
2.读数据通道
3.写地址通道
4.写数据通道
5.写响应通道
每个独立的通道都包含VALID(信息源端)和READY(目的源端)信号来提供双向的握手机制。VALID信号用来表示地址、数据或者控制信息在当前通道下什么时候有效。READY用来显示可以接收信息。读和写数据通道还包含了一个LAST(信息源端)信号来指示最后一个数据。
读写地址通道都包含各自的地址通道,地址通道携带了所有的地址请求信号和控制
信息。
读数据通道携带了读数据和读响应的信息,由从机发送给主机。读响应用来表示读
操作是否完成。
写数据通道携带了从主机到从机的写数据信息。WSTRB(频闪信号)表示当前数
据的那个字节有效。
写响应通道由从机发送给主机,包含了写响应信号,用于表示当前的写操作是否完成。
AXI4和AXI4_Lite因为读和写通道是分离的,因此可以进行双向传输。
AXI4和AXI4_Lite比较相似,区别是AXI4_Lite是不支持突发操作的。
AXI4_Stream只定义了一个单一的通道,AXI4_Stream模型和AXI的写数据通道比较像。不同的是Stream接口的突发长度不受限制。
数据传输的时候需要指定一个目标地址,这就是存储映射。
AXI_Stream:在不关心地址,只关心数据流程的时候可以使用,只承担单向数据传输,基于握手的传输协议。
基础结构的IP核:搭建系统的构建块——AXI寄存器片、AXI FIFOs、AXI Interconnect IP和AXI SmartConnect IP、AXI Direct Memory Access(DMA:实现存储器映射流到stream数据流的转换)。
AXI Interconnect IP和AXI SmartConnect IP
都是用来连接一个或者多个AXI主从存储映射接口。
AXI SmartConnect IP提供了更加紧密的集成到了Vavido中,可以在用户最小干预下配置和连接AXI接口。
AXI Interconnect IP:可用在所有的存储器映射设计。
在有些情况下AXI SmartConnect IP可以提供一个高带宽低延迟的连接和进行更好的优化。
一般情况下Vavido可以自动选择这两个IP核的一个或者两个。
4.信号
本部分请阅读ARM文档:AMBA AXI协议规范(INI0022D)from Page27 begin。
ACLK:每个AXI都用一个单一时钟,所有的输入信号都在ACLK的时钟上升沿采集,输出信号都必须在时钟上升沿之后改变。
Reset:复位有效时,主机接口要驱动ARVALID、AWVALID、WVALID信号为低电平。从机信号驱动RVALID和BVALID为低电平。其余可以为任意值。
握手处理(Handshake process)
每个通道通过VALID/READY握手处理来传输地址、数据、和控制信息。因为有握手机制,主机和从机都可以控制传输速率。因为传输信号只有在VALID和READY信号都为高电平时。这两个信号一个被主机控制一个被从机控制。
5.通道
这里是AXI主机的。
读地址通道
信号 | 方向 | 作用 |
---|---|---|
ARADDR | ||
ARVALID | ||
ARREADY |
读数据通道
信号 | 方向 | 作用 |
---|---|---|
RDATA | ||
RLAST | ||
RVALID | ||
RREADY |
写地址通道
信号 | 方向 | 作用 |
---|---|---|
AWADDR | output | 握手信号有效时,该信号有效 |
AWVALID | output | |
AWREADY | input |
写数据通道
| 信号 | 方向 |作用|
信号 | 方向 | 作用 |
---|---|---|
WDATA | outpuit | 握手信号有效时,该数据有效 |
WLAST | output | 最后一个数据突发有效时,该信号为高,其余为低 |
WVALID | output | |
WREADY | input |
写响应通道
信号 | 方向 | 作用 |
---|---|---|
BRESP | output | 握手信号有效时,该信号有效 ,标志突发结束 |
BVALID | input | |
BREADY | output |