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
half46
DivideDIVdouble3161はい
single1732
half1019
ReciprocalRECIPdouble3060はい
single1631
half1019
Multiply-AddMULTADDsingle814いいえ
SqrtSQRTdouble3358はい
single1628
HDL ReciprocalHDLRECIPsingle1421いいえ
Rounding FunctionROUNDINGdouble35はい
single35
Gain(Power2)GAINPOW2double12はい
single12
half12

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

数学関数

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

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

指数/対数/べき乗

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

三角関数演算

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

三角関数

Simulink ブロックキーワード最小出力レイテンシ最大出力レイテンシカスタム レイテンシのサポート
SinSIN2727いいえ
CosCOS2727いいえ
TanTAN3333いいえ
SincosSINCOS2727いいえ
AsinASIN1723いいえ
AcosACOS1723いいえ
AtanATAN3636いいえ
Atan2ATAN24242いいえ
SinhSINH1830いいえ
CoshCOSH1727いいえ
TanhTANH2543いいえ
AsinhASINH9494いいえ
AcoshACOSH9393いいえ
AtanhATANH6767いいえ

比較と変換

この表は、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いいえ

参考

モデリング ガイドライン

関数

関連する例

詳細