内核接口要求 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

为支持 Vitis 编译器将内核连接到目标平台,RTL 内核必须遵循 PL 内核属性 中所述的要求。下表对各种接口要求进行了总结。

重要: 在某些情况下,端口名称必须按表中所示进行定义。
表 1. RTL 内核的接口和端口要求
接口或端口 描述 注释
时钟 一个或多个时钟输入。
  • 内核需要至少 1 个时钟。 1
  • 可采用任意名称命名,但必须封装在总线接口内。
    重要: 封装 RTL 以供在 Vitis 环境内使用时,RTL IP 中的所有端口都必须与接口关联。否则,可能出现如下所示错误:
    ERROR: UNDEF When packaging for Vitis, pins that are not part of an interface are not supported
复位 主低电平有效复位输入端口
  • 可选端口。
  • 可采用任意名称命名,但必须通过时钟上的 ASSOCIATED_RESET 属性与时钟信号关联。
  • 该信号应经过内部流水打拍处理,以提升时序。
  • 该信号由关联时钟域内的同步复位驱动。
interrupt 高电平有效中断。
  • 可选端口。
  • 使用此端口时,其名称必须与此处所示名称相同。
s_axi_control 唯一一个 AXI4‑Lite 从控制接口
  • 必需的端口。s_axilite 接口通常是必需的,但有时在使用 AXI4‑Stream 接口时则存在例外情况。对于非软件控制的内核,也无需此端口。
  • 使用此端口时,其名称必须与此处所示名称相同,且区分大小写。
提示:kernel.xml 文件中可编辑 s_axilite 接口的地址范围并按需使用 package_xo 命令进行重新封装。但 XRT 施加了 64K(16 位)地址范围限制。如果 s_axilite 接口宽度大于 16 位,该工具将返回错误。
AXI4_Memory Mapped Interface (m_axi) AXI4 存储器映射接口,用于全局存储器访问
  • 可选端口。
  • 所有 AXI4 存储器映射接口都必须具有 64 位地址(在 AMD Zynq™ 7000 器件上为 32 位)。
  • RTL 内核开发者负责对全局存储器空间进行分区。全局存储器中的每一个分区都成为一个内核实参。每个分区的存储器偏移必须由软件应用通过 AXI4‑Lite 接口中的寄存器提供给内核。
  • AXI4 存储器映射接口不得使用“Wrap”(卷绕)或“Fixed”(固定)突发类型,并且不得使用窄(小型)突发。这意味着 AxSIZE 应与 AXI 数据总线宽度相匹配。
  • 任何不符合上述要求的用户逻辑或 RTL 代码都必须加以卷绕或桥接,以满足这些要求。
AXI4_STREAM (axis) AXI4‑Stream 接口,适用于内核之间或者主机与内核之间的单向数据传输。
  • 可选端口。
  • 不得配合双向端口使用。
  • 请使用 Vivado Design Suite 中的 STREAM 接口模板。
  • 如需了解有关接口要求的更多信息,请参阅 Vitis HLS 用户指南(UG1399) AXI4-Stream 接口
  1. 此处列出的时钟要求适用于包含固定时钟的较新的平台 shell,如 管理时钟频率 中所述。可供在传统平台上使用的 RTL 内核支持两个名为 ap_clkap_clk_2 的时钟,还支持两个名为 ap_rst_nap_rst_n_2 的可选复位。