最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
HDL Coder™ のコード生成では、事前定義およびユーザー定義両方の System objects をサポートしています。
System objects には次のような設計上の利点があります。
既存の System object™ コンポーネントを使用することにより、設計とテストの時間を短縮できます。
複数の設計で再使用できるカスタム System object を設計および指定することができます。
System object でアルゴリズムを一度定義すると、1 つの MATLAB 設計で複数のアルゴリズムのインスタンスを再使用できます。
この使用法は、状態が含まれる MATLAB 関数では使用できません。たとえば、アルゴリズムに状態があり、永続変数の使用が必要となっている場合、その関数を設計内で複数回インスタンス化することはできません。代わりに、その関数をコピーし、そのインスタンスに別の名前を設定する必要があります。
System objects から生成する HDL コードはモジュール化されていて、読みやすくなっています。
HDL コード生成では、MATLAB®、DSP System Toolbox™ および Communications Toolbox™ で使用可能な事前定義された System objects がサポートされています。一覧は、HDL コード生成に使用できる事前定義済みの System Objectsを参照してください。
HDL コード生成用にユーザー定義 System object を作成することができます。例については、ユーザー定義 System Objects のコードの生成を参照してください。
次の制限事項は、すべての System objects の HDL コード生成に適用されます。
設計内では System
object ごとに step
メソッドを 1 回だけ呼び出せます。
step
は、入れ子にされたループや if
ステートメント、switch
ステートメントなどの入れ子にされた条件付きステートメント内に配置しないでください。
step
は、行列インデックス演算を含む条件付きステートメント内に配置しないでください。
状態をもつ System object は、永続として宣言しなければなりません。
調整可能なプライベート プロパティまたはパブリック プロパティ、もしくは DiscreteState
属性のあるプロパティをもつ System
object は、状態をもちます。
dsp.Delay
System
object はフィードフォワード遅延モデリングでのみ使用できます。
MATLAB コードに System
object がある場合、UseMatrixTypesInHDL
属性は 'off' に設定しなければなりません。
列挙型はサポートされていません。
グローバル変数はサポートされていません。
事前定義された System Objects を使用する HDL コード生成では、step
メソッドのみがサポートされています。
ユーザー定義の System Objects オブジェクトの場合、step
メソッド、あるいは output
メソッドと update
メソッドが HDL コード生成でサポートされています。
MATLAB System ブロック内からの HDL コード生成では、事前定義された System objects はサポートされていません。
すべての System objects に対する制限に加えて、ユーザー定義 System objects の HDL コード生成には次の制限が適用されます。
setupImpl
および resetImpl
メソッドでは、プロパティまたは変数に値を割り当てる場合、その値は定数でなければなりません。
設計で output
メソッドと update
メソッドを使用する場合は、System
object 1 つにつき各メソッドを 1 回だけ呼び出すことができます。
プロパティの初期値とリセット値はコンパイル時定数でなければなりません。
ユーザー定義 System objects をパブリック プロパティにすることはできません。
出力が複数ある step
メソッドを条件付きステートメント内に呼び出すことはできません。
HDL コード生成で System objects を使用する方法の詳細については、次の例の MATLAB 設計を参照してください。