[AXIS] AXI4-Stream Combiner

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 从接口的输入数据流拼接为一个输出数据流。
  • 信号管理:支持 TDATATSTRBTKEEPTUSER 信号的拼接,TLASTTIDTDEST 信号从主从接口(Primary Slave Interface)获取。
  • 错误检测:支持检测输入从接口之间的 TLASTTIDTDEST 信号不匹配情况。
  • 高性能:组合逻辑设计,零延迟数据传输(假设 TREADY 始终为高)。

主要特性

AXI4-Stream Combiner IP 具有以下关键特性:

  1. AXI4-Stream 协议兼容性

    • 完全符合 AXI4-Stream 协议规范,支持所有 AXI4-Stream 定义的信号:TVALIDTREADYTDATATSTRBTKEEPTLASTTIDTDESTTUSER
    • TDATATSTRBTKEEPTLASTTIDTDESTTUSER 为可选信号,用户可通过配置启用或禁用。
    • 支持可编程的 TDATA 宽度(每从接口 1-64 字节,输出为主接口数量与从接口宽度的乘积)、TUSER 宽度(1-128 位)、TIDTDEST 宽度(1-32 位)。
  2. 多输入支持

    • 支持 2-16 个 AXI4-Stream 从接口(S00_AXIS 至 S15_AXIS),通过 Vivado GUI 配置。
    • 所有从接口的 TVALID 信号必须同时有效,输出接口的 TVALID 才会置高,确保数据同步。
  3. 数据拼接功能

    • 将多个从接口的 TDATATSTRBTKEEPTUSER 信号按顺序拼接为单一输出数据流。
    • 输出 TDATA 宽度为所有从接口 TDATA 宽度的总和(例如,4 个 8 位从接口生成 32 位输出)。
    • TLASTTIDTDEST 信号从用户指定的主从接口(Primary Slave Interface)获取,默认为 S00_AXIS。
  4. 错误检测

    • 支持检测所有从接口的 TLASTTIDTDEST 信号是否一致,若不一致,可通过状态寄存器或中断信号报告错误。
    • 错误检测功能可通过配置启用或禁用。
  5. 低延迟设计

    • 数据路径为组合逻辑设计,假设输出 TREADY 始终为高,传输延迟为 0 时钟周期。
    • 支持背靠背传输,最大吞吐量接近时钟频率。
  6. 时钟与复位

    • 支持单一时钟域(ACLK),所有从接口和主接口共享同一时钟。
    • 提供低电平有效复位信号(ARESETn),同步到 ACLK
    • 可选的时钟使能信号(ACLKEN),用于精细化时钟控制。
  7. 工具与设备支持

    • 设计工具: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)的 TDATATSTRBTKEEPTUSER 信号拼接为单一主接口(M00_AXIS)的输出数据流。
  • 机制
    • 输入数据按从接口编号顺序拼接,例如,S00_AXIS 的 TDATA 占用输出 TDATA 的最低位,S01_AXIS 次之,依此类推。
    • 输出 TDATA 宽度为所有从接口 TDATA 宽度的总和,TUSER 类似。
    • TLASTTIDTDEST 信号从主从接口(可配置,默认为 S00_AXIS)获取。
  • 控制:所有从接口的 TVALID 必须同时为高,输出 TVALID 才会置高;输出 TREADY 广播到所有从接口,确保同步传输。

2. 错误检测

  • 功能:检测所有从接口的 TLASTTIDTDEST 信号是否一致。
  • 机制
    • 若检测到信号不匹配(例如,S00_AXIS 的 TLAST 为高,而 S01_AXIS 为低),IP 核会置位错误标志。
    • 错误状态可通过 AXI4-Lite 控制接口(若启用)读取,或通过中断信号报告。
  • 应用:确保输入数据流的一致性,适用于视频流或多通道信号处理。

3. 背压管理

  • 功能:通过 AXI4-Stream 协议的 TREADY 信号管理数据流。
  • 机制:输出接口的 TREADY 信号广播到所有从接口,只有当输出接口准备好(M00_AXIS_TREADY 为高)时,从接口才能传输数据。
  • 注意:所有从接口必须同时提供有效数据(TVALID 为高),否则数据流会阻塞。

4. 信号支持

  • 必选信号TVALIDTREADY
  • 可选信号TDATATSTRBTKEEPTLASTTIDTDESTTUSER,可通过配置启用或禁用。
  • 信号宽度
    • 从接口 TDATA:1-64 字节(8-512 位)。
    • 输出 TDATA:从接口数量 × 从接口 TDATA 宽度。
    • TUSER:1-128 位,输出为从接口 TUSER 宽度的总和。
    • TIDTDEST:1-32 位,从主从接口获取。

接口说明

以下是 AXI4-Stream Combiner IP 的主要接口及其功能:

  1. 输入接口(S00_AXIS 至 S15_AXIS)

    • 类型:AXI4-Stream 从接口,支持 2-16 个。
    • 信号
      • Sxx_AXIS_TVALID:输入数据有效信号。
      • Sxx_AXIS_TREADY:输入接口准备好信号(由输出 TREADY 广播)。
      • Sxx_AXIS_TDATA:输入数据,宽度可配置(8-512 位)。
      • Sxx_AXIS_TSTRBTKEEP:字节选通信号,宽度为 TDATA 的 1/8。
      • Sxx_AXIS_TLAST:数据流结束信号。
      • Sxx_AXIS_TIDTDEST:流标识和目标标识信号。
      • Sxx_AXIS_TUSER:用户定义信号,宽度可配置(1-128 位)。
    • 功能:接收来自上游 AXI4-Stream 主设备的数据流。
  2. 输出接口(M00_AXIS)

    • 类型:AXI4-Stream 主接口。
    • 信号
      • M00_AXIS_TVALID:输出数据有效信号(需所有从接口 TVALID 同时为高)。
      • M00_AXIS_TREADY:输出接口准备好信号。
      • M00_AXIS_TDATA:输出数据,宽度为所有从接口 TDATA 宽度的总和。
      • M00_AXIS_TSTRBTKEEP:字节选通信号,宽度为输出 TDATA 的 1/8。
      • M00_AXIS_TLAST:数据流结束信号,从主从接口获取。
      • M00_AXIS_TIDTDEST:流标识和目标标识信号,从主从接口获取。
      • M00_AXIS_TUSER:用户定义信号,宽度为所有从接口 TUSER 宽度的总和。
    • 功能:将拼接后的数据流发送到下游 AXI4-Stream 从设备。
  3. 时钟与复位接口

    • ACLK:全局时钟信号,所有接口共享同一时钟域。
    • ARESETn:全局低电平有效复位信号,同步到 ACLK
    • ACLKEN(可选):时钟使能信号,用于控制数据传输的时序。
  4. AXI4-Lite 控制接口(可选)

    • 类型:32 位 AXI4-Lite 从接口,异步于 AXI4-Stream 时钟。
    • 功能:用于配置主从接口(Primary Slave Interface)或读取错误状态。
    • 信号:包括 S_AXI_AWADDRAWVALIDAWREADYWDATAWVALIDWREADYBRESPBVALIDBREADYARADDRARVALIDARREADYRDATARRESPRVALIDRREADY

配置方法

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 位,可选)。
    • 主从接口:指定 TLASTTIDTDEST 信号的来源接口(默认为 S00_AXIS)。
    • 信号使能:启用或禁用 TSTRBTKEEPTLASTTIDTDESTTUSER
    • 错误检测:启用或禁用 TLASTTIDTDEST 不匹配检测。
    • AXI4-Lite 控制接口:启用或禁用 AXI4-Lite 接口。
    • 时钟使能:启用或禁用 ACLKEN 信号。

2. 连接与验证

  • 将从接口(S00_AXIS 至 Sxx_AXIS)连接到上游 AXI4-Stream 主设备。
  • 将主接口(M00_AXIS)连接到下游 AXI4-Stream 从设备。
  • 确保所有从接口的数据流同步(TVALID 同时为高),否则可能导致数据流阻塞。
  • 使用 Vivado 仿真工具验证数据拼接,检查 TVALIDTREADYTLASTTDATA 信号的时序。
  • 若启用错误检测,验证错误状态寄存器或中断信号的行为。

资源利用情况

根据 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 适用于以下场景:

  1. 视频处理

    • 将多个视频流(如红、绿、蓝通道)合并为单一 RGB 流,简化下游处理(参考 PG085,图 2-3)。
    • 适用于实时视频处理系统,例如视频编码、显示或图像处理。
  2. 信号处理

    • 将多通道信号数据流(如音频或传感器数据)合并为单一数据流,便于统一处理。
    • 适用于雷达、通信和多通道数据采集系统。
  3. 数据聚合

    • 将多个低带宽数据流合并为高带宽数据流,提高系统吞吐量。
    • 适用于网络数据包处理或大数据流传输。
  4. 调试与验证

    • 合并多个数据流以便于监控或记录,简化系统调试流程。

注意事项

  1. 数据同步

    • 所有从接口的 TVALID 信号必须同时为高,否则输出 TVALID 不会置高,导致数据流阻塞(参考 PG085,第 12 页)。
    • 建议在上游添加 AXI4-Stream Data FIFO IP,以确保数据流同步(参考 web:16)。
  2. TREADY 信号管理

    • 输出接口的 TREADY 信号广播到所有从接口,确保下游设备准备好接收数据。
    • 若下游设备处理速度不一致,可能导致背压,建议配合 AXI4-Stream Data FIFO 使用。
  3. 主从接口选择

    • TLASTTIDTDEST 信号从主从接口获取,需确保主从接口的信号正确反映数据流状态。
    • 可通过 AXI4-Lite 接口动态配置主从接口(若启用)。
  4. 错误检测

    • 启用错误检测时,需监控错误状态寄存器或中断信号,及时处理 TLASTTIDTDEST 不匹配的情况。
    • 若无需错误检测,禁用该功能可减少资源占用。
  5. 时钟域

    • 该 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值