Main Content

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

HDL コード生成でのモデル参照

コード生成でのモデル参照の利点

DUT サブシステム内のモデル参照により、以下が可能になります。

  • 再利用、モジュラー開発、およびシミュレーションの高速化のために、大規模な設計を階層化された小規模な設計に分割する。

  • コードを段階的に生成してテストする。

    HDL Coder™ は、[コンフィギュレーション パラメーター] ダイアログ ボックス[モデル参照] ペイン[リビルド] のオプションに従って、参照モデルのコードを段階的に生成します。

    ただし、[任意の変更を検出][既知の依存関係で任意の変更が検出された場合] は同じものとして扱われます。たとえば、[リビルド][任意の変更を検出][既知の依存関係で任意の変更が検出された場合] のどちらに設定しても、参照モデルが変更されたときにのみ参照モデルのコードが再生成されます。

参照モデルのコードの生成方法

既定では、1 つのライブラリへのモデル参照用 VHDL コードの生成が有効になっています。VHDL コードは別個のライブラリではなく 1 つのライブラリで生成されます。この場合、ScalarizePorts プロパティを off に設定してから HDL コードを生成します。

コードを生成するときに、生成された 2 つ以上の VHDL® コード モジュールのインターフェイス時にベクトル端子間で型指定または命名の競合が発生する場合は、競合しない端子定義を生成するために ScalarizePorts プロパティを使用します。詳細については、端子のスカラー化を参照してください。

UI またはコマンド ラインを使用して参照モデルの HDL コードを生成できます。

UI の使用

  1. Model ブロックを右クリックして [HDL コード][HDL ブロック プロパティ] を選択します。

  2. [Architecture] については [ModelReference] を選択します。

  3. DUT サブシステムから HDL コードを生成します。

コマンド ラインの使用

  1. Model ブロックの Architecture プロパティを ModelReference に設定します。たとえば、モデル参照 referenced_model を含む DUT サブシステム mydut の場合、次のコマンドを入力します。

    hdlset_param ('mydut/referenced_model', ... 
                  'Architecture', 'ModelReference');

  2. DUT サブシステムの HDL コードを生成します。

    makehdl ('mydut');

モデル アルゴリズムのコードの生成

さまざまなモデル引数の値を使用して参照モデルのインスタンスに 1 つの Verilog® module または VHDL entity を生成するには、参照モデルのパラメーター付きのコードの生成を参照してください。

コメントの生成

[Model Block Properties] ダイアログ ボックスの [説明] フィールドにテキストを入力すると、HDL Coder によって HDL コードにコメントが生成されます。

制限

  • Model ブロックにはブロック パラメーターの既定値がなければならない。

  • Model ブロックをマスク サブシステムにすることはできない。

  • 同じモデルを参照する複数のモデル参照は HDL ブロック プロパティが同じでなければならない。

  • 参照モデルを保護モデルにすることはできない。

  • 階層分散型パイプライン方式を無効にしなければならない。

HDL Coder はモデル参照全体でレジスタを移動させることはできません。したがって、参照モデルでは次の最適化が抑制される可能性があります。

  • 分散型パイプライン方式

  • 制約付き出力パイプライン

  • ストリーミング

モデル参照を使用して、HDL コードを生成するときに、生成されたモデル、検証モデル、およびコシミュレーション モデルはコンパイルまたはシミュレーションに失敗する可能性があります。コンパイルまたはシミュレーションのエラーを修正するには、参照モデルが読み込まれているか、検索パス上に存在することを確認します。

コーダーはリソース共有の最適化を適用して、参照モデル インスタンスを共有できます。ただし、この最適化は、同じ参照モデルを指すすべてのモデル参照のレートが最適化およびレート伝播後に同じである場合にのみ適用することができます。モデル参照の最終レートは元のレートと異なる場合がありますが、同じ参照モデルを指すモデル参照はすべて、最終レートが同じでなければなりません。