Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

System Objects の HDL コード生成

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

System Objects を使用する理由

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

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

  • 複数の設計で再使用できるカスタム System object を設計および指定することができます。

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

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

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

事前定義された System object

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

ユーザー定義 System object

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

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

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

  • 設計内では System object ごとに step メソッドを 1 回だけ呼び出せます。

  • step は、入れ子にされたループや if ステートメント、switch ステートメントなどの入れ子にされた条件付きステートメント内に配置しないでください。

  • step は、行列インデックス演算を含む条件付きステートメント内に配置しないでください。

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

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

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

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

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

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

事前定義された System Objects を使用する HDL コード生成では、step メソッドのみがサポートされています。

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

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

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

ユーザー定義 System object に対する追加制限

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

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

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

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

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

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

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

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