本节为 RTL 设计师提供了 Vitis 应用开发流程的简要概述。此流程如下所示。
图 1. 含 RTL 内核的 Vitis 开发流程
开发流程包括下列步骤:
- 使用 G++ 进行应用编译
-
主机程序是使用 XRT 本机 API 以 C/C++ 编写的,并使用
g++
编译器来编译,旨在创建可执行文件以供在 x86 处理器上运行。该主机程序会与 FPGA 上的 PL 区域中的 RTL 内核进行交互,以完成加速应用。 - 使用 Vivado Design Suite 进行 PL 内核创建
-
RTL 设计是使用 Vivado 工具专为 AMD FPGA 器件进行开发和最优化的。Vivado 工具中的内核开发步骤包括:
- 编辑 RTL 代码以设计函数
- 在 Vivado 仿真器中使用行为仿真来验证 RTL
- 验证 RTL 综合、布局布线和时序
- 复查时序报告以分析性能
- 重复前述步骤直至满足性能目标为止
- 将 RTL IP 封装为内核 (.xo),以供在 Vitis 流程中使用
- 使用 Vitis 工具进行 PL 内核链接
-
赛灵思对象 (.xo) 文件通过 Vitis 连接器与目标硬件平台相链接,以创建器件二进制文件 (.xclbin),此二进制文件将在 Alveo 加速器卡上加载并执行。
提示: 该步骤将调用 Vivado 布局布线来生成比特流作为 .xclbin 文件的一部分。为了帮助定义器件二进制文件的架构,可创建配置文件 (design.cfg) 来指定内核连接到全局存储器或者内核相互连接的方式,或者定义应在器件二进制文件内构建的内核实例(或计算单元)数量,以允许多个函数并行运行。此配置文件会传递给 Vitis 连接器,用于生成 .xclbin。
- 运行应用
- 最终运行应用时,主机程序会加载 Vitis 编译器所生成的 .xclbin 文件。主机应用始终在 CPU 上运行,RTL 内核则可在 x86 上以仿真 (emulation) 模式运行,或者在 Alveo 加速器卡上加载 FPGA 上的 .xclbin。