关注、星标公众号,精彩内容每日送达
来源:网络素材概述
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 具有以下关键特性:
接口支持:
- AXI4-Stream 接口
:连接 AXI4 基础设施组件,支持 32、64、128 和 256 位数据宽度。
- BRAM/FIFO 接口
:面向加速器 IP,支持 8、16、32 和 64 位数据宽度。
- AXI4-Lite 接口
:作为 32 位从接口,用于配置和控制。
- 标量接口
:支持多达 8 个输入标量、8 个输出标量和 8 个输入/输出标量。
多缓冲支持:
- AXI4-Stream 到块存储器多缓冲
(S2M)
- 块存储器到 AXI4-Stream 多缓冲
(M2S)
- 存储器到存储器多缓冲
(M2M)
- AXI4-Stream 到加速器 FIFO
(F2F)
- 加速器 FIFO 到 AXI4-Stream
支持非对称多缓冲数据宽度,允许 AXI4-Stream 和 BRAM/FIFO 接口之间的灵活数据宽度转换。
提供多缓冲功能,包括:
- AXI4-Stream 到块存储器多缓冲
数据传输控制:
- M2S 多缓冲
:通过 AXI4-Stream 主接口传输加速器输出数据,需等待加速器通过
acc_handshake接口发出ap_done信号后才开始传输(通过TVALID信号),并在最后一个数据节拍上置位TLAST。 - F2F 通信
:支持加速器之间的流式通信,数据可用时立即启动 AXI4-Stream 传输,单数据节拍的延迟,
TLAST由加速器通过acc_handshake信号触发。
- M2S 多缓冲
时钟域支持:
支持加速器逻辑与 AXI4-Stream 时钟域异步运行,适用于加速器逻辑运行速度快于 AXI4 基础设施或直接连接外部 I/O 模块的场景。
工具与设备支持:
- 设计工具
: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 适用于以下场景:
硬件加速器与嵌入式 CPU 的集成:
通过 AXI4-Stream 接口连接到 Zynq-7000 或其他 SoC 的处理系统(PS),实现硬件加速器与 CPU 的高效通信。
适用于视频处理、信号处理、机器学习等需要高性能计算的场景。
- 设计工具
任务流水线化:
与 Vivado HLS 结合,通过任务流水线支持高吞吐量加速器设计。
适用于需要连续处理数据流的实时应用,例如图像处理或数据包处理。
异步时钟域处理:
支持加速器逻辑与 AXI4-Stream 时钟域异步运行,适用于外部 I/O 模块或高速加速器逻辑。
多通道数据处理:
支持多达 8 个 S2M、M2S 和 M2M 通道,适合多任务并行处理场景。
接口说明
以下是 AXI4-Stream Accelerator Adapter IP 的主要接口及其功能:
AXI4-Stream 接口:
- 主接口
:用于输出数据(M2S、F2F),包括
TVALID、TLAST、TDATA等信号。 - 从接口
:用于接收数据(S2M、F2F),包括
TREADY、TDATA等信号。 - 数据宽度
:支持 32、64、128、256 位。
BRAM/FIFO 接口:
- BRAM 接口
:提供随机访问数据,支持
bram_rtlIP-XACT 总线定义。 - FIFO 接口
:用于流式数据传输,支持
acc_fifo接口。 - 数据宽度
:支持 8、16、32、64 位。
- BRAM 接口
AXI4-Lite 接口:
32 位从接口,用于配置 IP 核和传递标量参数。
支持读写操作,典型用于初始化和状态监控。
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 切片
:通常不使用,除非启用特定数据宽度转换。
- LUT(查找表)
- 配置示例
:
单通道、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 信号(
TVALID、TREADY、TLAST)和acc_handshake信号的时序。参考 PG081 文档中的示例设计()。
注意事项
时钟域配置:
确保 AXI4-Stream 和加速器时钟域正确配置,避免跨时钟域问题。
如需异步时钟,使用 AXI4-Stream Clock Converter IP()。
数据宽度匹配:
AXI4-Stream 和 BRAM/FIFO 数据宽度需合理配置,避免性能瓶颈。
使用 AXI4-Stream Data Width Converter IP()进行宽度转换。
TREADY 信号:
确保 AXI4-Stream 从接口的
TREADY信号正确连接,避免数据流阻塞()。
文档参考:
主要参考 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吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索
1万+

被折叠的 条评论
为什么被折叠?



