Vitis AXI总线知识总结
1. AXI总线简介
AXI(Advanced eXtensible Interface)是 ARM AMBA 总线协议中的一种高性能片上通信协议,也是 AMD Xilinx FPGA/SoC 平台中 PS(Processing System)与 PL(Programmable Logic)之间的重要互联方式。
AXI总线具有高带宽、低延迟、可扩展等特点,广泛应用于 Zynq、Zynq UltraScale+ MPSoC、Versal 等平台的数据通信。
AXI协议主要用于:
2. AXI协议类型
AXI主要包括以下三种接口类型:
(1)AXI4-Lite
AXI4-Lite是一种简化版本的AXI接口,主要用于低速控制和寄存器访问。
特点:
- 不支持Burst突发传输;
- 一次只能传输一个数据;
- 结构简单,占用资源较少。
典型应用:
- GPIO控制;
- 外设寄存器配置;
- IP核参数设置。
(2)AXI4
AXI4是完整功能版本的AXI协议,主要用于高速存储器映射访问。
特点:
- 支持Burst突发传输;
- 支持流水线操作;
- 支持高数据吞吐量;
- 适用于DDR、BRAM等高速存储访问。
典型应用:
- DDR数据读写;
- DMA数据搬运;
- 高速数据缓存。
(3)AXI4-Stream
AXI4-Stream主要用于连续数据流传输。
特点:
- 无地址信息;
- 数据连续传输;
- 支持VALID/READY握手机制;
- 适用于高速实时数据处理。
典型应用:
3. AXI五通道结构
AXI协议采用读写通道分离设计,共包含5个独立通道。
写操作通道
- AW(Write Address Channel)
用于传输写地址信息。
主要包含:- 写入地址;
- Burst类型;
- 数据长度等控制信息。
- W(Write Data Channel)
用于传输实际写入数据。 - B(Write Response Channel)
用于返回写操作结果。
写操作流程:
写地址 → 写数据 → 写响应
读操作通道
- AR(Read Address Channel)
用于发送读取地址信息。 - R(Read Data Channel)
用于返回读取的数据和状态信息。
读操作流程:
读地址 → 返回数据
4. AXI握手机制
AXI采用VALID/READY双向握手机制。
传输完成条件:
- VALID = 1
- READY = 1
只有发送端和接收端同时准备完成时,数据传输才会发生。
优势:
- 保证数据可靠传输;
- 支持不同速率设备通信;
- 实现数据流控制。
5. AXI Burst突发传输
Burst是AXI实现高性能传输的重要机制。相比传统单次传输方式,Burst可以通过一次地址传输连续发送多个数据,提高总线利用率。
AXI支持三种Burst类型:
| 类型 | 说明 | 应用 |
|---|---|---|
| FIXED | 地址保持不变 | FIFO访问 |
| INCR | 地址自动递增 | DDR访问、DMA数据搬运 |
| WRAP | 地址循环变化 | Cache相关访问 |
Burst主要参数:
- LEN:Burst传输长度;
- SIZE:每次传输的数据大小;
- BURST:Burst类型。
6. AXI4高性能特点
AXI4能够实现高速通信主要依靠:
- 读写通道独立
读写操作可以同时进行,提高系统效率。 - Burst传输
减少地址控制开销,提高数据吞吐率。 - 流水线机制
允许多个事务同时处理。 - 灵活的数据宽度
支持不同位宽的数据传输,满足不同应用需求。
7. AXI4-Stream关键接口信号
AXI4-Stream主要信号:
| 信号 | 功能 |
|---|---|
| TDATA | 数据内容 |
| TVALID | 数据有效标志 |
| TREADY | 接收端准备状态 |
| TLAST | 数据包结束标志 |
AXI4-Stream适合高速连续数据处理场景。
典型数据路径:
ADC
|
AXI4-Stream
|
FPGA算法处理
|
DMA
|
DDR
8. AXI在Vitis开发中的应用
在Vitis开发环境中,AXI通常用于连接软件和硬件。
典型结构:
ARM Processing System
|
AXI Bus
|
Programmable Logic IP
|
DDR / Peripheral
常见应用:
- 软件控制FPGA IP;
- FPGA高速数据处理;
- DMA数据传输;
- 视频流处理。
9. 总结
AXI是AMD Xilinx FPGA/SoC平台中最重要的片上通信协议。
其中:
- AXI4-Lite:用于低速控制和寄存器配置;
- AXI4:用于高速存储器访问和数据搬运;
- AXI4-Stream:用于实时高速数据流处理。
掌握AXI协议的通道结构、VALID/READY握手机制以及Burst传输方式,是进行Zynq、MPSoC以及Vitis FPGA开发的重要基础。
💡 完整视频讲解可前往 ALINX 视频号进行直播回看
更多细节欢迎关注我们黑金云课堂全年免费直播课, 黑金云课堂八月直播日历 我们将在每周二、三、四,同步推进 Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!
| 系列 | 内容定位 |
|---|---|
| Verilog开发 | 硬件描述语言基础、逻辑设计、仿真调试 |
| Vitis开发 | Zynq软硬件协同、外设驱动、网络协议栈 |
| Linux开发 | 嵌入式Linux系统移植、驱动编写、应用开发 |
71