AXI4-Stream Combiner IP 详细介绍
概述
AXI4-Stream Combiner 属于 AXI4-Stream Infrastructure IP Suite(参考文档 PG085)的一部分。该 IP 核旨在将多个较窄的 AXI4-Stream 输入数据流(从接口)拼接成一个较宽的 AXI4-Stream 输出数据流(主接口),实现数据流的聚合。它广泛应用于需要将多个数据流合并为单一数据流的场景,例如视频处理中将红、绿、蓝(RGB)视频流合并为单一 RGB 流,或在信号处理中合并多通道数据。
该 IP 核的主要功能包括:
- 数据拼接:将 2-16 个 AXI4-Stream 从接口的输入数据流拼接为一个输出数据流。
- 信号管理:支持
TDATA
、TSTRB
、TKEEP
和TUSER
信号的拼接,TLAST
、TID
和TDEST
信号从主从接口(Primary Slave Interface)获取。 - 错误检测:支持检测输入从接口之间的
TLAST
、TID
或TDEST
信号不匹配情况。 - 高性能:组合逻辑设计,零延迟数据传输(假设
TREADY
始终为高)。
主要特性
AXI4-Stream Combiner IP 具有以下关键特性:
-
AXI4-Stream 协议兼容性:
- 完全符合 AXI4-Stream 协议规范,支持所有 AXI4-Stream 定义的信号:
TVALID
、TREADY
、TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
为可选信号,用户可通过配置启用或禁用。- 支持可编程的
TDATA
宽度(每从接口 1-64 字节,输出为主接口数量与从接口宽度的乘积)、TUSER
宽度(1-128 位)、TID
和TDEST
宽度(1-32 位)。
- 完全符合 AXI4-Stream 协议规范,支持所有 AXI4-Stream 定义的信号:
-
多输入支持:
- 支持 2-16 个 AXI4-Stream 从接口(S00_AXIS 至 S15_AXIS),通过 Vivado GUI 配置。
- 所有从接口的
TVALID
信号必须同时有效,输出接口的TVALID
才会置高,确保数据同步。
-
数据拼接功能:
- 将多个从接口的
TDATA
、TSTRB
、TKEEP
和TUSER
信号按顺序拼接为单一输出数据流。 - 输出
TDATA
宽度为所有从接口TDATA
宽度的总和(例如,4 个 8 位从接口生成 32 位输出)。 TLAST
、TID
和TDEST
信号从用户指定的主从接口(Primary Slave Interface)获取,默认为 S00_AXIS。
- 将多个从接口的
-
错误检测:
- 支持检测所有从接口的
TLAST
、TID
和TDEST
信号是否一致,若不一致,可通过状态寄存器或中断信号报告错误。 - 错误检测功能可通过配置启用或禁用。
- 支持检测所有从接口的
-
低延迟设计:
- 数据路径为组合逻辑设计,假设输出
TREADY
始终为高,传输延迟为 0 时钟周期。 - 支持背靠背传输,最大吞吐量接近时钟频率。
- 数据路径为组合逻辑设计,假设输出
-
时钟与复位:
- 支持单一时钟域(
ACLK
),所有从接口和主接口共享同一时钟。 - 提供低电平有效复位信号(
ARESETn
),同步到ACLK
。 - 可选的时钟使能信号(
ACLKEN
),用于精细化时钟控制。
- 支持单一时钟域(
-
工具与设备支持:
- 设计工具: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 设计套件免费提供,无需额外费用。
功能模块
AXI4-Stream Combiner IP 的核心功能是将多个较窄的 AXI4-Stream 输入数据流拼接为一个较宽的输出数据流,其功能模块包括以下几个方面:
1. 数据拼接
- 功能:将来自多个从接口(S00_AXIS 至 S15_AXIS)的
TDATA
、TSTRB
、TKEEP
和TUSER
信号拼接为单一主接口(M00_AXIS)的输出数据流。 - 机制:
- 输入数据按从接口编号顺序拼接,例如,S00_AXIS 的
TDATA
占用输出TDATA
的最低位,S01_AXIS 次之,依此类推。 - 输出
TDATA
宽度为所有从接口TDATA
宽度的总和,TUSER
类似。 TLAST
、TID
和TDEST
信号从主从接口(可配置,默认为 S00_AXIS)获取。
- 输入数据按从接口编号顺序拼接,例如,S00_AXIS 的
- 控制:所有从接口的
TVALID
必须同时为高,输出TVALID
才会置高;输出TREADY
广播到所有从接口,确保同步传输。
2. 错误检测
- 功能:检测所有从接口的
TLAST
、TID
和TDEST
信号是否一致。 - 机制:
- 若检测到信号不匹配(例如,S00_AXIS 的
TLAST
为高,而 S01_AXIS 为低),IP 核会置位错误标志。 - 错误状态可通过 AXI4-Lite 控制接口(若启用)读取,或通过中断信号报告。
- 若检测到信号不匹配(例如,S00_AXIS 的
- 应用:确保输入数据流的一致性,适用于视频流或多通道信号处理。
3. 背压管理
- 功能:通过 AXI4-Stream 协议的
TREADY
信号管理数据流。 - 机制:输出接口的
TREADY
信号广播到所有从接口,只有当输出接口准备好(M00_AXIS_TREADY
为高)时,从接口才能传输数据。 - 注意:所有从接口必须同时提供有效数据(
TVALID
为高),否则数据流会阻塞。
4. 信号支持
- 必选信号:
TVALID
、TREADY
。 - 可选信号:
TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
、TUSER
,可通过配置启用或禁用。 - 信号宽度:
- 从接口
TDATA
:1-64 字节(8-512 位)。 - 输出
TDATA
:从接口数量 × 从接口TDATA
宽度。 TUSER
:1-128 位,输出为从接口TUSER
宽度的总和。TID
和TDEST
:1-32 位,从主从接口获取。
- 从接口
接口说明
以下是 AXI4-Stream Combiner IP 的主要接口及其功能:
-
输入接口(S00_AXIS 至 S15_AXIS):
- 类型:AXI4-Stream 从接口,支持 2-16 个。
- 信号:
Sxx_AXIS_TVALID
:输入数据有效信号。Sxx_AXIS_TREADY
:输入接口准备好信号(由输出TREADY
广播)。Sxx_AXIS_TDATA
:输入数据,宽度可配置(8-512 位)。Sxx_AXIS_TSTRB
、TKEEP
:字节选通信号,宽度为TDATA
的 1/8。Sxx_AXIS_TLAST
:数据流结束信号。Sxx_AXIS_TID
、TDEST
:流标识和目标标识信号。Sxx_AXIS_TUSER
:用户定义信号,宽度可配置(1-128 位)。
- 功能:接收来自上游 AXI4-Stream 主设备的数据流。
-
输出接口(M00_AXIS):
- 类型:AXI4-Stream 主接口。
- 信号:
M00_AXIS_TVALID
:输出数据有效信号(需所有从接口TVALID
同时为高)。M00_AXIS_TREADY
:输出接口准备好信号。M00_AXIS_TDATA
:输出数据,宽度为所有从接口TDATA
宽度的总和。M00_AXIS_TSTRB
、TKEEP
:字节选通信号,宽度为输出TDATA
的 1/8。M00_AXIS_TLAST
:数据流结束信号,从主从接口获取。M00_AXIS_TID
、TDEST
:流标识和目标标识信号,从主从接口获取。M00_AXIS_TUSER
:用户定义信号,宽度为所有从接口TUSER
宽度的总和。
- 功能:将拼接后的数据流发送到下游 AXI4-Stream 从设备。
-
时钟与复位接口:
ACLK
:全局时钟信号,所有接口共享同一时钟域。ARESETn
:全局低电平有效复位信号,同步到ACLK
。ACLKEN
(可选):时钟使能信号,用于控制数据传输的时序。
-
AXI4-Lite 控制接口(可选):
- 类型:32 位 AXI4-Lite 从接口,异步于 AXI4-Stream 时钟。
- 功能:用于配置主从接口(Primary Slave Interface)或读取错误状态。
- 信号:包括
S_AXI_AWADDR
、AWVALID
、AWREADY
、WDATA
、WVALID
、WREADY
、BRESP
、BVALID
、BREADY
、ARADDR
、ARVALID
、ARREADY
、RDATA
、RRESP
、RVALID
、RREADY
。
配置方法
1. 在 Vivado 中添加 IP
- 打开 Vivado 的 Block Design,右键选择 Add IP。
- 搜索 AXI4-Stream Combiner,将其拖入设计。
- 双击 IP 核,打开定制化对话框(参考 PG085,图 2-3),配置以下参数:
- 从接口数量:选择 2-16 个从接口。
- TDATA 宽度:设置每个从接口的
TDATA
宽度(1-64 字节,8-512 位)。 - TUSER 宽度:设置每个从接口的
TUSER
宽度(1-128 位,可选)。 - TID/TDEST 宽度:设置流标识和目标标识宽度(1-32 位,可选)。
- 主从接口:指定
TLAST
、TID
和TDEST
信号的来源接口(默认为 S00_AXIS)。 - 信号使能:启用或禁用
TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 - 错误检测:启用或禁用
TLAST
、TID
和TDEST
不匹配检测。 - AXI4-Lite 控制接口:启用或禁用 AXI4-Lite 接口。
- 时钟使能:启用或禁用
ACLKEN
信号。
2. 连接与验证
- 将从接口(S00_AXIS 至 Sxx_AXIS)连接到上游 AXI4-Stream 主设备。
- 将主接口(M00_AXIS)连接到下游 AXI4-Stream 从设备。
- 确保所有从接口的数据流同步(
TVALID
同时为高),否则可能导致数据流阻塞。 - 使用 Vivado 仿真工具验证数据拼接,检查
TVALID
、TREADY
、TLAST
和TDATA
信号的时序。 - 若启用错误检测,验证错误状态寄存器或中断信号的行为。
资源利用情况
根据 PG085 和相关资源利用数据(参考 PG085 表 2-3),AXI4-Stream Combiner IP 的资源占用取决于配置参数(如从接口数量、数据宽度和错误检测功能)。以下是一些典型配置的资源利用情况(基于 Vivado 生成数据):
- 设备系列:Artix-7、Kintex-7、Zynq-7000 等。
- 资源类型:
- LUT(查找表):随从接口数量和数据宽度增加,典型值为 1-10。
- FF(触发器):通常较少,典型值为 1-10。
- BRAM:不使用。
- DSP 切片:不使用。
- 配置示例:
- 2 个从接口、16 位 TDATA、无错误检测:约 1 LUT、1 FF、无 BRAM。
- 4 个从接口、32 位 TDATA、启用错误检测:约 2 LUT、1 FF、无 BRAM。
- 8 个从接口、64 位 TDATA、启用错误检测和 AXI4-Lite 接口:约 4 LUT、1 FF、无 BRAM。
具体资源利用数据需参考 Vivado IP 核生成报告,建议用户在设计时根据目标设备和配置参数进行验证。
应用场景
AXI4-Stream Combiner IP 适用于以下场景:
-
视频处理:
- 将多个视频流(如红、绿、蓝通道)合并为单一 RGB 流,简化下游处理(参考 PG085,图 2-3)。
- 适用于实时视频处理系统,例如视频编码、显示或图像处理。
-
信号处理:
- 将多通道信号数据流(如音频或传感器数据)合并为单一数据流,便于统一处理。
- 适用于雷达、通信和多通道数据采集系统。
-
数据聚合:
- 将多个低带宽数据流合并为高带宽数据流,提高系统吞吐量。
- 适用于网络数据包处理或大数据流传输。
-
调试与验证:
- 合并多个数据流以便于监控或记录,简化系统调试流程。
注意事项
-
数据同步:
- 所有从接口的
TVALID
信号必须同时为高,否则输出TVALID
不会置高,导致数据流阻塞(参考 PG085,第 12 页)。 - 建议在上游添加 AXI4-Stream Data FIFO IP,以确保数据流同步(参考 web:16)。
- 所有从接口的
-
TREADY 信号管理:
- 输出接口的
TREADY
信号广播到所有从接口,确保下游设备准备好接收数据。 - 若下游设备处理速度不一致,可能导致背压,建议配合 AXI4-Stream Data FIFO 使用。
- 输出接口的
-
主从接口选择:
TLAST
、TID
和TDEST
信号从主从接口获取,需确保主从接口的信号正确反映数据流状态。- 可通过 AXI4-Lite 接口动态配置主从接口(若启用)。
-
错误检测:
- 启用错误检测时,需监控错误状态寄存器或中断信号,及时处理
TLAST
、TID
或TDEST
不匹配的情况。 - 若无需错误检测,禁用该功能可减少资源占用。
- 启用错误检测时,需监控错误状态寄存器或中断信号,及时处理
-
时钟域:
- 该 IP 核仅支持单一时钟域,如需跨时钟域传输,需配合 AXI4-Stream Clock Converter IP 使用(参考 PG085)。
总结
AXI4-Stream Combiner IP 是一款高效、灵活的 AXI4-Stream 基础设施 IP 核,专为将多个较窄的数据流拼接为单一较宽数据流而设计。其支持 2-16 个从接口、零延迟的组合逻辑设计以及可选的错误检测功能,使其在视频处理、信号处理和数据聚合等领域具有广泛应用前景。
用户在使用时应注意输入数据流的同步、主从接口的正确配置以及下游设备的背压管理,并通过仿真验证设计可靠性。
FPGA设计工具推荐
-
SZ901:
SZ901 是一款基于XVC协议的FPGA网络下载器。- 最高支持53M
- 支持4路JTAG独立使用
- 支持端口合并
- 支持国产FLASH烧写
- 下载器无限扩展
- 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!
-
SZ501(PRO_A7):
- SZ501 是一款适合初学者FPGA开发板,包含低速高速接口!
- 双网口(RGMII)
- 双SFP+
- DDR
- UART
- IIC