概述
主机应用或嵌入式处理器可使用 AXI4‑Lite 从接口 (s_axilite
) 对 HLS IP 或内核进行控制,该接口充当系统总线,用于处理器与内核之间通信。主机或嵌入式处理器可使用 s_axilite
接口启动和停滞内核,以及对内核进行数据读取或写入。当 Vitis HLS 对设计进行综合时,s_axilite
接口是作为适配器来实现的,用于捕获来自适配器上的寄存器中的主机的通信信息。请参阅 GitHub 上的 Vitis-HLS-Introductory-Examples/Interface/Register,以获取其中部分概念的示例。
AXI4-Lite 接口在 Vivado IP 或 Vitis 内核中执行多项功能:
- 它可映射用于启动和停滞内核的块级控制机制。
- 它可提供通道,用于将
m_axi
接口的标量实参、指向标量值的指针、函数返回值和地址偏移从主机传递到 IP 或内核 - 对于 Vitis 内核流程:
- 该工具将自动推断
s_axilite
接口编译指示,以向分配给m_axi
接口的指针实参、标量值和函数返回类型提供偏移。 - 如果指向标量值的指针分配给
s_axilite
接口,那么 Vitis HLS 允许您在该指针上执行读取或写入。指针默认分配给m_axi
接口,因此您必须使用 INTERFACE 编译指示或指令将该指针手动分配给s_axilite
:int top(int *a, int *b) { #pragma HLS interface s_axilite port=a
-
Bundle:在 Vitis 内核流程中,针对
s_axilite
适配器,请勿指定bundle
选项。该工具将创建单个s_axilite
接口,用于服务整个设计。重要: 如果针对 Vitis 内核流程指定了多个捆绑,HLS 将返回错误。 - Offset:该工具将自动选择接口的偏移。请勿在此流程中指定任何偏移。
- 该工具将自动推断
- 对于 Vivado IP 流程:
- 默认情况下,该流程将不使用
s_axilite
接口。 - 要使用
s_axilite
作为标量实参、指向标量值的指针、m_axi
指针地址的偏移和函数返回类型的通信通道,必须手动指定 INTERFACE 编译指示或指令。 -
Bundle:此流程支持按捆绑指定多个
s_axilite
接口。如需了解更多信息,请参阅 S_AXILITE 捆绑规则。 - Offset:默认情况下,该工具将在控制寄存器映射内按顺序从 0x10 开始布局实参。如需了解更多详情,请参阅 S_AXILITE 偏移选项。
- 默认情况下,该流程将不使用