Simulink ブロックに対するネイティブ浮動小数点のサポート
HDL Coder™ のネイティブ浮動小数点を使用して、ターゲットに依存しない HDL コードを浮動小数点設計から生成できます。浮動小数点設計では、固定小数点設計に比べて、精度が向上し、ダイナミック レンジが高くなり、開発サイクルが短縮されます。設計に複雑な算術演算および三角関数演算がある場合は、ネイティブ浮動小数点テクノロジーを使用します。
このページでは、HDL Coder のネイティブ浮動小数点で使用できる Simulink® のブロックとパラメーター設定のリストを示します。
HDL Floating Point Operations ライブラリ
HDL Floating Point Operations ライブラリでは、データ型が single と double のブロックが HDL Coder のネイティブ浮動小数点モードでサポートされます。Discrete-Time Integrator や Discrete PID Controller などの特定のブロックには、ゼロ レイテンシ手法を使用します。
half 型を使用する場合は、次のブロックについて HDL Coder でネイティブ浮動小数点がサポートされます。
Math Operations ライブラリの Simulink ブロックに対するサポート
Math Operations ライブラリでは、次のブロックとデータ型について HDL Coder でネイティブ浮動小数点がサポートされます。
| ブロック名 | half データ型のサポート | single データ型のサポート | double データ型のサポート | 複素数データのサポート | 注意 |
|---|---|---|---|---|---|
| Abs | はい | はい | はい | はい | |
| Add | はい | はい | はい | はい | |
| Assignment | いいえ | はい | はい | はい | |
| Bias | いいえ | はい | はい | はい | |
| Complex to Real-Imag | いいえ | はい | はい | はい | |
| Divide | はい | はい | はい | いいえ | |
| Dot Product | はい | はい | はい | いいえ | |
| Gain | はい | はい | はい | はい | |
| MinMax | いいえ | はい | はい | いいえ | |
| Multiply-Add | はい | はい | はい | はい | |
| Product | はい | はい | はい | はい | [乗算] ブロック パラメーターを [行列 (*)] に設定して行列の乗算を実行するようにブロックを設定する場合、[DotProductStrategy] を [Fully Parallel] に設定しなければなりません。 |
| Product of Elements | はい | はい | はい | はい | |
| Real-Imag to Complex | いいえ | はい | はい | いいえ | |
| Reciprocal Sqrt | いいえ | はい | はい | いいえ | |
| Reshape | はい | はい | はい | はい | |
| Sqrt | いいえ | はい | はい | いいえ | |
| Subtract | はい | はい | はい | はい | |
| Sum | はい | はい | はい | はい | |
| Sum of Elements | はい | はい | はい | はい | |
| Trigonometric Function | いいえ | はい | いいえ | いいえ | |
| Unary Minus | はい | はい | はい | はい | |
| Vector Concatenate, Matrix Concatenate | はい | はい | はい | はい |
Math Function ブロックの関数に対するサポート
Math Function ブロックでは、次の関数について HDL Coder でネイティブ浮動小数点がサポートされます。
| 数学関数 | 浮動小数点のサポート | 複素数データのサポート | ||
|---|---|---|---|---|
| half データ型 | single データ型 | double データ型 | ||
exp | いいえ | はい | いいえ | いいえ |
log | いいえ | はい | はい | いいえ |
10^u | いいえ | はい | いいえ | いいえ |
log10 | いいえ | はい | いいえ | いいえ |
magnitude^2 | いいえ | はい | はい | はい |
square | いいえ | はい | いいえ | はい |
pow | いいえ | はい | いいえ | いいえ |
conj | いいえ | はい | いいえ | はい |
reciprocal | はい | はい | はい | いいえ |
hypot | いいえ | はい | いいえ | いいえ |
rem | いいえ | はい | いいえ | いいえ |
mod | いいえ | はい | いいえ | いいえ |
transpose | はい | はい | はい | はい |
hermitian | いいえ | はい | いいえ | はい |
他のライブラリの Simulink ブロックに対するサポート
次の HDL Coder ブロック ライブラリについて、HDL Coder でネイティブ浮動小数点がサポートされます。
| ブロック ライブラリ | half データ型のサポート | single データ型のサポート | double データ型のサポート |
|---|---|---|---|
Discrete |
|
|
|
HDL Operations | このライブラリのブロックはサポートされません。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
HDL RAMs | このライブラリのブロックはサポートされません。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
HDL Subsystems | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
Logic and Bit Operations |
| すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
Lookup Tables | このライブラリのブロックはサポートされません。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
Model Verification | このライブラリのブロックはサポートされません。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
Model-Wide Utilities | このライブラリのブロックはサポートされません。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
Ports & Subsystems |
|
|
|
Signal Attributes |
| すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
Signal Routing | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
Sources | Inport、Constant、および Ground の各ブロック。 | Inport、Constant、および Ground の各ブロック。 | Inport、Constant、および Ground の各ブロック。 |
Sinks | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 | すべてのブロックがサポートされます。 |
User-Defined Functions | MATLAB Function ブロック。 | MATLAB Function ブロック。 | MATLAB Function ブロック。 |
Stateflow チャートに対するサポート
HDL Coder のネイティブ浮動小数点モードでコードを生成する際、次のデータ型をもつ Stateflow® チャートがサポートされます。
浮動小数点定数
浮動小数点入力
浮動小数点引数をもつ関数呼び出し
浮動小数点算術演算
次のチャート タイプがサポートされます。
Classic チャート
Mealy チャート
状態遷移表
真理値表
要件テーブル
条件付き遷移をもつ Stateflow チャートと Moore チャートはサポートされません。Stateflow チャートの条件付き遷移の詳細については、動作モード間の遷移 (Stateflow)を参照してください。
Simulink ブロックの制限
次のブロックまたはブロック アーキテクチャについては、HDL Coder でネイティブ浮動小数点がサポートされません。
[Architecture] パラメーターが
[Tree]または[Linear]に設定された複素数値の入力または出力のデータをもつ Dot Product ブロックDead Zone ブロックと Dead Zone Dynamic ブロック
Polar to Cartesian ブロック
Data Type Conversion ブロックの場合:
[等価な値をもつ入力と出力] パラメーターを
[整数格納 (SI)]に設定することはできない。[整数オーバーフローで飽和] チェック ボックスをオフのままにしなければならない。