固定小数点の識別子のまとめ - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

次の表は、量子化モードとオーバーフロー モードを示しています。

ヒント: 標準ハードウェア演算 (折り返しおよび切り捨て) のデフォルト ビヘイビアー以上を実行する量子化モードおよびオーバーフロー モードを使用すると、さらに多くの関連ハードウェアを含む演算子になります。負の無限大への丸めや対称的な飽和などのさらにアドバンスなモードをインプリメントするために、ロジック (LUT) が必要になります。
表 1. 固定小数点の識別子のまとめ
Identifier 説明
W ワード長をビット数で指定
I

符号ビットも含む、整数値を表すビット数 (2 進小数点のにあるビットの数)。

次の例のように、この値が負の場合、2 進小数点のまでの暗示される符号ビット数 (符号付きの場合) または暗示されるゼロビット数 (符号なしの場合) を示します。次に例を示します。

ap_fixed<2, 0> a = -0.5;    // a can be -0.5,

ap_ufixed<1, 0> x = 0.5;    // 1-bit representation. x can be 0 or 0.5
ap_ufixed<1, -1> y = 0.25;  // 1-bit representation. y can be 0 or 0.25
const ap_fixed<1, -7> z = 1.0/256;  // 1-bit representation for z = 2^-8
Q 量子化モード: 結果の保存に使用される変数の最小の小数ビットで定義できるよりも高い精度が生成された場合の動作を指定します。
ap_fixed 型 説明
AP_RND Round to plus infinity
AP_RND_ZERO Round to zero
AP_RND_MIN_INF Round to minus infinity
AP_RND_INF Round to infinity
AP_RND_CONV Convergent rounding
AP_TRN 負の無限大への切り捨て (デフォルト)
AP_TRN_ZERO 0 への切り捨て
O

オーバーフロー モード: 演算結果が結果を格納するのに使用される変数に格納可能な最大値 (負の値の場合は最小値) を超えた場合の動作を指定します。

ap_fixed 型 説明
AP_SAT 1 Saturation
AP_SAT_ZERO 1 0 への飽和
AP_SAT_SYM 1 対称飽和
AP_WRAP 折り返し (デフォルト)
AP_WRAP_SM 符号絶対値のラップ
N オーバーフロー折り返しモードの場合の飽和ビット数を定義します。
  1. AP_SAT* モードを使用すると、飽和を実行するため追加ロジックが必要となるのでリソース使用量が増加し、最大で LUT の使用量が 20% 増加する可能性があります。
  2. hls_math ライブラリの固定小数点演算関数は、量子化モード、オーバーフロー モード、および飽和ビット数のそれぞれの ap_[u]fixed テンプレート パラメーター Q、O、および N をサポートしません。量子化モードとオーバーフロー モードは、ap_[u]fixed 変数が割り当ての左側にあるか、初期化されているが、計算中ではない場合にのみ有効です。