软件可控内核会公开一个可编程的寄存器接口,以允许主机软件应用通过寄存器读取和写入来与内核进行交互。这些都属于最常见且适用最广泛的内核类型。有 2 种类型的软件可控内核:用户管理的内核和 XRT 管理的内核。
注释: XRT 管理的内核是用户管理的内核的其中一种专用格式。
用户管理的内核与 XRT 管理的内核的主要区别在于内核执行模式。由于 XRT 依赖于 Vitis HLS 所生成的 ap_ctrl_chain
和 ap_ctrl_hs
执行协议,XRT 管理的内核更适合 C++ 开发者,如 C/C++ 内核 和 使用 Vitis HLS 编译内核 中所述。另一方面,用户管理的内核可支持许多不同的用户定义的执行协议(常见于 Vivado RTL IP 中),因此更适合使用 RTL 内核 的 RTL 设计师。
Vitis 应用加速开发流程支持使用 XRT 本机 C/C++ API 编写的主机程序,此 API 同时支持用户管理的内核和 XRT 管理的内核以及某些高级设计(例如,永续内核)。它还支持使用 OpenCL API 来处理 XRT 管理的内核的主机应用。后续章节将简要描述编程 API 以及 XRT 管理的内核或用户管理的内核所需的不同硬件接口。
XRT 管理的内核 | 用户管理的内核 |
---|---|
|
|