Vitis HLS:C 语言支持

Vitis HLS 对 C 语言的支持与 Vivado HLS 工具不同。本文描述了Vitis HLS工具的C语言支持能力。

Vitis HLS 库:

与 C++ 语言相比,C 语言是有限的。C++ 语言提供的一些重要功能是模板函数和类。

Vitis HLS 提供并支持利用模板函数和类的 C++ 库,其中包括以下内容:

标准复数:std::complex
任意精度:ap_int<>
固定点:ap_fixed<>
HLS 流:hls::stream
HLS Vector:hls::vector

由于 C++ 语言相对于 C 语言的能力有所提高,并且 Vitis HLS 中对 C 语言的支持有限,因此建议 Vitis HLS 中的所有设计都使用 C++ 语言。

任意精度:

Vivado HLS 工具通过“ap_cint.h”库为 C 语言任意精度数据类型提供支持。

Vitis HLS不支持这个库,如果需要任意精度的类型,需要将C语言的设计迁移到C++语言,以使用同等的C++库:“ap_int.h”。

C语言的任意精度数据类型使用的是与C++类型不同的格式。

要将C语言代码转换为C++语言,需要做以下改动。

int : int8 将更改为 ap_int : ap_int<8>

如果发现任何C风格的任意精度类型,Vitis工具将返回一个错误,并将显示一个类似于以下的错误。
信息:[HLS 200-10] 分析设计文件“apint_arith.c”...
错误:[HLS 214-126] 参数“inA”是任意精度整数类型:apint_arith.c:95

最新文章

最新文章