任意精度整数型の概要 - 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_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;