主要内容GydF4y2Ba

。GydF4y2Ba

固定小数点设计の概念と用语GydF4y2Ba

固定小数点データ型GydF4y2Ba

デジタルハードウェアでは,数値はバイナリワードで格纳されます。バイナリワードとは固定长の连続ビット(1と0)です。この连続する1と0をハードウェアコンポーネントやソフトウェア关数が解釈する方法はデータ型によって定义されます。GydF4y2Ba

2进数は浮动小数点または固定小数点データ型として表されます。この节では,固定小数点数,データ型および数学演算に关连するさまざまな用语と概念について说明します。GydF4y2Ba

固定小数点データ型は,ビット単位の语长,2进小数点の位置,および数値の符号属性(符号付きまたは符号なしを指定可能)によって特徴付けられます。符号付きの数値とデータ型では正と负の両方の値を表すことができますが,符号なしの数値とデータ型で表すことができるのはゼロ以上の値のみです。GydF4y2Ba

2进小数点の位置によって,固定小数点の値がスケーリングされて解釈されます。GydF4y2Ba

たとえば,以下は一般化固定小数点数(符号付きまたは符号なし)を2进数で表したものです。GydF4y2Ba

ここで,GydF4y2Ba

  • B.GydF4y2Ba一世GydF4y2BaはGydF4y2Ba一世GydF4y2Ba番目の2进数です。GydF4y2Ba

  • 西城はバイナリワードのビット数であり,語長とも呼ばれます。GydF4y2Ba

  • B.GydF4y2BaWL-1GydF4y2Baは最上位(最大)ビット(MSB)の位置です。符号付き2进数では,このビットは,数値が正と负のどちらであるかを示す符号ビットです。GydF4y2Ba

  • B.GydF4y2Ba0.GydF4y2Baは最下位(最小)ビット(LSB)の位置です。バイナリワードのこのビットは,最小値を表すことができます。LSBの重みは次のようになります。GydF4y2Ba

    w ^GydF4y2Ba E.GydF4y2Ba 一世GydF4y2Ba GGydF4y2Ba HGydF4y2Ba T.GydF4y2Ba L.GydF4y2Ba S.GydF4y2Ba B.GydF4y2Ba =GydF4y2Ba 2GydF4y2Ba -GydF4y2Ba FGydF4y2Ba R.GydF4y2Ba 一种GydF4y2Ba CGydF4y2Ba T.GydF4y2Ba 一世GydF4y2Ba O.GydF4y2Ba N.GydF4y2Ba L.GydF4y2Ba E.GydF4y2Ba N.GydF4y2Ba GGydF4y2Ba T.GydF4y2Ba HGydF4y2Ba

    ここで,fractionlengthは2进小数点の右侧のビット数です。GydF4y2Ba

  • 2进小数点の左侧のビットは整数ビットや符号ビットで,2进小数点の右侧のビットは小数ビットです0.2进小数点の左侧のビット数は整数部の长さと呼ばれています。この例の2进小数点はLSBの4桁左に示されています。したがって,この数値には小数ビットが4个ある,あるいは小数部の长さが4であると言われます。GydF4y2Ba

固定小数点データ型は符号付きまたは符号なしです。GydF4y2Ba

符号付き2進固定小数点数は通常,次の3つのいずれかの方法で表します。GydF4y2Ba

  • 符号/大きさ - 符号付きの固定小数点数または浮动小数点数の表现符号/大きさ表现では,バイナリワードの1つのビットは常に専用の符号ビットであり,ワードの残りのビットは数値の大きさをエンコードします。符号/大きさ表现を使用した否定は,符号ビットを0(正)から1(负)へ,または1から0へ反転することで构成されます。GydF4y2Ba

  • 1の补数GydF4y2Ba

  • 2の补数 - 2の补数は符号付き固定小数点数を表す最も一般的な方法です详细は,GydF4y2Ba2の补数GydF4y2Baを参照してください。GydF4y2Ba

符号なし固定小数点数はゼロ以上の数値のみを表现できます。GydF4y2Ba

スケーリングGydF4y2Ba

[勾配バイアス]表现では,固定小数点数はスキームに応じてエンコードできます。GydF4y2Ba

R.GydF4y2Ba E.GydF4y2Ba 一种GydF4y2Ba L.GydF4y2Ba -GydF4y2Ba w ^GydF4y2Ba O.GydF4y2Ba R.GydF4y2Ba L.GydF4y2Ba D.GydF4y2Ba vGydF4y2Ba 一种GydF4y2Ba L.GydF4y2Ba 你GydF4y2Ba E.GydF4y2Ba =GydF4y2Ba (GydF4y2Ba S.GydF4y2Ba L.GydF4y2Ba O.GydF4y2Ba P.GydF4y2Ba E.GydF4y2Ba ×GydF4y2Ba 一世GydF4y2Ba N.GydF4y2Ba T.GydF4y2Ba E.GydF4y2Ba GGydF4y2Ba E.GydF4y2Ba R.GydF4y2Ba )GydF4y2Ba +GydF4y2Ba B.GydF4y2Ba 一世GydF4y2Ba 一种GydF4y2Ba S.GydF4y2Ba

ここで,勾配は次のように表现できます。GydF4y2Ba

S.GydF4y2Ba L.GydF4y2Ba O.GydF4y2Ba P.GydF4y2Ba E.GydF4y2Ba =GydF4y2Ba S.GydF4y2Ba L.GydF4y2Ba O.GydF4y2Ba P.GydF4y2Ba E.GydF4y2Ba 一种GydF4y2Ba D.GydF4y2Ba jGydF4y2Ba 你GydF4y2Ba S.GydF4y2Ba T.GydF4y2Ba mGydF4y2Ba E.GydF4y2Ba N.GydF4y2Ba T.GydF4y2Ba ×GydF4y2Ba 2GydF4y2Ba E.GydF4y2Ba XGydF4y2Ba P.GydF4y2Ba O.GydF4y2Ba N.GydF4y2Ba E.GydF4y2Ba N.GydF4y2Ba T.GydF4y2Ba

小数部の勾配の同義語として”勾配調整”GydF4y2Baという用语が使用されることがあります。GydF4y2Ba

自明のケースでは,勾配= 1,バイアス= 0です。一世N.T.8 などの純粋な整数ではスケーリングは常に自明であり、真の浮動小数点型の single と double でもまた自明です。

整数はGydF4y2Ba“整数格纳” と呼ばれることがあります。これは生の2进数で,2进小数点がワードの右端にあると想定されます。システムツールボックスでは,指数の负の数値をGydF4y2Ba“小数部の长さ” と呼ぶことがあります。GydF4y2Ba

勾配とバイアスは共に固定小数点数のスケーリングを表します。ゼロバイアスの数では,勾配のみがスケーリングに影響します。2進小数点位置でのみスケーリングされる固定小数点数は、バイアスがゼロで勾配調整が 1 に等しい Fixed-Point Designer™ [勾配 バイアス] で表した数値に相当します。これは「2 進小数点専用スケーリング」または「2 のべき乗スケーリング」と呼ばれます。

R.GydF4y2Ba E.GydF4y2Ba 一种GydF4y2Ba L.GydF4y2Ba -GydF4y2Ba w ^GydF4y2Ba O.GydF4y2Ba R.GydF4y2Ba L.GydF4y2Ba D.GydF4y2Ba vGydF4y2Ba 一种GydF4y2Ba L.GydF4y2Ba 你GydF4y2Ba E.GydF4y2Ba =GydF4y2Ba 2GydF4y2Ba E.GydF4y2Ba XGydF4y2Ba P.GydF4y2Ba O.GydF4y2Ba N.GydF4y2Ba E.GydF4y2Ba N.GydF4y2Ba T.GydF4y2Ba ×GydF4y2Ba 一世GydF4y2Ba N.GydF4y2Ba T.GydF4y2Ba E.GydF4y2Ba GGydF4y2Ba E.GydF4y2Ba R.GydF4y2Ba

またはGydF4y2Ba

R.GydF4y2Ba E.GydF4y2Ba 一种GydF4y2Ba L.GydF4y2Ba -GydF4y2Ba w ^GydF4y2Ba O.GydF4y2Ba R.GydF4y2Ba L.GydF4y2Ba D.GydF4y2Ba vGydF4y2Ba 一种GydF4y2Ba L.GydF4y2Ba 你GydF4y2Ba E.GydF4y2Ba =GydF4y2Ba 2GydF4y2Ba -GydF4y2Ba FGydF4y2Ba R.GydF4y2Ba 一种GydF4y2Ba CGydF4y2Ba T.GydF4y2Ba 一世GydF4y2Ba O.GydF4y2Ba N.GydF4y2Ba L.GydF4y2Ba E.GydF4y2Ba N.GydF4y2Ba GGydF4y2Ba T.GydF4y2Ba HGydF4y2Ba ×GydF4y2Ba 一世GydF4y2Ba N.GydF4y2Ba T.GydF4y2Ba E.GydF4y2Ba GGydF4y2Ba E.GydF4y2Ba R.GydF4y2Ba

システムツールボックスソフトウェアでは,この量の語長と小数部の長さを指定することにより,多くのブロックの出力またはパラメーターに固定小数点データ型とスケーリングを定義できます。語長と小数部の長さは,2進小数点のみの信号についてデータ型とスケーリング情報の全体を定義します。GydF4y2Ba

固定小数点データ型をサポートするすべてのシステムツールボックスブロックで,2進小数点専用スケーリングの信号がサポートされます。延迟や矩阵转置などの,データを並べ替えるだけで算術演算を行わない多くの固定小数点ブロックでも[勾配バイアス]スケーリングをもつ信号がサポートされます。GydF4y2Ba

精度と范囲GydF4y2Ba

丸め手法が呼び出されるかオーバーフローが発生するかを判断するには,シミュレーション内のブロックで选択する固定小数点データ型およびスケーリングの精度と范囲に注意しなければなりません。GydF4y2Ba

範囲GydF4y2Ba

范囲とは,固定小数点データ型とスケーリングで表现できる数値の范囲です。以下は,语长がWL,スケーリングがS,バイアスが乙である2の补数の固定小数点数で表现可能な数値の范囲です。GydF4y2Ba

任意のデータ型の固定小数点数は,符号付きと符号なしのどちらも,异なるビットパターン数は2GydF4y2BaWLGydF4y2Baです。GydF4y2Ba

たとえば,2の补数では,ゼロと同様に负の数値も表现しなければならないので,最大値は2GydF4y2BaWL-1GydF4y2Baです。ゼロの表现は1つしかないため,正の数値と负の数値の数が异なります。つまり,-2GydF4y2BaWL-1GydF4y2Baの表現はありますが,2GydF4y2BaWL-1GydF4y2Baの表现はありません。GydF4y2Ba

全范囲とは,データ型の最も広い范囲です。浮动小数点型の场合,全范囲は-∞〜∞です。整数型の场合,全范囲は,その型が表现できる最小整数値から最大整数値まで(有限)の范囲です。たとえば,符号付き8ビット整数の场合は-128〜127です。GydF4y2Ba

オーバーフローの处理 -GydF4y2Ba固定小数点のデータ型は有限范囲内の数値を表すため,演算の结果がその范囲の数値より大きいか小さい场合,オーバーフローが発生する可能性があります。GydF4y2Ba

システムツールボックスソフトウェアでは,オーバーフローを避けるためにデータ型にガードビットを随时追加することはできません。ガードビットとは,ハードウェアレジスタとソフトウェアシミュレーションのいずれかで,オーバーフローの场合に情报が失われないようにするためにバイナリワードの最上部に追加される特别なビットです。すべてのガードビットはモデルの初期化时に割り当てられなければなりません。ただし,ソフトウェアでオーバーフローをGydF4y2Ba“饱和” またはGydF4y2Ba“ラップ” することは可能です。饱和は,正のオーバーフローを使用范囲内の最大の正の数値として表し,负のオーバーフローを使用范囲内の最大の负の数値として表します。ラップはモジュロ演算を使用して,オーバーフローをそのデータ型の表现可能な范囲内にキャストします详细。は,GydF4y2Baモジュロ演算GydF4y2Baを参照してください。GydF4y2Ba

精度GydF4y2Ba

固定小数点数の精度は,そのデータ型とスケーリングで表现できる连続値间の差异で,最下位ビットの値と等価です。最下位ビットの値,つまり数値の精度は小数部のビット数によって决まります。固定小数点値は,そのデータ型とスケーリングの精度の半分以内で表现できます。この定义の同义语として分解能という用语が使用されることがあります。GydF4y2Ba

たとえば,2进小数点の右侧が4ビットの固定小数点の表现は,精度が2GydF4y2Ba-4GydF4y2Ba,つまり0.0625であり,最下位ビットの値になります。このデータ型とスケーリングの范囲内の数値はすべて(2GydF4y2Ba-4GydF4y2Ba)/ 2,つまり0.03125以内で表现でき,これは精度が半分になります。これは有限精度の数値を表す例です。GydF4y2Ba

丸めモード -GydF4y2Ba数値を有限精度で表す场合,使用可能な范囲のすべての数値を正确に表すことができるとは限りません。数値を指定されたデータ型とスケーリングで正确に表现できない场合,その数値は表现可能な数にGydF4y2Ba“丸め” られます。丸め演算では常に精度が失われますが,演算のコストと生じるバイアスの量は丸めモードによって异なります。コストとバイアスの间のトレードオフにおける柔软性を高めるため,DSP系统工具箱™ソフトウェアでは现在,以下の丸めモードがサポートされています。GydF4y2Ba

  • [正方向]GydF4y2Baは,计算结果を正の无限大方向の最も近い表现可能な数値に丸めます。GydF4y2Ba

  • (最も近い偶数方向)GydF4y2Baは,计算结果を最も近い表现可能な数値に丸めます。同数の场合,GydF4y2Ba(最も近い偶数方向)GydF4y2Baは最も近い偶数に丸めます。これはツールボックスで提供される最もバイアスの小さい丸めモードです。GydF4y2Ba

  • [负方向]GydF4y2Baは切り舍てに等しく,计算结果を负の无限大方向の最も近い表现可能な数値に丸めます。切り舍て操作により,1つ以上の最下位ビットが数値から削除されます。GydF4y2Ba

  • (最も近い整数方向)GydF4y2Baは,计算结果を最も近い表现可能な数値に丸めます。同数の场合,GydF4y2Ba(最も近い整数方向)GydF4y2Baは正の无限大方向の最も近い表现可能な数値に丸めます。GydF4y2Ba

  • (最も近い整数方向)GydF4y2Baは,计算结果を最も近い表现可能な数値に丸めます。同数の场合,GydF4y2Ba(最も近い整数方向)GydF4y2Baは正の数値を正の无限大方向の最も近い表现可能な数値に丸め,负の数値を负の无限大方向の最も近い表现可能な数値に丸めます。GydF4y2Ba

  • [シンプルな丸め]GydF4y2Baは,生成コードに追加される丸めコードの量が最小限になるような丸めモード(GydF4y2Ba[负方向]GydF4y2BaまたはGydF4y2Ba[ゼロ方向]GydF4y2Ba)を使用して计算结果を丸めます详细。は,GydF4y2Ba丸めモード:最も簡潔GydF4y2Ba(定点设计师)GydF4y2Baを参照してください。GydF4y2Ba

  • [ゼロ方向]GydF4y2Baは,计算结果をゼロ方向の最も近い表现可能な数値に丸めます。GydF4y2Ba

これらの各丸めモードの詳細については,GydF4y2Ba丸めGydF4y2Ba(定点设计师)GydF4y2Baを参照してください。GydF4y2Ba

丸めモードを直接比較するには,GydF4y2Ba丸め手法の选択GydF4y2Ba(定点设计师)GydF4y2Baを参照してください。GydF4y2Ba