Vivado 开发流程与 Vitis 开发流程之间的区别 - 2022.1 简体中文

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

作为 RTL 设计师,您可能很熟悉或者曾使用过 Vivado Design Suite。该工具同样是 Vitis 设计环境的核心,您使用 Vivado 工具的经验也将令您在此设计流程中获益匪浅。

RTL 开发

RTL 内核开发流程要求您将现有任何 RTL IP 加以标准化,才能在 Vitis 设计流程中使用。这包括从现有 IP 创建 RTL 内核 (.xo) 文件,并执行任何必要的修改以支持 Vitis 工具所需的 AXI4 接口,如 RTL 内核的要求 中所述。RTL 内核开发流程允许您对现有定制 IP 进行修改,此类 IP 可能已封装以供 Vivado 工具使用,或者您可从零开始 RTL 设计,并将其加以封装以供在 Vitis 流程中使用。

创建 RTL 内核遵循传统 RTL IP 开发进程:您需要编写 RTL 代码、利用 Vivado 逻辑仿真器或任何受支持的第三方仿真器对其进行仿真,并对设计进行布局布线,确保它能成功满足时序并完成布线。您可能还要定义 XDC 约束并按需搭配设计一起使用以便完成实现。准备就绪后,或者当设计完成时,您就可以将 RTL 设计封装为 IP,并生成 RTL 内核 (.xo) 文件,以供 Vitis 编译器用于构建系统设计。就 RTL 设计与 IP 封装进程而言,整个进程是相同的,且会额外输出 .xo 文件。

系统设计

Vivado 开发流程中,您将使用该工具的 IP integrator 手动添加必需的 IP 并将其拼接在一起,或者使用 RTL 定义自上而下的系统。在 Vivado 流程中,您需要在 FPGA 设计外指定整体系统设计,包括指定完整的 PCIe 总线、全局存储器和外设功能特性。您将需要创建定制主机代码,整合驱动程序以访问系统卡或可编程逻辑的各项功能特性。

Vitis 应用加速流程中,编译器会将此 RTL 内核或多个内核链接到 Alveo 加速器卡的目标平台,使用 IP integrator 功能自动构建系统设计。Vitis 编译器会将 Memory Subsystem (MSS) IP 自动例化到系统设计内,以便管理内核、主机处理器和存储器资源之间的 AXI 流量。MSS 的配置衍生自链接期间所使用的配置文件的连接部分,如 链接内核 中所述。XRT 提供了底层运行时和驱动程序,并提供了 API 用于开发主机应用,以访问加速器卡。

Vivado 开发流程要求设计完成综合、布局布线和时序收敛。Vitis 流程会在链接进程期间创建 Vivado 工程,并自动完成设计的综合与实现。虽然这是在 Vitis 工具流程内自动完成的,但您也可以在 Vivado 工具内使用 Tcl 脚本或者通过交互式操作来全权控制整个进程,并生成期望的结果。

虽然 VivadoVitis 工具均可提供系统设计功能,但 Vitis 工具能够将所需生态系统的大部分功能加以标准化。Vitis 流程能够自动执行多个步骤,例如,集成 PCIe 和添加全局存储器。这样您便能专心开发 RTL 函数,缩短总体开发时间。Vitis 流程还能够进一步简化无缝移植到另一个加速器卡的过程,并且在 RTL 组件或主机代码中大部分情况下无需任何更改。