主要内容gydF4y2Ba

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。gydF4y2Ba

ネイティブ浮動小数点での数値の考慮事項gydF4y2Ba

ネイティブ浮動小数点テクノロジーによって,浮動小数点設計からHDLコードを生成できます。浮動小数点設計では,固定小数点設計に比べて,精度が向上し,ダイナミックレンジが高くなり,開発サイクルが短縮されます。設計に複雑な算術演算および三角関数演算がある場合は,ネイティブ浮動小数点テクノロジーを使用します。gydF4y2Ba

高密度脂蛋白编码器™は,浮動小数点演算のIEEE 754標準に準拠したコードを生成します。高密度脂蛋白编码器のネイティブ浮動小数点は,以下をサポートしています。gydF4y2Ba

  • 最も近い整数方向への丸めモードgydF4y2Ba

  • 非正規数gydF4y2Ba

  • 南(非数),正无穷,ゼロなどの例外gydF4y2Ba

  • ULP(单位最后)および相対精度のカスタマイズgydF4y2Ba

最も近い整数方向への丸めモードgydF4y2Ba

高密度脂蛋白编码器のネイティブ浮動小数点は,最も近い偶数の整数方向への丸めモードを使用します。このモードは,最も近い偶数に丸めてすべての同順位を解決します。gydF4y2Ba

この丸め手法では,仮数の23ビットの後に最後のビットとして少なくとも3ビットが必要です。MSBはガードビット,ミドルビットはラウンドビット,LSBはスティッキービットと呼ばれます。次の表は,高密度脂蛋白编码器で最後の3ビットの各値に基づいて実行される丸めアクションを示します。gydF4y2BaxgydF4y2Baは,gydF4y2Ba不关心gydF4y2Ba値であり0または1のいずれかを取ります。gydF4y2Ba

丸めビットgydF4y2Ba 丸めアクションgydF4y2Ba
0 xxgydF4y2Ba

アクションは実行されない。gydF4y2Ba

One hundred.gydF4y2Ba 同順位。ガードビットの前にある仮数ビットが1である場合は丸められ,それ以外の場合は何も実行されない。gydF4y2Ba
101gydF4y2Ba 丸められる。gydF4y2Ba
11 xgydF4y2Ba 丸められる。gydF4y2Ba

非正規数gydF4y2Ba

非正規数は,ゼロに等しい指数フィールドおよび非ゼロ仮数フィールドをもつ数値です。仮数の最初のビットはゼロです。gydF4y2Ba

vgydF4y2Ba 一个gydF4y2Ba lgydF4y2Ba ugydF4y2Ba egydF4y2Ba =gydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 年代gydF4y2Ba 我gydF4y2Ba ggydF4y2Ba ngydF4y2Ba *gydF4y2Ba (gydF4y2Ba 0gydF4y2Ba +gydF4y2Ba ΣgydF4y2Ba 23gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba bgydF4y2Ba 23gydF4y2Ba −gydF4y2Ba 我gydF4y2Ba 2gydF4y2Ba −gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba *gydF4y2Ba 2gydF4y2Ba −gydF4y2Ba 126gydF4y2Ba

非正規数の大きさは,仮数の先頭にゼロを付けずに表現できる最小の浮動小数点数より小さくなります。非正規数が存在する場合は有効桁数の損失を示し、以降の演算で累積されて最終的に予期しない値になる可能性があります。

非正規数を処理するロジックでは,先頭のゼロの数をカウントし,左シフト演算を実行して正規化された表現を得ることが必要です。このロジックを追加することで,ターゲットデバイスの面積のフットプリントが増え,設計のタイミングに影響を与える可能性があります。gydF4y2Ba

ネイティブ浮動小数点のサポートを使用する場合は,高密度脂蛋白编码器によって設計の非正規数を処理するかどうかを指定できます。既定の設定では,コードジェネレーターは非正規数をチェックしないため,ターゲットプラットフォームの面積が節約されます。gydF4y2Ba

例外処理gydF4y2Ba

ゼロ除算などの演算を実行したり,負の数値の対数を計算する場合,高密度脂蛋白编码器によって例外が検出および報告されます。次の表は,浮動小数点数のエンコードからさまざまな種類の例外を表す数値へのマッピングをまとめています。gydF4y2BaxgydF4y2BaはgydF4y2Ba不关心gydF4y2Ba値を示し0または1の値を取ることができます。gydF4y2Ba

符号gydF4y2Ba 指数gydF4y2Ba 仮数gydF4y2Ba 値gydF4y2Ba 説明gydF4y2Ba
xgydF4y2Ba 0 xffgydF4y2Ba 0 x00000000gydF4y2Ba

vgydF4y2Ba 一个gydF4y2Ba lgydF4y2Ba ugydF4y2Ba egydF4y2Ba =gydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 年代gydF4y2Ba ∞gydF4y2Ba

無限大gydF4y2Ba
xgydF4y2Ba 0 xffgydF4y2Ba 非ゼロ値gydF4y2Ba

值=南gydF4y2Ba

非数値gydF4y2Ba
xgydF4y2Ba 0 x00gydF4y2Ba 0 x00000000gydF4y2Ba

值= 0gydF4y2Ba

ゼロgydF4y2Ba
xgydF4y2Ba 0 x00gydF4y2Ba 非ゼロ値gydF4y2Ba

vgydF4y2Ba 一个gydF4y2Ba lgydF4y2Ba ugydF4y2Ba egydF4y2Ba =gydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 年代gydF4y2Ba 我gydF4y2Ba ggydF4y2Ba ngydF4y2Ba *gydF4y2Ba (gydF4y2Ba 0gydF4y2Ba +gydF4y2Ba ΣgydF4y2Ba 23gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba bgydF4y2Ba 23gydF4y2Ba −gydF4y2Ba 我gydF4y2Ba 2gydF4y2Ba −gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba *gydF4y2Ba 2gydF4y2Ba −gydF4y2Ba 126gydF4y2Ba

非正規gydF4y2Ba
xgydF4y2Ba 0x00 < E < 0xFFgydF4y2Ba xgydF4y2Ba

vgydF4y2Ba 一个gydF4y2Ba lgydF4y2Ba ugydF4y2Ba egydF4y2Ba =gydF4y2Ba (gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 年代gydF4y2Ba 我gydF4y2Ba ggydF4y2Ba ngydF4y2Ba *gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba ΣgydF4y2Ba 23gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba bgydF4y2Ba 23gydF4y2Ba −gydF4y2Ba 我gydF4y2Ba 2gydF4y2Ba −gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba *gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba egydF4y2Ba −gydF4y2Ba 127gydF4y2Ba )gydF4y2Ba

ノーマルgydF4y2Ba

相対精度とULPの考慮事項gydF4y2Ba

無限の実数を有限のビット数で表現するには近似が必要です。この近似によって,浮動小数点計算で丸め誤差が発生することがあります。丸め誤差を測定するために,浮動小数点標準では相対誤差とULP(单位最后)を使用します。gydF4y2Ba

ULPgydF4y2Ba

指数範囲に上限がない場合,浮動小数点数xの单位最后一名(ULP)は,xをまたぐ直近の2つの浮動小数点数とbとの間の距離を表します。ieee - 754標準では,加算,乗算,除算などの基本的な算術演算の結果を正しく丸める必要があります。正しく丸められた結果とは,丸められた結果が正確な結果の0.5 ULP内であることを意味します。gydF4y2Ba

ULPが1の場合は10進数値にgydF4y2Ba1gydF4y2Baを加算することを意味します。10次の表は9桁の進数に対するπの近似と,1 ULPでこの近似値がどのように変化するかを示しています。gydF4y2Ba

浮動小数点数gydF4y2Ba 10進数の値gydF4y2Ba 单一型のieee - 754表現gydF4y2Ba ULPgydF4y2Ba
3.141592741gydF4y2Ba 1078530011gydF4y2Ba 0 | 10000000 | 10000000gydF4y2Ba 0gydF4y2Ba
3.141592979gydF4y2Ba 1078530012gydF4y2Ba 0 | 10000000 | 10000000gydF4y2Ba 1gydF4y2Ba

2つの連続的に表現可能な浮動小数点数間のギャップは,絶対値に応じて変わります。gydF4y2Ba

浮動小数点数gydF4y2Ba 10進数の値gydF4y2Ba 单一型のieee - 754表現gydF4y2Ba ULPgydF4y2Ba
1234567gydF4y2Ba 1234613304gydF4y2Ba 0 | 10010011 | 10010011gydF4y2Ba 0gydF4y2Ba
1234567.125gydF4y2Ba 1234613305gydF4y2Ba 0 | 10010011 | 10010011gydF4y2Ba 1gydF4y2Ba

相対誤差gydF4y2Ba

相対誤差は,浮動小数点数と実数の近似との間の差を測定します。相対誤差は,1.0から次に大きい数までの距離を返します。次の表に,相対精度による数値の実数の変化を示します。gydF4y2Ba

浮動小数点数gydF4y2Ba 10進数の値gydF4y2Ba 单一型のieee - 754表現gydF4y2Ba ULPgydF4y2Ba 相対誤差gydF4y2Ba
8388608gydF4y2Ba 1258291200gydF4y2Ba 0 | 10010110 | 10010110gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba
8388607gydF4y2Ba 1258291198gydF4y2Ba 0 | 10010101 | 10010101gydF4y2Ba 1gydF4y2Ba 2.3841858 e-07gydF4y2Ba
1gydF4y2Ba 1065353216gydF4y2Ba 0 | 01111111 | 01111111gydF4y2Ba 0gydF4y2Ba 1.1920929 e-07gydF4y2Ba
2gydF4y2Ba 1073741824gydF4y2Ba 0 | 10000000 | 10000000gydF4y2Ba 1gydF4y2Ba 2.3841858 e-07gydF4y2Ba

相対誤差の大きさは,浮動小数点数の実数値に応じて変わります。gydF4y2Ba

MATLABgydF4y2Ba®gydF4y2Baでは,関数gydF4y2Ba每股收益gydF4y2Baで浮動小数点の相対精度を測定します。詳細については,gydF4y2Ba每股收益gydF4y2Baを参照してください。gydF4y2Ba

参考gydF4y2Ba

モデリングガイドラインgydF4y2Ba

関数gydF4y2Ba

関連する例gydF4y2Ba

詳細gydF4y2Ba