行为更改 - 2023.2 简体中文

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

下表指定了该版本与前版本之间影响移植行为或流程的差异。

表 1. 行为更改汇总
面积 行为
Vitis IDE

Vitis Unified IDE 现在是使用 vitis 命令启动时显示的默认 GUI。要启动传统 Vitis IDE,请运行 vitis --classic

请访问 2023.1 或更低版本的文档以参阅有关传统 Vitis IDE 的信息。

v++ 引入的 --freqhz 命令用于替换其他大部分时钟管理命令。--freqhz 用于为 AI 引擎组件、HLS 组件指定时钟,v++ --link 命令用于系统工程,如管理时钟频率中所述。
Vitis HLS

xparameters.h 不再包含 DEVICE_ID 定义。改用 BASEADDR 定义。AMD 驱动程序和库会处理此更改。但如果您有旧代码,则需要注意此更改。您需要更改软件应用通过 X<DUT>_InitializeX<DUT>_LookupConfig 驱动程序函数来对硬件模块进行寻址的方式。

Vitis HLS

ap_int/ap_uint/ap_fixed/ap_ufixed 的初始化行为经过更改,提升了与 C++ 语言内置类型(intfloat 等)的兼容性。

ap_int<N> A[N]; // uninitialized, both 23.2 and previous releases
ap_int<N> B[N] = {0}; // With 23.2, the whole array is initialized \
to zero. With previous releases, only the first element is initialized to \
zero, other elements are uninitialized. 
ap_int<N> B[N] = { }; // With 23.2, the whole array is initialized \
to zero. With previous releases, it is uninitialized.
Vitis HLS

原始 qdma_axis<w, 0, 0, 0> 已从 clib 移除,并替换为:

template <std::size_t WData, std::size_t WUser, std::size_t
                        WId, std::size_t WDest>
using qdma_axis = hls::axis<ap_uint<WData>, WUser, WId,
                        WDest, AXIS_ENABLE_ALL ^ AXIS_ENABLE_STRB, false>;
Vitis HLS

在 2023.2 版本中,调度程序所使用的时序模型已更改,使 HLS 编译器时序预测与 Vivado Design Suite 更紧密匹配。这导致延迟模型更消极。主要更改包括延迟 AXIS 串流接口,以及使用复杂使能条件来进行流水线控制。鉴于这些更改,预计此版本前原先能够成功满足时序的设计的时延和 II 都可能发生更改。

如果设计原先在 HLS 和 Vivado 中都满足时序,那么您可通过编译指示或指令添加此类约束来复原原始 II 和时延。您也可以使用 add_clockset_clock 命令降低时钟不确定性。通过改善 HLS 时序模型,即可降低不确定性。但 II 约束和时延约束(如果需要)机制则能更加稳妥地达成相同目标。

Vitis HLS 现已支持断言。
Vitis 嵌入式软件开发 系统设备树 (SDT) 现在是 Vitis 统一流程中新引入的概念。原先在 Vitis 传统流程中,硬件元数据是根据 Vitis 工具的要求通过“特别”方式使用 HSI API 从 XSA 直接抽取的,例如,抽取处理器用于创建平台或者抽取 IP 用于创建 BSP。在 Vitis 统一流程中,SDT 是在您生成平台时生成的。它用于将硬件元数据通过 Lopper 框架提供给 Vitis
Lopper 是基于 Python 的框架,用于从系统设备树中提取系统元数据。Lopper Framework API 并不通过 Vitis 向您公开。而是改为由平台组件创建之类的 Vitis Python API 使用底层 Lopper Framework API。Lopper 框架也用于生成 xparameters.h 和驱动程序初始化文件。

MLD/MDD MSS 文件集已移除,并替换为 YAML 和 CMake 文件集。

虽然 xparameters.h 仍由 Lopper Framework 生成,但它并不包含 DEVICE_ID 定义。而是改用 BASEADDR 定义。AMD 驱动程序和库会处理此更改。但使用旧代码的用户需注意此更改。