Main Content

浮動小数点演算子のレイテンシ値

HDL Coder™ のネイティブ浮動小数点サポートでは、浮動小数点設計から HDL コードを生成できます。HDL Coder は、ネイティブ浮動小数点モードにおいて、いくつかの Simulink® ブロックと Math Function ブロックおよび Trigonometric Function ブロックをサポートしています。以下の表は、これらの浮動小数点演算に対する既定のレイテンシ値を示しています。

ブロックのレイテンシ設定をカスタマイズして、レイテンシと最大周波数の間のトレードオフを図ることができます。詳細については、NFPCustomLatencyを参照してください。

また、ネイティブ浮動小数点 IP のグローバル カスタム レイテンシも設定できます。浮動小数点 IP のグローバル カスタム レイテンシを指定するには、表にリストされているキーワードを使用します。浮動小数点 IP のカスタム レイテンシの設定に関する詳細については、ネイティブ浮動小数点のレイテンシに関する考慮事項を参照してください。

これらの浮動小数点演算子のレイテンシを確認するには、MATLAB® で次のコマンドを入力します。

nfpconfig = hdlcoder.createFloatingPointTargetConfig('NativeFloatingPoint');
nfpconfig.IPConfig

Math Operations

この表は、HDL Coder においてネイティブ浮動小数点でサポートされている基本的な数学演算と、そのレイテンシ情報のリストを示しています。基本的な数学演算には、加算、減算、乗算などが含まれます。これらのブロックの大部分は single および double 両方のデータ型で使用できます。ブロックに対応する double データ型のエントリが表示されない場合は、そのブロックは double 型をサポートしていないことを意味しています。

基本的な数学演算子

Simulink ブロックキーワード データ型最小出力レイテンシ最大出力レイテンシカスタム レイテンシのサポート
AddADDSUBdouble611はい
single611
half48
SubtractADDSUBdouble611はい
single611
half48
Product または GainMULdouble69はい
single68
half47
DivideDIVdouble3161はい
single1732
half1019
ReciprocalRECIPdouble3060はい
single1631
half1019
Multiply-AddMULTADDsingle814いいえ
SqrtSQRTdouble3358はい
single1628
half612
HDL ReciprocalHDLRECIPsingle1421いいえ
Rounding FunctionROUNDINGdouble35はい
single35
Gain(Power of 2)GAINPOW2double12はい
single12
half14

この表は、HDL Coder においてネイティブ浮動小数点でサポートされている数学関数と、そのレイテンシ情報を示しています。Math Function ブロックの [関数] 設定を使用して関数を選択できます。

数学関数

Simulink ブロックキーワードデータ型最小出力レイテンシ最大出力レイテンシカスタム レイテンシのサポート
RemREMsingle1524いいえ
ModMODsingle1626いいえ
Reciprocal SqrtRSQRTsingle1630はい
HypotHYPOTsingle1733いいえ
Magnitude Square-double69はい
single68

この表は、HDL Coder においてネイティブ浮動小数点でサポートされている指数演算と、そのレイテンシ情報を示しています。Math Function ブロックの [関数] 設定を使用して関数を選択できます。これらのブロックは single データ型で使用できます。Double 型は Log 以外のブロックでサポートされていません。

指数/対数/べき乗

Simulink ブロックキーワードデータ型最小出力レイテンシ最大出力レイテンシカスタム レイテンシのサポート
ExpEXPsingle1626いいえ
PowPOWsingle3354いいえ
Pow10POW10single1626いいえ
LogLOGdouble3444いいえ
single2027
half917
Log10LOG10single1727いいえ
half1018

三角関数演算

この表は、HDL Coder においてネイティブ浮動小数点でサポートされている三角関数演算と、そのレイテンシ情報を示しています。Trigonometric Function ブロックの [関数] 設定を使用して関数を選択できます。これらのブロックは single データ型で使用できます。

三角関数

Simulink ブロックキーワードデータ型最小出力レイテンシ最大出力レイテンシカスタム レイテンシのサポート
SinSINdouble3434いいえ
single2727
half814
CosCOSdouble4848いいえ
single2727
half914
TanTANsingle3333いいえ
SincosSINCOSsingle2727いいえ
AsinASINsingle1723いいえ
AcosACOSsingle1723いいえ
AtanATANsingle3636いいえ
Atan2ATAN2single4242いいえ
SinhSINHsingle1830いいえ
CoshCOSHsingle1727いいえ
TanhTANHsingle2543いいえ
AsinhASINHsingle9494いいえ
AcoshACOSHsingle9393いいえ
AtanhATANHsingle6767いいえ

比較と変換

この表は、HDL Coder においてネイティブ浮動小数点でサポートされている関係演算子およびデータ型変換に関連する演算と、そのレイテンシ情報を示しています。これらのブロックは、singledouble 両方のデータ型で使用できます。ただし、MinMax ブロックは除きます。このブロックは double データ型をサポートしません。Data Type Conversion ブロックについては、double データ型、half データ型、single データ型の間、および浮動小数点データ型と他の固定小数点データ型の間で変換できます。

比較と変換

Simulink ブロックキーワードデータ型最小出力レイテンシ最大出力レイテンシカスタム レイテンシのサポート
Data Type ConversionCONVERTDOUBLE_TO_NUMERICTYPE36はい
DOUBLE_TO_SINGLE36
HALF_TO_NUMERICTYPE23
HALF_TO_SINGLE12
NUMERICTYPE_TO_DOUBLE36
NUMERICTYPE_TO_HALF24
NUMERICTYPE_TO_SINGLE66
SINGLE_TO_DOUBLE35
SINGLE_TO_HALF23
SINGLE_TO_NUMERICTYPE66
Relational OperatorRELOPdouble13はい
single13
half12
MinMaxMINMAXsingle33いいえ

参考

モデリング ガイドライン

関数

関連する例

詳細