【黑金云课堂】FPGA技术教程Vitis开发:AXI总线

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协议主要用于:

  • CPU与FPGA逻辑之间的数据交互;
  • FPGA内部IP模块互联;
  • DDR存储器高速访问;
  • DMA高速数据传输;
  • 视频、通信等实时数据处理。

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握手机制;
  • 适用于高速实时数据处理。

典型应用:

  • 视频处理;
  • ADC/DAC数据采集;
  • FFT算法;
  • 网络数据处理。

3. AXI五通道结构

AXI协议采用读写通道分离设计,共包含5个独立通道。

写操作通道
  1. AW(Write Address Channel)

    用于传输写地址信息。

    主要包含:

    • 写入地址;
    • Burst类型;
    • 数据长度等控制信息。
  2. W(Write Data Channel)

    用于传输实际写入数据。

  3. B(Write Response Channel)

    用于返回写操作结果。

写操作流程:

写地址 → 写数据 → 写响应


读操作通道
  1. AR(Read Address Channel)

    用于发送读取地址信息。

  2. 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能够实现高速通信主要依靠:

  1. 读写通道独立

    读写操作可以同时进行,提高系统效率。

  2. Burst传输

    减少地址控制开销,提高数据吞吐率。

  3. 流水线机制

    允许多个事务同时处理。

  4. 灵活的数据宽度

    支持不同位宽的数据传输,满足不同应用需求。


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系统移植、驱动编写、应用开发
相关推荐
X_xcccc8 小时前
2026高端FPGA选型指南与核心供应商解析
fpga开发
Terasic友晶科技12 小时前
【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(二)——修改Quartus工程(GHRD工程)
fpga开发·terasic·agilex 5 soc·ghrd工程
sramdram13 小时前
FPGA系统SRAM外扩芯片选型与工程应用要点
fpga开发·sram·fpga系统·外扩芯片·sram外扩芯片
明德扬15 小时前
FPGA下载成功但上电不运行怎么查?配置Flash、启动模式与电源时序
fpga开发·fpga
努力搬砖的小H16 小时前
FPGA应用技巧之DDR3读写自检方案设计与IP仿真总结
经验分享·功能测试·fpga开发·modelsim·ddr3
bingcheby16 小时前
PS通过AXI总线控制PL的LED灯实验之四---编程下载调试
驱动开发·fpga开发·iar
国科安芯17 小时前
小卫星综合电子系统中RISC-V抗辐射MCU的功能安全与多接口集成架构分析
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
HUSTCH20211 天前
FPGA中的LUT和DSP
fpga开发
Riwuarua1 天前
从近似0基础开始FPGA开发 -- part.4 FPGA-PS(MicroBlaze)
fpga开发
zlinear数据采集卡2 天前
FRAM铁电存储器原理深度解析:D223校准参数的“永久保险箱“
arm开发·人工智能·stm32·单片机·fpga开发·开源