在 Vitis 统一工作空间内有两种类型的工程:
图 1. Vitis 软件平台工程类型
- 工作空间
- 打开 Vitis 统一软件平台时,会创建工作空间。工作空间即供 Vitis 统一软件平台用于存储工程数据和元数据的目录位置。初始工作空间位置必须在启动 Vitis 软件平台时提供。
- XSA
- XSA 是从 Vivado Design Suite 导出的。它包含各种硬件规格,例如,处理器配置属性、外设连接信息、地址映射和器件初始化代码等。创建平台工程时,必须提供 XSA。
- 平台
- 目标平台(或称平台)是由硬件组件 (XSA) 和软件组件(域/BSP、FSBL 之类的启动组件等)组合而成的。存储库内的平台不可编辑。工作空间内的平台可编辑,称为平台组件。
- 平台组件
- 平台组件是 Vitis Unified IDE 中用于定义平台的工程。
- 域
- 域即板级支持包 (BSP) 或操作系统 (OS),其中包含软件驱动程序集合,您可在其中构建自己的应用。创建的软件镜像仅包含 AMD 库中的部分内容,即您在自己的嵌入式设计中使用的部分。您可创建多个应用并在同一个域上运行。在平台中,每个域都绑定到单个处理器或者一个由同构处理器组成的集群(例如:A53_0 或 A53)。
- 系统工程
- 系统工程用于将任一器件上同时运行的应用组合在一起。在系统工程中,同一个处理器的两个独立应用不能组合在一起。在系统工程中,2 个 Linux 应用可以组合在一起。每个工作空间均可包含多个系统工程。
- 应用(软件工程)
- 每个软件工程包含一个或多个源文件以及必要的头文件,以允许编译和生成二进制输出 (ELF) 文件。每个系统工程均可包含多个应用工程。每个软件工程都必须包含一个对应的域。
Vitis 平台具有多种不同配置以支持不同用例,如下所述:
- 嵌入式
- 嵌入式平台是固定平台。此平台仅支持 Arm® 处理器和 MicroBlaze™ 处理器的嵌入式软件开发。Vitis 不会对硬件设计进行修改。
- 嵌入式加速
- 除嵌入式软件开发外,在此类型的平台上还支持应用加速。此平台可提供时钟、总线接口和中断控制器以供应用内核使用。
- 数据中心加速
- 加速内核与 x86 主机应用均可在此平台上开发。此内核通过使用
PCIe®
总线来进行控制。注释: Vitis 可以对可扩展平台的硬件设计进行扩展,将加速内核(PL 或 AI 引擎)添加到平台内的原始硬件设计中。它也能用于软件开发。
以下是 AMD Zynq™ UltraScale+™ MPSoC 的典型 Vitis 软件开发工作空间示例。
图 2.
Zynq UltraScale+ MPSoC 的 Vitis 软件开发工作空间示例
- 您可以为
Arm®
Cortex®-A53 SMP 集群创建 Linux 集群。可以基于 Linux 域的
sysroot
所提供的库来编译和链接 Linux 应用。 - Arm Cortex-A53 核 0 与 Arm Cortex®-R5F 核 0 可以同时运行 Hello World 应用,这两个应用可组合到同一个系统工程内。
- Arm Cortex-A53 核 0 上的裸机内置自检应用可以在自有系统工程内运行并采用自有 BSP 设置。
- 这些系统工程用于管理多个应用组件。在单个系统工程中添加多个应用组件意味着这些应用将同时运行。如果每次仅运行一个应用,则无需系统工程。
- FSBL 和 PMU 固件等启动组件可以在平台工程内自动创建。启动组件具有自己的 BSP 设置。