Vitis HLS 可以为 C++ 提供整数数据类型和定点任意精度数据类型。
语言 | 整数数据类型 | 所需头文件 |
---|---|---|
C++ | ap_[u]int<W>(1024 位) 位宽可扩展至 4K 位,如下所述。 |
#include "ap_int.h" |
C++ | ap_[u]fixed<W,I,Q,O,N> | #include "ap_fixed.h" |
对于 C++ 语言 ap_[u]int
数据类型,头文件 ap_int.h 用于定义任意精度整数数据类型。要在 C ++ 函数中使用任意精度整数数据类型,请执行以下操作:
- 将头文件 ap_int.h 添加到源代码。
- 将位类型更改为
ap_int<N>
或ap_uint<N>
,其中 N 是介于 1 到 1024 之间的位大小。
以下示例显示了如何添加头文件并实现 2 个变量来使用 9 位整数和 10 位无符号的整数类型:
#include "ap_int.h"
void foo_top (…) {
ap_int<9> var1; // 9-bit
ap_uint<10> var2; // 10-bit unsigned
针对 ap_[u]int
数据类型允许的默认最大位宽为 1024 位。此默认设置可通过在包含 ap_int.h 头文件之前定义含正整数(小于或等于 4096)的 AP_INT_MAX_W
宏来覆盖。
重要:
AP_INT_MAX_W
的值设置过高可能导致软件编译缓慢、运行时间延长。以下是覆盖 AP_INT_MAX_W
的示例:
#define AP_INT_MAX_W 4096 // Must be defined before next line
#include "ap_int.h"
ap_int<4096> very_wide_var;