ZYNQ-AXI总结
- 本质&定义
- 特点
- 支持接口的类型
- AXI4接口介绍
本质&定义
AXI 协议就是描述了主设备和从设备之间的数据传输方式,在该协议中,主设备和从设备之间通过握手信号建立连接。
AXI是一种高性能、高带宽、低延迟的片内总线。
AXI 互联和接口作为 ZYNQ PS 和 PL 之间的桥梁,能够使两者协同工作,进而形成一个完整的、高度集成的系统。
特点
1、总线的地址/控制和数据通道是分离的;
2、支持不对齐的数据传输;
3、支持突发传输,突发传输过程中只需要首地址;
4、具有分离的读/写数据通道;
5、支持显著传输访问和乱序访问;
6、更加容易进行时序收敛。
支持接口的类型
1、 AXI4:高性能存储映射接口。主要用于处理器访问存储器等需要指定地址的高速数据传输场景。
eg:利用AXI4 接口进行 DDR 读写实验
2、 AXI4-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信。为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。
eg:AXI GPIO 按键控制 LED实验
3、 AXI4-Stream:用于高速数据流传输,非存储映射接口,则像 FIFO一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速 AD、PCIe、DMA 接口等需要高速数据传输的场合。
PS:存储映射是指如果一个协议是存储映射的,那么主机所发出的会话(无论读或写)就会标明一个地址。这个地址对应于系统存储空间中的一个地址,表明是针对该存储空间的读写操作。
AXI4接口介绍
由五个独立的通道构成:1、读地址;2、读数据;3、写地址;4、写数据;5、写响应。
读传输过程示意图如下:
在一个读传输过程中,主机首先在读地址通道给出读地址和控制信号,然后
从机由读数据通道返回读出的数据。另外我们需要注意的是,这是一次突发读操作,主机只给出一个地址,从该地址连续突发读出四个数据。
写传输过程示意图:
用到了写地址、写数据和写响应三个通道。主机在写地址通道给出写地址和控制信号,然后在写数据通道连续突发写四个数据。从机在接收数据之后,在写响应通道给出响应信号。AXI 总线中的每个通道都包含了一组信息信号,还有一个 VALID 和一个 READY 信号。
VALID 信号由源端(source)产生,表示当前地址或者数据线上的信息是有效的;
READY 信号由目的端(destination)产生,则表示已经准备好接收地址、数据以及控制信息。
VALID 和 READY 信号提供了 AXI 总线中的握手机制,如下图所示:
ACLK 为时钟信号,在 AXI 协议中,所有的输入信号都在是 ACLK 的上升沿采样,所有的输出信号必须在 ACLK 的上升沿之后才能改变。在 T1 之后,源端将 VALID 拉高,表明 INFORMATION信号线上传输的是有效的地址、数据或者控制信息。目的端在 T2 之后将 READY 拉高,表明它已经准备好接收数据,此时源端必须保持 INFORMATION 数据稳定不变,直到 T3 时刻进行数据传输。
需要注意的是,源端不允许等目的端的 READY 信号拉高之后,才将 VALID 信号置为有效状态。而且, 一旦 VALID 拉高,源端必须保持其处于有效状态,直至成功握手(在时钟上升沿检测到 VALID 和 READY同时为有效状态)。
AXI协议的五个通道都有各自的VALID/READY握手信号对,每个通道握手信号对的名称如下图所示: