AXI4‑Lite 接口 - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

概述

主机应用或嵌入式处理器可使用 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 偏移选项