メインコンテンツ

fimath

固定小数点の算術設定を指定

説明

fimath オブジェクトにより、fi オブジェクトに対して固定小数点算術演算を実行するための規則を決定するプロパティを設定できます。

作成

説明

F = fimathfimath オブジェクトを fimath の既定のプロパティ設定で作成します。

F = fimath(a) は、fi オブジェクト a の固定小数点算術プロパティをもつ fimath オブジェクトを作成します。

F = fimath(PropertyName = Value) は 1 つ以上の名前と値のペアの引数を使用して fimath オブジェクトのプロパティを指定します。コンストラクターで指定されないプロパティについては、いずれも既定値が使用されます。

プロパティ

すべて展開する

fimath のプロパティによって、fi オブジェクトでの固定小数点算術演算の実行ルールが決まります。推移性により、fimath のプロパティは fi オブジェクトのプロパティにもなります。これらのプロパティは個々の fi オブジェクトに対して設定できます。fimath オブジェクトのプロパティは常に書き込み可能です。

加算データ型のプロパティ

両方のオペランドが加算前に加算データ型にキャストされるかどうか。logical 値として指定します。

  • 1 または true - 加算前にキャストする

  • 0 または false - 加算前にキャストしない

このプロパティは常に logical 値を返します。

メモ

SumModeFullPrecision に設定されていると、このプロパティは非表示になります。

データ型: logical | single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

加算データ型の最大許容語長。正の整数として指定します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

加算データ型のバイアス。浮動小数点数として指定します。

例: F = fimath('SumBias',0)

データ型: single | double | half

加算データ型の固定小数点の指数。整数として指定します。

メモ

SumFixedExponent は、SumFractionLength の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

加算データ型の小数部の長さ (ビット単位)。整数として指定します。

メモ

SumFractionLength は、SumFixedExponent の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

加算データ型の決定方法。次のいずれかとして指定します。

  • FullPrecision — 結果の完全精度を維持します。

  • KeepLSB — 最下位ビットを維持します。加算データ型の語長は指定しますが、小数部の長さは加算の最下位ビットを維持するように設定されています。

  • KeepMSB — 最上位ビットを維持します。加算データ型の語長は指定しますが、小数部の長さは加算の最上位ビットを維持するように設定されており、必要以上の小数部ビットはありません。

  • SpecifyPrecision — 語長と小数部の長さまたは加算データ型の傾きとバイアスを指定します。

データ型: char

加算データ型の傾き。浮動小数点数として指定します。

メモ

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

データ型: single | double | half

加算データ型の傾き調整係数。1 以上 2 未満の浮動小数点数として指定します。

メモ

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

データ型: single | double | half

加算データ型の語長 (ビット単位)。正の整数として指定します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

乗算データ型のプロパティ

乗算データ型の最大許容語長。正の整数として指定します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

乗算データ型のバイアス。浮動小数点数として指定します。

データ型: single | double | half

乗算データ型の固定小数点の指数。整数として指定します。

メモ

ProductFixedExponent は、ProductFractionLength の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

乗算データ型の小数部の長さ (ビット単位)。整数として指定します。

メモ

ProductFractionLength は、ProductFixedExponent の負の値です。1 つのプロパティを変更すると、他のプロパティも変更されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

乗算データ型の決定方法。次の値のいずれかとして指定します。

  • FullPrecision — 結果の完全精度を維持します。

  • KeepLSB — 最下位ビットを維持します。乗算の語長は指定しますが、小数部の長さは積の最下位ビットを維持するように設定されています。

  • KeepMSB — 最上位ビットを維持します。乗算の語長は指定しますが、小数部の長さは積の最上位ビットを維持するように設定されています。

  • SpecifyPrecision — 語長と小数部の長さまたは乗算の傾きとバイアスを指定します。

データ型: char

乗算データ型の傾き。浮動小数点数として指定します。

メモ

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

データ型: single | double | half

乗算データ型の傾き調整係数。1 以上 2 未満の浮動小数点数として指定します。

メモ

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

これらのプロパティの 1 つを変更すると、他のプロパティに影響を与えます。

データ型: single | double | half

乗算データ型の語長 (ビット単位)。正の整数として指定します。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

丸めとオーバーフローのプロパティ

オーバーフロー時のアクション。次の値のいずれかとして指定します。

  • Saturate — オーバーフロー時に固定小数点の範囲の最大値または最小値に飽和します。

  • Wrap — オーバーフローの場合、ラップします。

データ型: char

使用する丸め手法。次のいずれかとして指定します。

  • Nearest — 最も近い整数に丸めます。等距離の場合は、正の無限大方向に丸めます。

  • Ceiling — 正の無限大方向に丸めます。

  • Convergent — 最も近い偶数方向へ丸めます。等距離の場合は、最も近い偶数の格納整数に丸めます (最小バイアス)。

  • Zero — ゼロ方向に丸めます。

  • Floor — 負の無限大方向に丸めます。

  • Round — 最も近い整数に丸めます。等距離の場合、負数に対しては負の無限大方向に丸め、正数に対しては正の無限大方向に丸めます。

データ型: char

すべて折りたたむ

この例では、既定のプロパティ設定で fimath オブジェクトを作成する方法を示します。

F = fimath
F = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

fimath オブジェクトのプロパティは、名前と値のペアを使用したオブジェクトの作成時に設定します。たとえば、オーバーフロー アクションを飽和に、丸め手法を最も近い偶数方向の丸めに設定します。

F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')
F = 
        RoundingMethod: Convergent
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

この例では、既存の fi オブジェクトから fimath オブジェクトを作成する方法を示します。

既定のプロパティをもち、値が指定されていない fi オブジェクトを作成します。

a = fi
a = 

[]

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 15

afimath プロパティをクエリします。

a.fimath
ans = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

a を入力として fimath オブジェクトを作成します。

F = fimath(a)
F = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

F は、a と同じ fimath プロパティをもちます。

拡張機能

すべて展開する

HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する