渊
2026-10-21
点 赞
0
热 度
4
评 论
0

FPGA基础——AXI4传输

  1. 首页
  2. FPGA基础——AXI4传输

AXI4 是一种 FPGA 中常用的片内高速总线协议,其分为三种总线接口:AXI4 Stream(即 AXIS)、AXI4 Lite 和 AXI4 (Full)。(以下简称为 AXIS、AXI Lite 和 AXI)

1.三种接口的区分

三种总线接口之间的区别也非常明显,他们各自的职能如下:

AXI 是按地址可以批量读写,适合 DDR、大块数据搬运

AXI Lite 是按地址单次单包读写,适合配置和读取寄存器、状态

AXIS 是连续数据流传输,适合包传输和流水线传输

三者的对比可以直观列表如下:

对比项

AXI4

AXI4-Lite

AXI4-Stream

访问方式

存储器映射,带地址

存储器映射,带地址

数据流传输,无地址

读写能力

读写

读写

单方向传输

突发传输 Burst

支持

不支持

无地址,可连续传输

通道数量

5

5

1

事务 ID

支持,可区分多笔事务

不支持

支持,用于区分不同逻辑数据流

典型用途

高带宽互联

状态、寄存器读写

包传输、数据流传输

2.AXI的工作原理

三者也有共同点,他们都是依靠 valid 和 ready 信号握手来工作的,valid 表示数据是否有效,ready 表示是否可以接收。AXIS 通道较为简单就以 AXIS 为例,发送端数据准备妥当后 valid 信号置 1,接收端准备接收数据时 ready 置 1,ready 信号由接收端发送给发送端,valid 信号则是由发送端发送给接收端;valid 和 ready 均为 1 时开始传输数据。一方结束时将自己的信号置 0 表示目前不参与传输;其中,valid 置 0 表示当前没有有效数据,ready 置 0 表示接收端暂时不接收数据,特别的,ready 置 0 而 valid 仍为 1 的情况被称为反压。通过反压可以控制数据流中的数据传输节奏。在有些设计中会启用 LAST 信号,LAST 信号主要用于标注写边界,在 AXI 突发传输和 AXIS 传输中 LAST 用于表示该次传输的最后一包。

尽管 AXI 和 AXI Lite 比 AXIS 通道多,但是其工作原理依然相通,其五个通道及通道职能如下:

通道

含义

数据方向

AW

写地址及写入参数

主 --> 从

W

写数据

主 --> 从

B

写响应

从 --> 主

AR

读地址及读参数

主 --> 从

R

读数据及读响应

从 --> 主

值得注意的是 AW 和 W 通道是独立握手的,二者数据都可能先到。一次完整的突发写入过程如下:

AW 发送起始地址、写入长度、每拍大小和突发类型;W 逐拍发送数据,可以使用 WLAST 标注数据边界;B 负责接收写入响应,用于检测是否成功写入。读的过程也类似,只不过读响应从 R 通道直接接收。

AXI 和 AXI Lite 的区别主要是在工作效率上,AXI Lite 每次仅能操作一包数据,AXI 则支持一次操作多包数据(即 burst 模式)


我自己用的账号

渊

enfj 主人公

不具版权性
不具时效性

文章内容不具时效性。若文章内容有错误之处,请您批评指正。

目录

欢迎来到Henry的站点,为您导航全站动态

22 文章数
4 分类数
1 评论数
5标签数