Main Content

System Objects の HDL コード生成

HDL Coder™ のコード生成では、事前定義およびユーザー定義両方の System objects をサポートしています。

System Objects を使用する理由

System objects には次のような設計上の利点があります。

  • 既存の System object™ コンポーネントを使用することにより、設計とテストの時間を短縮できます。

  • カスタム System objects を設計および検証し、複数の設計で再利用できます。

  • System object でアルゴリズムを一度定義すると、1 つの MATLAB 設計で複数のアルゴリズムのインスタンスを再使用できます。

    この使用法は、状態が含まれる MATLAB 関数では使用できません。たとえば、アルゴリズムに状態があり、永続変数の使用が必要となっている場合、その関数を設計内で複数回インスタンス化することはできません。代わりに、その関数をコピーし、そのインスタンスに別の名前を設定する必要があります。

  • System objects から生成する HDL コードはモジュール化されていて、読みやすくなっています。

事前定義された System Objects

HDL コード生成では、MATLAB®、DSP System Toolbox™ および Communications Toolbox™ で使用可能な事前定義された System objects がサポートされています。一覧は、HDL コード生成に使用できる事前定義済みの System Objectsを参照してください。

ユーザー定義 System Objects

HDL コード生成用にユーザー定義 System objects を作成できます。例については、ユーザー定義 System Objects のコードの生成を参照してください。

メモ

MATLAB クラスを HDL コード生成に使用するには、そのクラスは System object でなければなりません。

System Objects の HDL コード生成の制限

System objects の HDL コード生成には次の制限事項が適用されます。

  • 設計内では System object を 1 回だけ呼び出せます。

  • オブジェクトは、入れ子にされたループや if ステートメント、switch ステートメントなどの入れ子にされた条件付きステートメント内で呼び出さないでください。

  • オブジェクトは、行列インデックス演算を含む条件付きステートメント内で呼び出さないでください。

  • 状態をもつ System object は、永続として宣言しなければなりません。

    調整可能なプライベート プロパティまたはパブリック プロパティ、もしくは DiscreteState 属性のあるプロパティをもつ System object は、状態をもちます。

  • dsp.Delay System object はフィードフォワード遅延モデリングでのみ使用できます。

  • cell 配列内の System object はサポートされていません。

  • 列挙型はサポートされていません。

  • グローバル変数はサポートされていません。

サポートされているメソッド

事前定義された System objects の場合、オブジェクト自体の呼び出しは HDL コード生成でサポートされていますが、その他のオブジェクト関数はサポートされていません。

ユーザー定義の System objects の場合、step メソッド、あるいは output メソッドと update メソッドが HDL コード生成でサポートされています。

事前定義された System Objects を使用する場合の他の制限

MATLAB System ブロック内からの HDL コード生成では、事前定義された System objects はサポートされていません。

ユーザー定義 System Objects を使用する場合の他の制限

すべての System objects に対する制限に加えて、ユーザー定義 System objects の HDL コード生成には次の制限が適用されます。

  • setupImpl および resetImpl メソッドでは、プロパティまたは変数に値を割り当てる場合、その値は定数でなければなりません。

  • 設計で output メソッドと update メソッドを使用する場合は、System object 1 つにつき各メソッドを 1 回だけ呼び出すことができます。

  • プロパティの初期値とリセット値はコンパイル時定数でなければなりません。

  • ユーザー定義 System objects をパブリック プロパティにすることはできません。

  • 出力が複数ある System object を条件付きステートメント内に呼び出すことはできません。

HDL コード生成での System object の例

HDL コード生成で System objects を使用する方法の詳細については、次の例の MATLAB 設計を参照してください。