このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
HDL コード生成でのモデル参照
コード生成でのモデル参照の利点
DUT サブシステム内のモデル参照により、以下が可能になります。
再利用、モジュラー開発、およびシミュレーションの高速化のために、大規模な設計を階層化された小規模な設計に分割する。
コードを段階的に生成してテストする。
HDL Coder™ は、[コンフィギュレーション パラメーター] ダイアログ ボックス 、 [モデル参照] ペイン 、 [リビルド] のオプションに従って、参照モデルのコードを段階的に生成します。
ただし、HDL Coder では、
[任意の変更を検出]
と[既知の依存関係で任意の変更が検出された場合]
は同じものとして扱われます。たとえば、[リビルド] を[任意の変更を検出]
と[既知の依存関係で任意の変更が検出された場合]
のどちらに設定しても、HDL Coder は参照モデルが変更されたときにのみ参照モデルのコードを再生成します。
参照モデルのコードの生成方法
既定では、1 つのライブラリへのモデル参照用 VHDL コードの生成が有効になっています。VHDL コードは別個のライブラリではなく 1 つのライブラリで生成されます。この場合、ScalarizePorts
プロパティを off
に設定してから HDL コードを生成します。
コードを生成するときに、生成された 2 つ以上の VHDL® コード モジュールのインターフェイス時にベクトル端子間で型指定または命名の競合が発生する場合は、競合しない端子定義を生成するために ScalarizePorts
プロパティを使用します。詳細については、端子のスカラー化を参照してください。
モデル参照境界でベクトル端子または行列端子を使用するには、生成された VHDL コードで端子をスカラー化するか、型定義またはコードを単一のライブラリに配置する必要があります。VHDL コードを生成するときに、端子のスカラー化を on
に設定するか、1 つのライブラリへのモデル参照用 VHDL コードの生成オプションを有効にします。
UI またはコマンド ラインを使用して参照モデルの HDL コードを生成できます。
UI の使用
Model ブロックを右クリックして [HDL コード]、[HDL ブロック プロパティ] を選択します。
[Architecture] については [ModelReference] を選択します。
DUT サブシステムから HDL コードを生成します。
コマンド ラインの使用
Model ブロックの
Architecture
プロパティをModelReference
に設定します。たとえば、モデル参照referenced_model
を含む DUT サブシステムmydut
の場合、次のコマンドを入力します。hdlset_param ('mydut/referenced_model', ... 'Architecture', 'ModelReference');
DUT サブシステムの HDL コードを生成します。
makehdl ('mydut');
モデル アルゴリズムのコードの生成
さまざまなモデル引数の値を使用して参照モデルのインスタンスに 1 つの Verilog® module
または VHDL entity
を生成するには、参照モデルのパラメーター付きのコードの生成を参照してください。
コメントの生成
[Model Block Properties] ダイアログ ボックスの [説明] フィールドにテキストを入力すると、HDL Coder によって HDL コードにコメントが生成されます。
制限
Model ブロックにはブロック パラメーターの既定値がなければならない。
Model ブロックをマスク サブシステムにすることはできない。
同じモデルを参照する複数のモデル参照は HDL ブロック プロパティが同じでなければならない。
参照モデルを保護モデルにすることはできない。
階層分散型パイプライン方式を無効にしなければならない。
HDL Coder はモデル参照全体でレジスタを移動させることはできません。したがって、参照モデルでは次の最適化が抑制される可能性があります。
分散型パイプライン方式
制約付き出力パイプライン
ストリーミング
これらの最適化を使用するには、モデル参照の代わりにサブシステム参照を使用することを検討してください。詳細については、サブシステム参照を参照してください。
モデル参照を使用して、HDL コードを生成するときに、生成されたモデル、検証モデル、およびコシミュレーション モデルはコンパイルまたはシミュレーションに失敗する可能性があります。コンパイルまたはシミュレーションのエラーを修正するには、参照モデルが読み込まれているか、検索パス上に存在することを確認します。
コーダーはリソース共有の最適化を適用して、参照モデル インスタンスを共有できます。ただし、この最適化は、同じ参照モデルを指すすべてのモデル参照のレートが最適化およびレート伝播後に同じである場合にのみ適用することができます。モデル参照の最終レートは元のレートと異なる場合がありますが、同じ参照モデルを指すモデル参照はすべて、最終レートが同じでなければなりません。