遵循标准 Vitis HLS 流程即可从 C/C++ 代码生成内核以供在 Vitis 核开发套件内使用。但由于内核需在 Vitis 软件平台内运行,因此必须满足标准内核要求(请参阅 PL 内核属性)。最重要的是,必须将接口建模为 AXI 存储器接口,但标量参数除外,这些参数映射到 AXI4-Lite 接口。Vitis HLS 会使用此处所述的 Vitis 自下而上的流程来自动定义接口端口以满足标准内核要求。
以下概括了 HLS 内核创建和编译流程。请参阅 Vitis HLS 流程 文档中的 创建新的 Vitis HLS 工程 以获取有关此流程的更完整的描述。
- 启动 Vitis HLS 以打开集成设计环境 (IDE) 并指定 (文件 > 新建工程)。
- 在New Vitis HLS ProjectWizard(新建 Vitis HLS 工程向导)中,指定Project name(工程名称)、定义工程的Location(位置),然后单击Next(下一步)。
- 在Add/Remove Files(添加/移除文件)页面中,单击Add Files(添加文件)以将内核源代码添加到工程中。单击Browse(浏览)按钮选择Top Function(顶层函数)以定义内核函数,完成后单击Next(下一步)。
- 如果您有基于 C 语言的仿真测试激励文件,可单击Add Files来指定此文件,或者可单击Next跳过此步骤。提示: 如 Vitis HLS 文档中所述,强烈建议使用测试激励文件。
- 在Solution Configuration(解决方案配置)页面中,必须为内核指定Clock Period(时钟周期)。
- 单击Part Selection(器件选择)字段中的浏览按钮(…)打开Device Selection(器件选择)对话框,以选择目标平台。选择Boards(开发板),并选中已编译的内核的目标平台,如下所示。单击OK以选中平台,然后返回至Solution Configuration页面。
- 在Solution Configuration页面中,选择Flow Target(流程目标)下的Vitis Kernel Flow Target(Vitis 内核流程目标)下拉菜单,然后单击Finish(完成)以完成此进程并创建您的 HLS 内核工程。重要: 您必须选择Vitis Kernel Flow Target才能从该工程生成赛灵思对象 (XO) 文件。
创建 HLS 工程后,您即可使用Run C-Synthesis(运行 C 语言综合)来编译内核代码。请参阅 Vitis HLS 文档以获取 HLS 工具流程的完整描述。
完成综合后,内核可作为 XO 文件导出,以供在 Vitis 核开发套件内使用。您可通过主菜单中的 (解决方案 > 导出 RTL)命令来获取导出命令。
指定文件位置,这样即可将内核作为赛灵思对象 (XO) 文件进行导出。
在 v++
链接进程期间,此 (XO) 文件可用作为输入文件。如需了解更多信息,请参阅 链接内核。您还可将其添加到 Vitis IDE 中的应用工程内,如 创建 Vitis IDE 工程 中所述。
但请谨记,此处所述自下而上的流程中创建的 HLS 内核在 Vitis 应用加速开发流程中使用时存在某些限制。针对使用 HLS 内核的应用,不支持软件仿真,因为重复的头文件依赖关系可能造成问题。在硬件仿真流程中不支持针对 HLS 内核或 RTL 内核使用 GDB 调试。