任意精度整数数据类型概述 - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

Vitis HLS 可以为 C++ 提供整数数据类型和定点任意精度数据类型。

表 1. 任意精度数据类型
语言 整数数据类型 所需头文件
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;