【Vitis】Vitis HLS2023不支持的功能特性

Vitis HLS简介
Vitis™HLS是一种高层次综合工具,支持将C、C++和OpenCL™函数硬连线到器件逻辑互连结构和RAM/DSP块上。

Vitis HLS可在Vitis应用加速开发流程中实现硬件内核,并使用C/C++语言代码在Vivado®Design Suite中为赛灵思器件设计开发RTL IP。

【Vitis】HLS高层次综合的优势

【Vitis】基于C++函数开发组件的步骤

【Vitis】Vitis HLS2023不支持的功能特性


目录

1 断言

2 编译指示

3 顶层函数实参

4 HLS 视频库

5 C 语言任意精度类型

6 C 语言构造


1 断言

C/C++ 中的 assert 宏在 Vitis HLS 中不受支持。

使用断言可能导致用户不易察觉的意外后果, 从而导致创建出错误逻辑。根据代码复杂性, 这也可能阻碍编译器最优化。

2 编译指示

如果实参包含 m_axi INTERFACE 编译指示用于指定含 2 个或 2 个以上端口的 bundle, 则不支持此实参上同时包含 DEPENDENCE 编译指示。

void top(int *a, int *b) { // both a and b are bundled to m_axi port gmem #prgama HLS interface m_axi port=a offset=slave bundle=gmem #prgama HLS interface m_axi port=b offset=slave bundle=gmem #pragma HLS dependence variable=a false }

编译指示 INTERFACE 不再支持原先 AMD Vivado™ HLS 中支持的 ap_bus 模式。您应改为使用 m_axi 接口。

3 顶层函数实参

重要提示! AMD Vitis™ HLS 不支持在子函数内使用 INTERFACE 编译指示。

含如下 C 语言数据类型的顶层实参:

• enum 或 enum 的任意用法(结构体、 enum 的阵列指针)

• ap_int(其中 N 为 1-32768 之间的值)

• _Complex

• _Half 和 __fp16

4 HLS 视频库

适用于视频实用工具和功能的 hls_video.h 已弃用, 并替换为 Vitis 视觉库。如需了解详细信息, 请参阅 GitHub 上的将 HLS 视频库移植到 Vitis 视觉库。

5 C 语言任意精度类型

Vitis HLS 不支持 C 语言任意精度类型。 AMD 建议使用具有任意精度的 C++ 语言类型。

此外, Vitis HLS 中的 C++ 任意精度类型的最大宽度限制为 4096 位, 而不是 Vivado HLS 所支持的 32K 位。

6 C 语言构造

• 不支持指针强制转换。

• 不支持虚拟函数。

参考:《Vitis高层次综合用户指南》(UG1399)。

你可能感兴趣的:(xilinx,vitis,fpga开发,xilinx,vitis,hls)