AXI4-Stream Infrastructure IP Suite 详细介绍
概述
AXI4-Stream Infrastructure IP Suite 旨在为 AXI4-Stream 协议的系统设计提供基础设施支持。该套件包含多个独立但互补的 IP 核,用于处理 AXI4-Stream 数据流的各种常见任务,例如数据宽度转换、时钟域转换、数据缓冲、数据分发和数据合并等。这些 IP 核广泛应用于 FPGA 和 SoC 系统设计,特别是在视频处理、信号处理、网络数据包处理和硬件加速器集成等领域。
该 IP 套件的核心目标是简化 AXI4-Stream 数据流的处理,提供高性能、低延迟的解决方案,同时保持与 AXI4-Stream 协议的完全兼容性。以下是套件中包含的主要 IP 核:
- AXI4-Stream Data Width Converter:调整数据流宽度(Upsizing 或 Downsizing)。
- AXI4-Stream Clock Converter:支持跨时钟域数据传输。
- AXI4-Stream Data FIFO:提供数据流缓冲和突发吸收。
- AXI4-Stream Broadcaster:将单一数据流复制到多个输出。
- AXI4-Stream Combiner:将多个数据流合并为单一数据流。
- AXI4-Stream Register Slice:插入寄存器管道以优化时序。
- AXI4-Stream Switch:实现动态路由和多路复用。
- AXI4-Stream Subset Converter:处理信号子集的转换。
主要特性
AXI4-Stream Infrastructure IP Suite 具有以下关键特性:
-
AXI4-Stream 协议兼容性:
- 所有 IP 核完全符合 AXI4-Stream 协议规范,支持标准信号:
TVALID
、TREADY
、TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 - 支持可选信号配置,用户可根据需求启用或禁用
TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 - 支持可编程的信号宽度:
TDATA
:8-512 位(1-64 字节)。TUSER
:1-128 位。TID
和TDEST
:1-32 位。
- 所有 IP 核完全符合 AXI4-Stream 协议规范,支持标准信号:
-
模块化设计:
- 套件中的每个 IP 核专注于特定功能(如宽度转换、缓冲、路由等),可独立使用或组合使用。
- 支持灵活的配置,适应不同数据宽度、时钟域和性能需求。
-
高性能与低延迟:
- 大多数 IP 核采用组合逻辑或最小缓冲设计,延迟低(通常 0-2 时钟周期)。
- 支持背靠背传输,最大吞吐量接近时钟频率。
- 提供寄存器管道选项(Register Slice),优化高频设计的时序。
-
跨时钟域支持:
- 部分 IP 核(如 AXI4-Stream Clock Converter 和 Data FIFO)支持异步时钟域,适用于跨时钟域传输。
- 异步 FIFO 和寄存器同步机制确保数据完整性。
-
资源优化:
- 支持多种实现方式(如块存储器、分布式存储器),平衡资源占用与性能。
- 资源占用可通过配置参数(如 FIFO 深度、数据宽度)优化。
-
工具与设备支持:
- 设计工具:Vivado Design Suite、ISE Design Suite。
- 支持设备:Artix-7、Kintex-7、Kintex UltraScale、Kintex UltraScale+、Virtex-7、Virtex UltraScale、Virtex UltraScale+、Zynq-7000、Zynq UltraScale+ MPSoC。
- 该 IP 套件随 Vivado 和 ISE 设计套件免费提供,无需额外费用。
包含的 IP 核
AXI4-Stream Infrastructure IP Suite 包含以下主要 IP 核,每个 IP 核针对特定功能进行了优化
1. AXI4-Stream Data Width Converter
- 功能:将 AXI4-Stream 数据流的
TDATA
和TUSER
宽度从输入转换为输出,支持宽度增大(Upsizing)或减小(Downsizing)。 - 特性:
- 输入/输出
TDATA
宽度:8-512 位。 - 自动调整
TSTRB
和TKEEP
信号,TLAST
正确传播。 - 低延迟设计(0-1 时钟周期)。
- 输入/输出
- 应用:适配不同宽度的接口,如视频流宽度调整或网络数据包带宽转换。
2. AXI4-Stream Clock Converter
- 功能:支持 AXI4-Stream 数据流在不同时钟域之间的传输。
- 特性:
- 支持异步时钟(
S_ACLK
和M_ACLK
)。 - 提供 FIFO 模式(可配置深度 16-2048 字)和寄存器管道模式。
- FIFO 模式支持高吞吐量,寄存器管道模式支持低延迟。
- 支持异步时钟(
- 应用:跨时钟域通信,如 Zynq SoC 中 PL 和 PS 之间的数据传输。
3. AXI4-Stream Data FIFO
- 功能:为 AXI4-Stream 数据流提供缓冲,吸收突发传输或速率差异。
- 特性:
- FIFO 深度:16-16384 字,可配置。
- 支持块存储器(BRAM)或分布式存储器(LUT/FF)实现。
- 支持异步时钟域和 First-Word Fall-Through (FWFT) 模式。
- 提供状态信号(
FULL
、ALMOST_FULL
、EMPTY
、ALMOST_EMPTY
)。
- 应用:平滑数据流、背压管理、跨时钟域缓冲。
4. AXI4-Stream Broadcaster
- 功能:将单一 AXI4-Stream 输入数据流复制到 2-16 个输出数据流。
- 特性:
- 支持
TDATA
和TUSER
的位级重映射。 - 零延迟组合逻辑设计。
- 每个输出接口支持独立的
TREADY
信号。
- 支持
- 应用:视频流分发、信号处理中的多路输出、数据包广播。
5. AXI4-Stream Combiner
- 功能:将 2-16 个 AXI4-Stream 输入数据流拼接为单一输出数据流。
- 特性:
- 输出
TDATA
宽度为所有输入TDATA
宽度的总和。 - 支持
TLAST
、TID
和TDEST
不匹配检测。 - 零延迟组合逻辑设计。
- 输出
- 应用:视频流合并(如 RGB 通道)、多通道信号聚合。
6. AXI4-Stream Register Slice
- 功能:在 AXI4-Stream 数据路径中插入寄存器管道,优化时序或隔离时钟域。
- 特性:
- 增加 1-2 时钟周期延迟,提高最大时钟频率(Fmax)。
- 支持所有 AXI4-Stream 信号的透明传递。
- 应用:高频设计、长路径时序优化。
7. AXI4-Stream Switch
- 功能:实现 AXI4-Stream 数据流的动态路由,支持多输入多输出(MI/SI)配置。
- 特性:
- 支持 1-16 个主接口(MI)和从接口(SI)。
- 通过 AXI4-Lite 控制接口配置路由表。
- 支持仲裁机制(优先级或轮询)。
- 应用:数据流多路复用、动态路由、网络交换。
8. AXI4-Stream Subset Converter
- 功能:处理 AXI4-Stream 信号子集的转换,例如添加、删除或重新映射信号。
- 特性:
- 支持
TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
的灵活配置。 - 低资源占用,组合逻辑设计。
- 支持
- 应用:信号格式调整、协议兼容性转换。
功能概述
AXI4-Stream Infrastructure IP Suite 的功能围绕 AXI4-Stream 数据流的处理和优化,具体包括:
-
数据流调整:
- 数据宽度转换(Data Width Converter)、信号子集处理(Subset Converter)。
- 确保上下游模块的接口兼容性。
-
数据流缓冲:
- 数据缓冲(Data FIFO)、突发吸收、背压管理。
- 平滑数据流,适应速率差异。
-
时钟域管理:
- 跨时钟域传输(Clock Converter、Data FIFO)。
- 支持异步时钟域,确保数据同步。
-
数据流分发与合并:
- 数据分发(Broadcaster)、数据合并(Combiner)。
- 支持多路输入/输出场景,如视频流或信号处理。
-
时序优化:
- 寄存器管道(Register Slice)、动态路由(Switch)。
- 提高系统时钟频率,优化长路径时序。
-
协议一致性:
- 所有 IP 核保持 AXI4-Stream 协议的完整性,确保
TVALID
、TREADY
握手机制和信号正确传递。
- 所有 IP 核保持 AXI4-Stream 协议的完整性,确保
应用场景
AXI4-Stream Infrastructure IP Suite 适用于以下场景:
-
视频处理:
- 数据宽度转换:调整视频流宽度(如 24 位 RGB 到 32 位)。
- 数据分发:将视频流分发到多个处理模块(如显示、编码)。
- 数据合并:将多通道视频流(如 RGB)合并为单一流。
- 跨时钟域:支持视频处理模块与显示接口的异步通信。
-
信号处理:
- 数据缓冲:吸收多通道信号的突发传输。
- 数据分发:将信号数据分发到多个 DSP 模块。
- 宽度转换:重组多通道数据以适配处理单元。
-
网络数据包处理:
- 数据路由:使用 AXI4-Stream Switch 实现动态数据包路由。
- 宽度转换:适配不同带宽的网络接口。
- 数据缓冲:平滑高速数据包流。
-
SoC 集成:
- 跨时钟域传输:Zynq SoC 中 PL 和 PS 之间的 AXI4-Stream 数据流。
- 数据流管理:支持硬件加速器与嵌入式 CPU 的高效通信。
- 时序优化:提高复杂 SoC 设计的时钟频率。
-
调试与验证:
- 数据分发:复制数据流到监控模块,便于实时分析。
- 信号子集转换:调整信号格式以适配调试工具。
配置方法
1. 在 Vivado 中添加 IP
- 打开 Vivado 的 Block Design,右键选择 Add IP。
- 搜索 AXI4-Stream Infrastructure 或具体 IP 核名称(如 AXI4-Stream Data FIFO),将其拖入设计。
- 双击 IP 核,打开定制化对话框,配置参数:
- 信号使能:启用或禁用
TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 - 数据宽度:设置
TDATA
(8-512 位)、TUSER
(1-128 位)、TID
/TDEST
(1-32 位)。 - 时钟模式:选择同步(单一
ACLK
)或异步(S_ACLK
和M_ACLK
)时钟。 - FIFO 深度(如适用):选择 16-16384 字。
- 实现方式(如适用):选择块存储器、分布式存储器或寄存器管道。
- 其他选项:启用 FWFT、错误检测、AXI4-Lite 控制接口等。
- 信号使能:启用或禁用
2. 连接与验证
- 将输入接口(Sxx_AXIS)连接到上游 AXI4-Stream 主设备,输出接口(Mxx_AXIS)连接到下游 AXI4-Stream 从设备。
- 确保时钟(
ACLK
、S_ACLK
、M_ACLK
)和复位(ARESETn
、S_ARESETn
、M_ARESETn
)正确分配。 - 使用 Vivado 仿真工具验证数据流,检查
TVALID
、TREADY
、TLAST
和其他信号的时序。 - 监控背压行为(
TREADY
)、FIFO 状态(FULL
、EMPTY
)或错误信号(如 Combiner 的不匹配检测)。
3. 组合使用
- 根据设计需求组合多个 IP 核,例如:
- 使用 Data FIFO + Clock Converter 实现跨时钟域缓冲。
- 使用 Broadcaster + Data Width Converter 实现数据分发和宽度调整。
- 使用 Switch + Register Slice 实现动态路由和时序优化。
- 确保各 IP 核的配置参数(如数据宽度、信号使能)一致。
资源利用情况
根据 PG085 和相关资源利用数据,AXI4-Stream Infrastructure IP Suite 的资源占用因具体 IP 核和配置参数而异。以下是典型资源利用情况(基于 Vivado 生成数据):
- 设备系列:Artix-7、Kintex-7、Zynq-7000 等。
- 资源类型:
- LUT(查找表):随数据宽度、FIFO 深度和功能复杂性增加,典型值为 50-1000。
- FF(触发器):用于控制逻辑、寄存器管道和 FIFO,典型值为 50-800。
- BRAM:Data FIFO 和 Clock Converter 的 FIFO 模式可能使用 BRAM(深度 ≥ 512 时),其他 IP 核通常不使用。
- DSP 切片:不使用。
- 配置示例:
- Data Width Converter(32 位到 64 位):约 100 LUT、80 FF、无 BRAM。
- Data FIFO(32 位 TDATA、512 字深度):约 100 LUT、100 FF、1-2 BRAM。
- Broadcaster(4 个输出、32 位 TDATA):约 200 LUT、150 FF、无 BRAM。
- Switch(4x4 路由):约 500 LUT、300 FF、无 BRAM。
注意事项
-
协议一致性:
- 确保所有 IP 核的信号配置(如
TDATA
宽度、信号使能)与上下游设备一致,避免数据截断或协议错误。 - 正确处理
TLAST
信号,特别是在宽度转换、合并或分发场景中。
- 确保所有 IP 核的信号配置(如
-
时钟域管理:
- 对于跨时钟域传输,使用 Clock Converter 或 Data FIFO,并确保输入/输出时钟频率满足吞吐量需求(输出频率建议不低于输入的 75%)。
- 同步时钟域设计需确保单一
ACLK
满足所有模块的时序要求。
-
背压管理:
- 监控
TREADY
信号,确保下游设备及时响应,避免数据流阻塞。 - 对于突发传输或速率不匹配场景,合理配置 Data FIFO 深度。
- 监控
-
复位同步:
- 确保复位信号(
ARESETn
、S_ARESETn
、M_ARESETn
)在各自时钟域内正确同步,推荐使用异步复位同步释放机制。
- 确保复位信号(
总结
AXI4-Stream Infrastructure IP Suite 是一套功能全面且高效的 AXI4-Stream 基础设施 IP 核集合,涵盖数据宽度转换、时钟域转换、数据缓冲、分发、合并、路由和时序优化等功能。其模块化设计、高性能低延迟特性以及与 AXI4-Stream 协议的完全兼容性,使其在视频处理、信号处理、网络数据包处理和 SoC 集成等领域具有广泛应用前景。
FPGA设计工具推荐
-
SZ901:
SZ901 是一款基于XVC协议的FPGA网络下载器。- 最高支持53M
- 支持4路JTAG独立使用
- 支持端口合并
- 支持国产FLASH烧写
- 下载器无限扩展
- 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!
-
SZ501(PRO_A7):
- SZ501 是一款适合初学者FPGA开发板,包含低速高速接口!
- 双网口(RGMII)
- 双SFP+
- DDR
- UART
- IIC