按平台和内核拆分逻辑函数
虽然 FPGA 和 SoC 上的设计日益复杂,但大部分开发者或团队都通过协作来进行设计。Vitis 软件平台为应用开发者和平台开发者提供了清晰的边界。平台开发者可包括开发板开发者、BSP 开发者、系统软件开发者等。
从系统架构师角度而言,部分逻辑函数可能处于灰色区域:这些逻辑函数可与平台封装在一起,或者可充当加速内核来使用。为了帮助拆分系统块,以下提供了一些通用准则。
- 如果某个组件既可分类为平台,也可分类为加速内核,请将其设置为内核。平台设计应尽可能精简,这样在该组件需要更新时,有助于减少平台重新封装工作。并且,如果您在开发阶段进行迭代,这样可以节省时间。
- 平台应作为硬件的抽象。更改硬件开发板时,应用无需更改,或者只需极少量更改,以匹配新硬件的需求。
- 平台中的 IP 由设备树和 Linux 驱动程序进行控制,加速内核则由 XRT 进行控制。如果某些 IP 需要标准 Linux 驱动程序支持,请将其封装到平台内,并在设备树中对其进行描述。
- 加速内核通常具有独立功能特性和简单的数据路径与控制路径连接。如果某些组件可提供基础架构性功能特性,供多个内核共享,或者这些组件与其他模块之间存在复杂的连接,那么通常可将这些组件封装在平台内。
下表显示了针对逻辑类型建议的平台和内核。
逻辑 | 平台 | 内核 |
---|---|---|
硬核处理器( 7000 SoC 和 Zynq UltraScale+ MPSoC 的 PS) | 仅限在平台内使用 | |
软核处理器 | 首选在平台内使用 | 可作为 RTL 内核来使用 |
含 GPIO 和 SerDes 的 I/O 接口 IP(外部管脚、MIPI、Aurora 等) | 仅限在平台内使用 | |
I/O 接口配套 IP(DMA for PCIe® 、Ethernet MAC for Ethernet PHY 等) | 标准且稳定的 IP 如果并非应用专用 IP,则应布局在平台内。 | 定制配套 IP 可作为加速内核来运行。 |
需要标准 Linux 驱动程序的传统存储器映射 IP(VPSS 等) | 仅限在平台内使用 | |
HLS AXI Memory Mapped IP | 可在平台内使用。需手动编写控制软件或驱动程序。 | 首选作为内核使用。受 XRT 控制。 |
加速存储器映射 IP 遵循 Vitis 内核寄存器标准,并可接受 XRT | 首选作为内核使用 | |
Vitis 库 | 仅限作为内核使用 |