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_int.h で任意精度の整数型 ap_[u]int
が定義されます。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;