固定小数点の数学関数 - 2023.2 日本語

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

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

固定小数点のインプリメンテーションは、次の数学関数用にも提供されています。

固定小数点の数学関数すべてで、次のビット幅仕様の ap_[u]fixed および ap_[u]int データ型がサポートされます。

  1. ap_fixed<W,I> (I<=33 および W-I<=32)
  2. ap_ufixed<W,I> (I<=32 および W-I<=32)
  3. ap_int<I> (I> (I<=33)
  4. ap_uint<I> (I> (I<=32)
重要: hls_math ライブラリの固定小数点演算関数は、量子化モード、オーバーフロー モード、および飽和ビット数のそれぞれの ap_[u]fixed テンプレート パラメーター Q、O、および N をサポートしません。量子化モードとオーバーフロー モードは、ap_[u]fixed 変数が割り当ての左側にあるか、初期化されているが、計算中ではない場合にのみ有効です。

三角関数

cos sin tan acos asin atan atan2 sincos
cospi sinpi            

双曲線関数

cosh sinh tanh acosh asinh atanh

指数関数

exp frexp modf exp2 expm1

対数関数

log log10 ilogb log1p

べき関数

pow sqrt rsqrt cbrt hypot

誤差関数

erf erfc

丸め関数

ceil floor trunc round rint nearbyint

固定小数点

nextafter nexttoward

差分関数

erf erfc fdim fmax fmin maxmag minmag

その他の関数

fabs recip abs fract divide

分類関数

signbit

比較関数

isgreater isgreaterequal isless islessequal islessgreater

関係関数

isequal isnotequal any all bitselect

固定小数点型の場合、関数値の精度は少し落ちますが、RTL インプリメンテーションはより小さく高速になります。

固定小数点型の数学関数をインプリメントするには、次の手順に従います。

  1. 固定小数点のインプリメンテーションがサポートされるかどうかを判断します。
  2. 数学関数を ap_fixed 型を使用してアップデートします。
  3. C シミュレーションを実行して、デザインが必要な精度でまだ動作するかどうかを検証します。C シミュレーションは、RTL インプリメンテーションと同じビット精度型を使用して実行されます。
  4. デザインを合成します。

たとえば、sin 関数の固定小数点インプリメンテーションは、次のように数学関数と共に固定小数点型を使用して指定されます。

#include "hls_math.h"
#include "ap_fixed.h"

ap_fixed<26,6> my_input, my_output;

my_input = 24.675;
my_output = sin(my_input);