このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。gydF4y2Ba
ネイティブ浮動小数点テクノロジーによって,浮動小数点設計からHDLコードを生成できます。浮動小数点設計では,固定小数点設計に比べて,精度が向上し,ダイナミックレンジが高くなり,開発サイクルが短縮されます。設計に複雑な算術演算および三角関数演算がある場合は,ネイティブ浮動小数点テクノロジーを使用します。gydF4y2Ba
高密度脂蛋白编码器™は,浮動小数点演算のIEEE 754標準に準拠したコードを生成します。高密度脂蛋白编码器のネイティブ浮動小数点は,以下をサポートしています。gydF4y2Ba
最も近い整数方向への丸めモードgydF4y2Ba
非正規数gydF4y2Ba
南(非数),正无穷,ゼロなどの例外gydF4y2Ba
ULP(单位最后)および相対精度のカスタマイズ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
ネイティブ浮動小数点のサポートを使用する場合は,高密度脂蛋白编码器によって設計の非正規数を処理するかどうかを指定できます。既定の設定では,コードジェネレーターは非正規数をチェックしないため,ターゲットプラットフォームの面積が節約されます。gydF4y2Ba
ゼロ除算などの演算を実行したり,負の数値の対数を計算する場合,高密度脂蛋白编码器によって例外が検出および報告されます。次の表は,浮動小数点数のエンコードからさまざまな種類の例外を表す数値へのマッピングをまとめています。gydF4y2BaxgydF4y2Ba
はgydF4y2Ba不关心gydF4y2Ba値を示し0または1の値を取ることができます。gydF4y2Ba
符号gydF4y2Ba | 指数gydF4y2Ba | 仮数gydF4y2Ba | 値gydF4y2Ba | 説明gydF4y2Ba |
---|---|---|---|---|
xgydF4y2Ba | 0 xffgydF4y2Ba | 0 x00000000gydF4y2Ba |
|
無限大gydF4y2Ba |
xgydF4y2Ba | 0 xffgydF4y2Ba | 非ゼロ値gydF4y2Ba | 值=南gydF4y2Ba |
非数値gydF4y2Ba |
xgydF4y2Ba | 0 x00gydF4y2Ba | 0 x00000000gydF4y2Ba | 值= 0gydF4y2Ba |
ゼロgydF4y2Ba |
xgydF4y2Ba | 0 x00gydF4y2Ba | 非ゼロ値gydF4y2Ba |
|
非正規gydF4y2Ba |
xgydF4y2Ba | 0x00 < E < 0xFFgydF4y2Ba | xgydF4y2Ba |
|
ノーマルgydF4y2Ba |
無限の実数を有限のビット数で表現するには近似が必要です。この近似によって,浮動小数点計算で丸め誤差が発生することがあります。丸め誤差を測定するために,浮動小数点標準では相対誤差とULP(单位最后)を使用します。gydF4y2Ba
指数範囲に上限がない場合,浮動小数点数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 |
相対誤差は,浮動小数点数と実数の近似との間の差を測定します。相対誤差は,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