[AXIS] AXI4-Stream Accelerator Adapter

AXI4-Stream Accelerator Adapter IP (PG081) 详细介绍

概述

AXI4-Stream Accelerator Adapter 用于连接硬件加速器与嵌入式 CPU。它通过提供 AXI4-Stream 接口与 AXI4 基础设施组件相连,同时为加速器 IP 提供 BRAM/FIFO 接口,从而提升 FPGA 逻辑中硬件加速器的整体系统级性能。该 IP 核广泛应用于需要高性能硬件加速的场景,例如 Zynq-7000 SoC 系列和其他 FPGA 平台。

该 IP 核的主要功能包括:

  • 连接性:在 AXI4-Stream 协议和加速器 IP 之间提供桥梁,支持高效数据传输。
  • 多通道支持:支持多达 8 个 Stream-to-Memory(S2M)、Memory-to-Stream(M2S)和 Memory-to-Memory(M2M)通道。
  • 灵活的接口:支持多种数据宽度和标量接口,适应不同应用需求。
  • 任务流水线:与 Vivado HLS 结合,支持任务流水线化,提升加速器效率。

主要特性

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

  1. 接口支持

    • AXI4-Stream 接口:连接 AXI4 基础设施组件,支持 32、64、128 和 256 位数据宽度。
    • BRAM/FIFO 接口:面向加速器 IP,支持 8、16、32 和 64 位数据宽度。
    • AXI4-Lite 接口:作为 32 位从接口,用于配置和控制。
    • 标量接口:支持多达 8 个输入标量、8 个输出标量和 8 个输入/输出标量。
  2. 多缓冲支持

    • 支持非对称多缓冲数据宽度,允许 AXI4-Stream 和 BRAM/FIFO 接口之间的灵活数据宽度转换。
    • 提供多缓冲功能,包括:
      • AXI4-Stream 到块存储器多缓冲(S2M)
      • 块存储器到 AXI4-Stream 多缓冲(M2S)
      • 存储器到存储器多缓冲(M2M)
      • AXI4-Stream 到加速器 FIFO(F2F)
      • 加速器 FIFO 到 AXI4-Stream
  3. 数据传输控制

    • M2S 多缓冲:通过 AXI4-Stream 主接口传输加速器输出数据,需等待加速器通过 acc_handshake 接口发出 ap_done 信号后才开始传输(通过 TVALID 信号),并在最后一个数据节拍上置位 TLAST
    • F2F 通信:支持加速器之间的流式通信,数据可用时立即启动 AXI4-Stream 传输,单数据节拍的延迟,TLAST 由加速器通过 acc_handshake 信号触发。
  4. 时钟域支持

    • 支持加速器逻辑与 AXI4-Stream 时钟域异步运行,适用于加速器逻辑运行速度快于 AXI4 基础设施或直接连接外部 I/O 模块的场景。
  5. 工具与设备支持

    • 设计工具: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 Accelerator Adapter IP 的功能模块主要围绕数据传输和接口转换,具体包括以下几个方面:

1. AXI4-Stream 到块存储器多缓冲(S2M)

  • 功能:将 AXI4-Stream 数据流存储到块存储器(BRAM)中。
  • 接口:AXI4-Stream 从接口接收数据,BRAM 从接口向加速器提供数据。
  • 应用:适用于需要将输入数据流存储到本地缓冲区以供加速器处理的场景。

2. 块存储器到 AXI4-Stream 多缓冲(M2S)

  • 功能:将加速器生成的输出数据从 BRAM 传输到 AXI4-Stream 主接口。
  • 接口:BRAM 从接口接收加速器数据,AXI4-Stream 主接口输出数据。
  • 控制:需加速器通过 acc_handshake 接口发出 ap_done 信号,传输完成后置位 TLAST
  • 数据宽度转换:支持 BRAM 和 AXI4-Stream 数据通道之间的数据宽度转换,提高系统性能和效率。

3. 存储器到存储器多缓冲(M2M)

  • 功能:在 BRAM 缓冲区之间直接传输数据,适用于加速器内部数据处理。
  • 接口:双 BRAM 接口(读写)。
  • 控制:传输需等待加速器完成任务(通过 acc_handshake 信号)。

4. AXI4-Stream 到加速器 FIFO(F2F)

  • 功能:支持加速器之间的流式通信,数据通过 FIFO 传输。
  • 接口:AXI4-Stream 主/从接口,加速器 FIFO 接口。
  • 特点:数据可用时立即传输,延迟仅为单数据节拍,TLAST 由加速器触发。
  • 应用:适用于 Vivado HLS 创建的加速器,具有 acc_fifo 接口,无需硬件缓冲或数据包化。

5. 标量接口

  • 功能:通过 AXI4-Lite 接口支持标量参数的传递。
  • 支持:8 个输入标量、8 个输出标量和 8 个输入/输出标量。
  • 应用:用于配置加速器参数或传递控制信号。

应用场景

AXI4-Stream Accelerator Adapter IP 适用于以下场景:

  1. 硬件加速器与嵌入式 CPU 的集成

    • 通过 AXI4-Stream 接口连接到 Zynq-7000 或其他 SoC 的处理系统(PS),实现硬件加速器与 CPU 的高效通信。
    • 适用于视频处理、信号处理、机器学习等需要高性能计算的场景。
  2. 任务流水线化

    • 与 Vivado HLS 结合,通过任务流水线支持高吞吐量加速器设计。
    • 适用于需要连续处理数据流的实时应用,例如图像处理或数据包处理。
  3. 异步时钟域处理

    • 支持加速器逻辑与 AXI4-Stream 时钟域异步运行,适用于外部 I/O 模块或高速加速器逻辑。
  4. 多通道数据处理

    • 支持多达 8 个 S2M、M2S 和 M2M 通道,适合多任务并行处理场景。

接口说明

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

  1. AXI4-Stream 接口

    • 主接口:用于输出数据(M2S、F2F),包括 TVALIDTLASTTDATA 等信号。
    • 从接口:用于接收数据(S2M、F2F),包括 TREADYTDATA 等信号。
    • 数据宽度:支持 32、64、128、256 位。
  2. BRAM/FIFO 接口

    • BRAM 接口:提供随机访问数据,支持 bram_rtl IP-XACT 总线定义。
    • FIFO 接口:用于流式数据传输,支持 acc_fifo 接口。
    • 数据宽度:支持 8、16、32、64 位。
  3. AXI4-Lite 接口

    • 32 位从接口,用于配置 IP 核和传递标量参数。
    • 支持读写操作,典型用于初始化和状态监控。
  4. acc_handshake 接口

    • 用于加速器任务完成信号(ap_done)的传递,触发 AXI4-Stream 数据传输。

资源利用情况

根据 PG081 和相关资源利用文档(、),AXI4-Stream Accelerator Adapter IP 的资源占用取决于配置参数(如通道数、数据宽度等)。以下是一些典型配置的资源利用情况(基于 Vivado IP 核生成数据):

  • 设备系列:Artix-7、Kintex-7、Zynq-7000 等。
  • 资源类型
    • LUT(查找表):随通道数和数据宽度增加而增加,典型值为数百到数千。
    • FF(触发器):类似 LUT,随配置复杂度变化。
    • BRAM:依赖于缓冲区深度和通道数,典型为 1-8 个 36Kb BRAM。
    • DSP 切片:通常不使用,除非启用特定数据宽度转换。
  • 配置示例
    • 单通道、32 位 AXI4-Stream 和 32 位 BRAM:约 500 LUT、600 FF、1-2 BRAM。
    • 8 通道、256 位 AXI4-Stream 和 64 位 BRAM:约 3000 LUT、3500 FF、4-8 BRAM。

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


使用方法

1. 在 Vivado 中添加 IP

  • 打开 Vivado 的 Block Design,右键选择 Add IP
  • 搜索 AXI4-Stream Accelerator Adapter,将其拖入设计。
  • 双击 IP 核,配置以下参数:
    • 通道数:选择 S2M、M2S、M2M 或 F2F 通道数量(1-8)。
    • 数据宽度:设置 AXI4-Stream(32/64/128/256 位)和 BRAM/FIFO(8/16/32/64 位)数据宽度。
    • 标量接口:配置输入/输出标量数量。
    • 时钟域:指定 AXI4-Stream 和加速器时钟。

2. 与 Vivado HLS 集成

  • 在 Vivado HLS 中设计加速器,使用 #pragma 定义 acc_fifo 或 BRAM 接口。
  • 将 HLS 生成的加速器 IP 与 AXI4-Stream Accelerator Adapter 连接,确保接口兼容。
  • 配置 acc_handshake 接口以支持任务完成信号。

3. 验证与调试

  • 使用 Vivado 的仿真工具验证数据流和任务流水线。
  • 检查 AXI4-Stream 信号(TVALIDTREADYTLAST)和 acc_handshake 信号的时序。
  • 参考 PG081 文档中的示例设计()。

注意事项

  1. 时钟域配置

    • 确保 AXI4-Stream 和加速器时钟域正确配置,避免跨时钟域问题。
    • 如需异步时钟,使用 AXI4-Stream Clock Converter IP()。
  2. 数据宽度匹配

    • AXI4-Stream 和 BRAM/FIFO 数据宽度需合理配置,避免性能瓶颈。
    • 使用 AXI4-Stream Data Width Converter IP()进行宽度转换。
  3. TREADY 信号

    • 确保 AXI4-Stream 从接口的 TREADY 信号正确连接,避免数据流阻塞()。
  4. 文档参考

    • 主要参考 PG081(AXI4-Stream Accelerator Adapter v2.1 产品指南)。
    • 辅助参考 PG085(AXI4-Stream Infrastructure IP Suite)和其他相关文档。

总结

AXI4-Stream Accelerator Adapter IP (PG081) 是一款功能强大且灵活的基础设施 IP 核,专为硬件加速器与嵌入式 CPU 的高效连接而设计。它通过 AXI4-Stream 和 BRAM/FIFO 接口支持多种数据传输模式,适用于高性能 FPGA 和 SoC 应用。凭借多通道支持、灵活的数据宽度配置和与 Vivado HLS 的无缝集成,该 IP 核在视频处理、信号处理和机器学习等领域具有广泛应用前景。

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、付费专栏及课程。

余额充值