Vitis PL 内核开发流程 - 2023.2 简体中文

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

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

在基于平台的设计流程中,平台可以为硬件开发奠定可扩展的基础。硬件设计可通过使用 PL 内核来扩展,此类内核使用 Vitis 工具链接到平台内。PL 内核是可在 Vitis HLS 工具中从 C++ 生成的硬件函数,或者也可在 Vivado Design Suite 内的 RTL 中直接描述。

本节提供了适用于 PL 内核的 Vitis 开发流程的简要概述。此流程如下所示。

图 1. Vitis PL 内核开发流程

PL 内核可采用 C++ 来编写并使用 Vitis HLS 工具综合到 RTL IP 内。正如 Vitis 高层次综合用户指南(UG1399) 中所述,开发者需要了解一些基本概念,以便设计和编写可正确综合的软件,从而使用高层次综合 (HLS) 工具将其成功转换为硬件。

以 C++ 编写的 PL 内核也可以使用 v++ --compile 命令直接编译到赛灵思对象文件 (.xo) 中,如 对 C/C++ PL 内核进行编译 中所述。但对于 C/C++ 内核,建议的方法是在 Vitis HLS 中使用自下而上的方法,在内核设计上直接执行分析和最优化,以获取最佳结果。事实上,v++ --compile 命令使用 Vitis HLS 作为编译进程的关键组成部分。

以 C++ 编写的 PL 内核也可采用 RTL 来编写,或者可能在定制 IP 目录中已存在以供搭配 Vivado 工具来使用。如 封装 RTL 内核 中所述,这些内核需满足特定接口要求才能链接到系统设计。嵌入式系统设计师还可以决定集成 RTL 作为其定制平台的一部分,或者使用 v++ 命令将 RTL 内核链接到系统中,如下所述。

Vitis HLS、RTL 内核或 v++ --compile 命令所得内核开发或编译结果均为赛灵思对象 (.xo) 文件。PL 内核具有与受支持的接口类型以及时钟和复位信号相关的特定要求,如 PL 内核属性 中所述。时钟和复位允许 XRT 在运行时管理内核的执行,接口则允许 PL 内核与可扩展硬件平台 (.xpfm) 以及其他 .xo 文件和 AI 引擎计算图应用 (.libadf.a) 相链接,如 构建和封装系统 中所述。