AXI4-Stream Broadcaster IP 详细介绍
概述
AXI4-Stream Broadcaster 属于 AXI4-Stream Infrastructure IP Suite的一部分。该 IP 核旨在将单一的 AXI4-Stream 输入数据流复制到多个 AXI4-Stream 输出数据流,支持高效的数据分发。它广泛应用于需要将同一数据流发送到多个从设备或处理模块的场景,例如视频处理、信号处理和数据包广播等。
该 IP 核的主要功能包括:
- 数据复制:将单一 AXI4-Stream 主接口的数据流复制到 2-16 个从接口。
- 数据重映射:支持对 TDATA 和 TUSER 信号的位级重映射,灵活调整输出数据格式。
- 高性能:组合数据路径设计,零延迟数据传输。
- 灵活配置:支持多种数据宽度和信号选项,适应不同应用需求。
主要特性
AXI4-Stream Broadcaster IP 具有以下关键特性:
-
AXI4-Stream 协议兼容性:
- 完全符合 AXI4-Stream 协议规范,支持所有 AXI4-Stream 定义的信号:
TVALID
、TREADY
、TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
为可选信号,用户可根据需求配置。- 支持可编程的
TDATA
、TID
、TDEST
和TUSER
宽度(TSTRB
和TKEEP
宽度为TDATA
宽度的 1/8)。
- 完全符合 AXI4-Stream 协议规范,支持所有 AXI4-Stream 定义的信号:
-
多输出支持:
- 支持将单一输入数据流复制到 2-16 个输出从接口(可通过 Vivado GUI 配置)。
- 每个输出接口支持独立的
TREADY
信号,允许不同的从设备以不同速率接收数据。
-
数据重映射功能:
- 提供可选的 TDATA 和 TUSER 信号重映射功能,允许用户选择输入接口的特定位到输出接口的 TDATA 或 TUSER 端口。
- 支持位级灵活配置,适用于需要调整数据格式的应用。
-
低延迟设计:
- 数据路径为组合逻辑设计,延迟为 0 时钟周期(假设输出接口的
TREADY
信号始终为高)。 - 背靠背传输延迟为 0 时钟周期,确保高吞吐量。
- 数据路径为组合逻辑设计,延迟为 0 时钟周期(假设输出接口的
-
时钟与复位:
- 支持单一时钟域(
ACLK
)和全局复位信号(ARESETn
)。 - 可选的每端口时钟使能信号(
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 Broadcaster IP 的核心功能是将单一 AXI4-Stream 输入数据流复制到多个输出数据流,其功能模块包括以下几个方面:
1. 数据复制
- 功能:将来自单一 AXI4-Stream 主接口(S00_AXIS)的输入数据流复制到多个从接口(M00_AXIS 至 M15_AXIS,最多 16 个)。
- 机制:输入数据(
TDATA
、TUSER
等)通过组合逻辑直接分发到所有输出接口,复制过程不引入额外时钟延迟。 - 控制:每个输出接口的
TREADY
信号独立控制数据流,输入接口的TREADY
由所有输出接口的TREADY
信号逻辑与(AND)决定,确保数据仅在所有输出接口准备好时传输。
2. 数据重映射
- 功能:支持对输入
TDATA
和TUSER
信号的位级重映射,允许用户自定义每个输出接口的TDATA
和TUSER
内容。 - 配置:通过 Vivado GUI 指定每个输出接口的
TDATA
和TUSER
位映射,例如将输入TDATA[31:0]
的特定位分配到输出M00_AXIS.TDATA[15:0]
。 - 应用:适用于需要调整数据格式或提取特定数据的场景,例如视频流中提取特定通道或数据包中提取特定字段。
3. 背压管理
- 功能:支持 AXI4-Stream 协议的背压机制,通过
TREADY
信号管理数据流。 - 注意:所有输出接口必须连接到有效的 AXI4-Stream 从设备,未连接的输出端口会导致
TREADY
信号悬空,从而阻塞数据流(参考)。
4. 信号支持
- 必选信号:
TVALID
、TREADY
。 - 可选信号:
TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
、TUSER
,可通过配置启用或禁用。 - 信号宽度:
TDATA
支持 8-512 位,TUSER
支持 1-128 位,TID
和TDEST
支持 1-32 位。
接口说明
以下是 AXI4-Stream Broadcaster IP 的主要接口及其功能:
-
输入接口(S00_AXIS):
- 类型:AXI4-Stream 主接口。
- 信号:
S00_AXIS_TVALID
:输入数据有效信号。S00_AXIS_TREADY
:输入接口准备好信号(由所有输出接口的TREADY
逻辑与生成)。S00_AXIS_TDATA
:输入数据,宽度可配置(8-512 位)。S00_AXIS_TSTRB
、TKEEP
:字节选通信号,宽度为TDATA
的 1/8。S00_AXIS_TLAST
:数据流结束信号。S00_AXIS_TID
、TDEST
:流标识和目标标识信号。S00_AXIS_TUSER
:用户定义信号,宽度可配置(1-128 位)。
- 功能:接收来自上游 AXI4-Stream 从设备的数据流。
-
输出接口(M00_AXIS 至 M15_AXIS):
- 类型:AXI4-Stream 从接口,最多 16 个。
- 信号:与输入接口类似,包括
Mxx_AXIS_TVALID
、TREADY
、TDATA
、TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 - 功能:将复制后的数据流发送到下游 AXI4-Stream 主设备,支持独立的
TREADY
控制。
-
时钟与复位接口:
ACLK
:全局时钟信号,所有接口共享同一时钟域。ARESETn
:全局低电平有效复位信号。ACLKEN
(可选):时钟使能信号,用于控制数据传输的时序。
配置方法
1. 在 Vivado 中添加 IP
- 打开 Vivado 的 Block Design,右键选择 Add IP。
- 搜索 AXI4-Stream Broadcaster,将其拖入设计。
- 双击 IP 核,打开定制化对话框(参考 PG085,图 4-1),配置以下参数:
- 输出接口数量:选择 2-16 个从接口。
- TDATA 宽度:设置输入和输出
TDATA
宽度(8-512 位)。 - TUSER 宽度:设置
TUSER
宽度(1-128 位,可选)。 - TID/TDEST 宽度:设置流标识和目标标识宽度(1-32 位,可选)。
- 信号使能:启用或禁用
TSTRB
、TKEEP
、TLAST
、TID
、TDEST
和TUSER
。 - TDATA/TUSER 重映射:为每个输出接口指定输入
TDATA
和TUSER
的位映射(可选)。 - 时钟使能:启用或禁用
ACLKEN
信号。
2. 连接与验证
- 将输入接口(S00_AXIS)连接到上游 AXI4-Stream 从设备。
- 将输出接口(M00_AXIS 至 Mxx_AXIS)连接到下游 AXI4-Stream 主设备,确保所有输出接口均已连接。
- 使用 Vivado 仿真工具验证数据流,检查
TVALID
、TREADY
和TLAST
信号的时序。 - 监控
TREADY
信号,确保无悬空端口导致数据流阻塞(参考)。
资源利用情况
根据 PG085 和相关资源利用数据,AXI4-Stream Broadcaster IP 的资源占用取决于配置参数(如输出接口数量、数据宽度和信号使能)。以下是一些典型配置的资源利用情况(基于 Vivado 生成数据):
- 设备系列:Artix-7、Kintex-7、Zynq-7000 等。
- 资源类型:
- LUT(查找表):随输出接口数量和数据宽度增加,典型值为 100-1000。
- FF(触发器):通常较少,典型值为 50-500。
- BRAM:通常不使用,除非启用额外的缓冲逻辑。
- DSP 切片:不使用。
- 配置示例:
- 2 个输出接口、32 位 TDATA、无重映射:约 150 LUT、100 FF、无 BRAM。
- 8 个输出接口、256 位 TDATA、启用 TDATA 重映射:约 800 LUT、300 FF、无 BRAM。
具体资源利用数据需参考 Vivado IP 核生成报告,建议用户在设计时根据目标设备和配置参数进行验证。
应用场景
AXI4-Stream Broadcaster IP 适用于以下场景:
-
视频处理:
- 将单一视频流(符合 AXI4-Stream Video 协议)分发到多个处理模块,例如颜色空间转换、图像缩放或显示输出。
- 支持实时视频处理,确保低延迟和高吞吐量。
-
信号处理:
- 将输入信号数据流分发到多个并行处理单元,例如数字信号处理器(DSP)或滤波器。
- 适用于雷达、通信和音频处理系统。
-
数据包广播:
-
调试与监控:
- 将数据流复制到监控模块,用于实时分析或记录,而不干扰主数据路径。
注意事项
-
TREADY 信号管理:
-
数据宽度显示问题:
-
时钟域:
- 该 IP 核仅支持单一时钟域,如需跨时钟域传输,需配合 AXI4-Stream Clock Converter IP 使用(参考 PG085)。
-
重映射配置:
- 配置 TDATA/TUSER 重映射时,需仔细验证位映射逻辑,避免数据错误。
- 重映射会增加 LUT 资源占用,建议在资源受限时谨慎使用。
总结
AXI4-Stream Broadcaster IP 是一款高效、灵活的 AXI4-Stream 基础设施 IP 核,专为单一数据流到多输出数据流的复制而设计。其零延迟的组合数据路径、支持 2-16 个输出接口以及可选的 TDATA/TUSER 重映射功能,使其在视频处理、信号处理和数据包广播等领域具有广泛应用前景。
FPGA设计工具推荐
-
SZ901:
SZ901 是一款基于XVC协议的FPGA网络下载器。- 最高支持53M
- 支持4路JTAG独立使用
- 支持端口合并
- 支持国产FLASH烧写
- 下载器无限扩展
- 配备专属程序固化软件,一键烧写,能大大减小程序固化时间!
-
SZ501(PRO_A7):
- SZ501 是一款适合初学者FPGA开发板,包含低速高速接口!
- 双网口(RGMII)
- 双SFP+
- DDR
- UART
- IIC