[AXIS] AXI4-Stream Subset Converter

AXI4-Stream Subset Converter IP 详细介绍

概述

AXI4-Stream Subset Converter 属于 AXI4-Stream Infrastructure IP Suite的一部分。该 IP 核旨在解决 AXI4-Stream 接口之间信号集的轻微不兼容问题,通过配置信号的添加、删除或重新映射,实现不同信号子集之间的无缝连接。它广泛应用于 FPGA 和 SoC 系统设计,特别是在需要信号格式转换或协议适配的场景,如视频处理、信号处理、网络数据包处理和硬件加速器集成。

该 IP 核的主要功能包括:

  • 信号转换:将一个 AXI4-Stream 信号集转换为另一个信号集,支持信号的添加、删除或重新映射。
  • 协议兼容:保持 AXI4-Stream 协议的完整性,确保数据流传输的正确性。
  • 灵活配置:支持多种信号宽度和重新映射规则,适应不同应用需求。
  • 低资源占用:采用组合逻辑设计,延迟极低,资源占用最小。

主要特性

  1. AXI4-Stream 协议兼容性

    • 完全符合 ARM AMBA 4 AXI4-Stream 协议规范(参考 UG761),支持标准信号:TVALIDTREADYTDATATSTRBTKEEPTLASTTIDTDESTTUSER
    • 支持可选信号配置,用户可通过配置启用或禁用 TDATATSTRBTKEEPTLASTTIDTDESTTUSER
    • 支持可编程的信号宽度:
      • TDATA:8-512 位(1-64 字节)。
      • TUSER:1-128 位。
      • TIDTDEST:1-32 位。
  2. 信号集转换

    • 信号删除:移除不需要的信号(如 TSTRBTKEEP),简化输出接口。
    • 信号添加:为输出接口添加缺失的信号,分配默认值(符合 AMBA 规范)。
    • 信号重新映射:重新排序或调整 TDATATUSERTSTRBTKEEPTIDTDESTTLAST 的位分配。
    • 支持 TLAST 信号的自动生成,通过可配置的计数器实现数据打包。
  3. 低延迟设计

    • 采用组合逻辑实现,延迟为 0-1 时钟周期(取决于 TREADY 信号配置)。
    • 支持背靠背传输,最大吞吐量接近时钟频率(假设 TREADY 始终为高)。
    • 无寄存器管道,适合对延迟敏感的应用。
  4. 低资源占用

    • 主要使用 LUT 实现信号映射逻辑,触发器(FF)使用量极少。
    • 不使用 BRAM 或 DSP 切片。
    • 典型配置下,LUT 占用约为 10-100,FF 占用为 0-50(参考 PG085 表 2-6)。
  5. 时钟与复位

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

    • 设计工具: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。

功能模块

1. 信号删除

  • 功能:移除输入接口中不需要的 AXI4-Stream 信号(如 TSTRBTKEEPTUSER)。
  • 机制:通过配置将指定信号置为未连接状态,输出接口不包含这些信号。
  • 注意:删除信号可能导致数据丢失,需确保下游模块不依赖这些信号。
  • 应用:简化接口,减少资源占用。

2. 信号添加

  • 功能:为输出接口添加缺失的 AXI4-Stream 信号,分配默认值。
  • 机制
    • 按照 AMBA 规范为添加的信号设置默认值(例如,TSTRBTKEEP 置为全 1,TIDTDEST 置为 0)。
    • TLAST 可通过计数器生成,基于用户定义的包长度。
  • 示例:输入接口无 TLAST,输出接口添加 TLAST,每 64 个传输置高一次。
  • 应用:适配需要完整信号集的下游模块。

3. 信号重新映射

  • 功能:重新排序或调整 TDATATUSERTSTRBTKEEPTIDTDESTTLAST 的位分配。
  • 机制:通过配置字符串(REMAP)指定信号的位映射规则,例如将 TDATA[31:0] 映射到 TDATA[63:32]
  • 示例:将输入 TUSER[3:0] 映射到输出 TUSER[0:3],或重新排列 TDATA 字节顺序。
  • 应用:调整数据格式,如视频流通道重排或信号处理中的数据重组。

4. 背压管理

  • 功能:通过 TVALIDTREADY 信号实现 AXI4-Stream 协议的握手机制。
  • 机制
    • 输入 TREADY 由输出 TREADY 直接控制(组合逻辑)。
    • 若输入无 TREADY 信号,IP 核自动生成以避免协议违例。
  • 注意:无缓冲机制,背压直接传递至上游。

5. TLAST 生成

  • 功能:为输出接口生成 TLAST 信号,基于可配置的计数器。
  • 机制:用户指定数据包长度(传输次数),IP 核在达到指定次数时置高 TLAST
  • 应用:将连续数据流打包为固定长度的数据包。

接口说明

  1. 输入接口(S00_AXIS)

    • 类型:AXI4-Stream 主接口。
    • 信号
      • S00_AXIS_TVALID:输入数据有效信号(必选)。
      • S00_AXIS_TREADY:输入接口准备好信号(可选,取决于配置)。
      • S00_AXIS_TDATA:输入数据,宽度可配置(8-512 位,可选)。
      • S00_AXIS_TSTRBTKEEP:字节选通信号,宽度为 TDATA 的 1/8(可选)。
      • S00_AXIS_TLAST:数据流结束信号(可选)。
      • S00_AXIS_TIDTDEST:流标识和目标标识信号(可选)。
      • S00_AXIS_TUSER:用户定义信号,宽度可配置(1-128 位,可选)。
    • 功能:接收来自上游 AXI4-Stream 从设备的数据流。
  2. 输出接口(M00_AXIS)

    • 类型:AXI4-Stream 从接口。
    • 信号:与输入接口类似,具体信号集取决于配置。
    • 功能:将转换后的数据流发送到下游 AXI4-Stream 主设备。
  3. 时钟与复位接口

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

配置方法

1. 在 Vivado 中添加 IP

  • 打开 Vivado 的 Block Design,右键选择 Add IP
  • 搜索 AXI4-Stream Subset Converter,将其拖入设计。
  • 双击 IP 核,打开定制化对话框,配置以下参数:
    • 输入信号集:选择输入接口的信号(TDATATSTRBTKEEPTLASTTIDTDESTTUSER)。
    • 输出信号集:选择输出接口的信号,指定添加或删除的信号。
    • 信号宽度
      • TDATA 宽度:输入和输出分别配置(8-512 位)。
      • TUSER 宽度:输入和输出分别配置(1-128 位)。
      • TID/TDEST 宽度:输入和输出分别配置(1-32 位)。
    • REMAP 配置:指定信号重新映射规则(例如,TDATA_REMAP=tdata[31:0]TUSER_REMAP=tuser[0:0])。
    • TLAST 生成:启用 TLAST 计数器并设置包长度(可选)。
    • 时钟使能:启用或禁用 ACLKEN

2. 连接与验证

  • 将输入接口(S00_AXIS)连接到上游 AXI4-Stream 从设备。
  • 将输出接口(M00_AXIS)连接到下游 AXI4-Stream 主设备。
  • 分配时钟(ACLK)和复位(ARESETn)信号。
  • 使用 Vivado 仿真工具验证信号转换:
    • 检查输入和输出信号集是否匹配配置。
    • 验证 TVALIDTREADYTLAST 的时序正确性.
    • 验证重新映射规则(例如,TDATATUSER 的位顺序)。
  • 检查资源利用报告,确保资源占用符合预期。

资源利用情况

  • 资源类型
    • LUT(查找表):10-100,取决于信号数量和 REMAP 规则。
    • FF(触发器):0-50,仅在复杂映射时使用少量 FF。
    • BRAM:不使用。
    • DSP 切片:不使用。
  • 配置示例
    • 32 位 TDATA、无 REMAP:约 10 LUT、0 FF、无 BRAM。
    • 64 位 TDATA、TUSER REMAP(4 位到 1 位):约 30 LUT、10 FF、无 BRAM。
    • 256 位 TDATA、复杂 REMAP:约 80 LUT、20 FF、无 BRAM。
  • 最大频率:最高 250 MHz(Kintex-7,-1 速度等级),-2 或 -3 速度等级可提高 5-10%

具体资源利用数据需参考 Vivado IP 核生成报告,建议用户在设计时根据目标设备和配置参数进行验证。


应用场景

AXI4-Stream Subset Converter IP 适用于以下场景:

  1. 信号格式转换

    • 调整 AXI4-Stream 信号集,例如将带 TSTRBTKEEP 的数据流转换为仅含 TDATATLAST 的流。
    • 适用于视频流处理中的格式适配。
  2. 数据重排

    • 重新映射 TDATATUSER 的位顺序,例如将 RGB 通道顺序调整为 BGR。
    • 适用于信号处理或图像处理中的数据重组。
  3. 协议适配

    • 为不完整的 AXI4-Stream 输入流添加信号(如 TLAST),确保下游模块兼容性。
    • 适用于 SoC 系统中不同 IP 核的互联。
  4. 数据打包

    • 使用 TLAST 计数器将连续数据流打包为固定长度的数据包。
    • 适用于网络数据包处理或通信系统。
  5. 调试与验证

    • 简化信号集以便于调试,或添加信号以适配验证工具。
    • 配合 AXI4-Stream Protocol Checker IP(PG145)使用,确保协议合规性。

注意事项

  1. 信号丢失风险

    • 删除信号(如 TSTRBTKEEP)可能导致数据丢失,需充分理解有效负载内容
    • 在配置前,确认下游模块对信号的依赖性。
  2. REMAP 配置

    • REMAP 字符串需精确匹配信号宽度,例如 TUSER_REMAP=tuser[0:0] 表示提取 1 位,错误配置可能导致仿真错误。
    • 使用 Vivado 的配置 GUI 验证 REMAP 规则。
  3. 背压管理

    • 由于无缓冲机制,背压直接传递,需确保下游设备的 TREADY 信号及时响应。
    • 若需缓冲,建议配合 AXI4-Stream Data FIFO IP 使用
  4. 时钟域限制

    • 该 IP 核仅支持单一时钟域(ACLK),如需跨时钟域传输,需配合 AXI4-Stream Clock Converter IP 使用
    • 确保 ACLK 满足上下游模块的时序要求。
  5. 复位同步

    • 确保 ARESETn 信号在 ACLK 时钟域内正确同步,推荐使用异步复位同步释放机制。
    • 复位期间,TREADYTVALID 需置低至少 8 个时钟周期,ARESETn 保持至少 16 个周期

总结

AXI4-Stream Subset Converter IP 是一款灵活且高效的 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值