Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

クロスプラットフォームUVMコンポーネントを生成する

Simulink® 環境から UVM フレームワークに直接移行するための Universal Verification Methodology (UVM) コンポーネントを生成します。HDL Verifier™ は、ダイレクト プログラミング インターフェイス (DPI) を使用して、UVM コンポーネント内に生成された C コードとして Simulink サブシステムをエクスポートします。生成されたこれらのコンポーネントを既存の UVM 環境に統合できます。生成された動作 DUT を詳細な HDL 設計に置き換えることにより、生成された UVM テスト ベンチを使用して HDL DUT をテストすることもできます。

Windows® 64 ホスト マシンから UVM コンポーネントを生成する場合は、コンポーネント ライブラリを構築し、Linux® オペレーティング システムでシミュレーションを実行することもできます。ターゲットとホストが同じでない場合は、共有ライブラリまたは HDL シミュレータ プロジェクトを手動で移植してビルドする必要があります。Linux マシンで生成された UVM コンポーネントを他のオペレーティング システムに移植することはできません。

このワークフローは、Cadence® Xcelium™、Mentor Graphics® ModelSim®、Mentor Graphics Questa®、および Synopsys® VCS® HDL シミュレータをサポートします。

メモ

この機能には ASIC Testbench for HDL Verifier アドオンが必要です。

ターゲットツールチェーンを選択

ターゲット マシンがホストと同じオペレーティング システムを使用している場合は、インストールされているコンパイラを選択するか、ツールがコンパイラを自動的に検出するように要求できます。シミュレータ プロジェクトを生成する場合、または他のコンパイラがインストールされていない場合は、ホストと同じオペレーティング システムの HDL シミュレータを選択します。ただし、ターゲット オペレーティング システムがホストと異なる場合は、ターゲット シミュレーターとオペレーティング システムを選択する必要があります。

UVM 生成では SystemVerilog DPI を生成するテクノロジが利用されるため、まずサポートするシステム ターゲット ファイルを選択する必要があります。モデルを開き、Apps タブで HDL Verifier をクリックします。左側のペインで DPI Component Generation を選択し、HDL Verifier タブで C Code Settings をクリックします。Configuration Parameters ダイアログが Code Generation ペインに開きます。Target selectionシステム ターゲット ファイル で、Browse をクリックし、リストから systemverilog_dpi_grt.tlc を選択します。

あるいは、Embedded Coder® 製品をお持ちの場合は、ターゲット systemverilog_dpi_ert.tlc を選択できます。このターゲットを使用すると、Configuration Parameters ダイアログ ボックスの左ペインから Code Generation を選択したときに、追加のコード生成オプションにアクセスできます。UVM 生成の例については、Simulink からパラメータ化された UVM テストベンチを生成する を参照してください。

次に、Build process の下でターゲット Toolchain を選択します。このオプションは、シミュレーションを実行するターゲット シミュレーターとオペレーティング システムを指定します。サポートされているクロスプロダクト ツールチェーンは次のとおりです。

  • Cadence Xcelium (64-bit Linux)

  • Mentor Graphics ModelSim/QuestaSim (64-bit Linux)

  • Synopsys VCS (64-bit Linux)

別のオペレーティング システム用の共有ライブラリを構築するには、シミュレータ オプションのいずれかを選択する必要があります。その後、ターゲット マシン上でライブラリをビルドできます。

コンポーネントの生成

uvmbuild 関数を使用して、UVM コンポーネントの構造を生成します。この関数は、DUT、シーケンス、スコアボード サブシステムから SystemVerilog DPI (SV-DPI) コンポーネントを生成します。また、モデルに含まれている場合は、ドライバー、モニター、または予測サブシステムのオプションの SV-DPI コンポーネントも生成します。この関数は、Simulink モデルから UVM テスト ベンチも生成します。この関数は、作業ディレクトリ内の uvm_build.zip という名前のディレクトリに DPI 生成の成果物をパッケージ化します。このディレクトリには次の 2 つのディレクトリが含まれます。

  • top_model_dpi_components – このディレクトリには、生成されたすべての DPI コンポーネントが含まれます。

  • top_model_uvm_testbench – このディレクトリには、UVM テストベンチ、生成された DUT、および共有ライブラリが含まれます。

ここで、top_model は最上位の Simulink モデルの名前です。詳細については、生成されたファイルとフォルダ構造を参照してください。

uvmcodegen.uvmconfig 構成オブジェクトの buildDirectory プロパティを設定することで、デフォルトのディレクトリを変更できます。

ターゲットマシンにコピー

生成されたコンポーネントを別のオペレーティング システムで使用するには、生成されたパッケージ ファイルをターゲット マシンにコピーし、解凍して、そこでコンポーネント ライブラリを構築する必要があります。

  1. 生成された uvm_build.zip ファイルをホスト マシンからターゲット マシンにコピーします。.zip ファイルはモデルと同じフォルダーにあります。.zip ファイルには、.do 拡張子を持つ ModelSim ファイル、または .sh 拡張子を持つ VCS または Xcelium ファイルが含まれます。

  2. ファイルを任意のフォルダに解凍します。

ライブラリを構築してテストベンチを実行する

ホスト マシン上でコンポーネントを生成すると、そのオペレーティング システム用のライブラリが構築されます。コンポーネントを別のオペレーティング システムに移植するには、ターゲット マシン上でコンポーネントを手動でビルドする必要があります。プロジェクトをビルドし、HDL シミュレーターでテストベンチを実行するには、表で HDL シミュレーターを見つけて、指示に従います。

HDL シミュレーター手順
ModelSim または Questa
  • ModelSim または Questa HDL シミュレータを起動します。

  • コマンド ウィンドウで、生成されたファイルを解凍したフォルダーに移動します。

  • 次のコマンドでプロジェクトをビルドします。

    do compile_dpilibs_mq.do
  • 次のコマンドでテストベンチを実行します。

    cd top_model_uvm_testbench/top/
    do run_tb_mq.do

    ここで、top_model は最上位の Simulink モデルの名前です。

VCS
  • パスに VCS があるターミナル シェルで、シミュレータ環境パスを設定します。コマンドを実行するときは、独自の Synopsys VCS インストール パスを使用してください。

    set VCS_HOME = C:/Synopsys/temp/vcs/S-2021.09-1
    ここで、VCS_HOME は環境変数の名前です。

  • 次のコマンドでプロジェクトをビルドします。

    sh compile_dpilibs_vcs.sh
  • 次のコマンドでテストベンチを実行します。

    cd top_model_uvm_testbench/top/
    sh run_tb_vcs.sh

    ここで、top_model は最上位の Simulink モデルの名前です。

Xcelium
  • パスに Xcelium があるターミナル シェルで、次のコマンドを使用してプロジェクトをビルドします。

    sh compile_dpilibs_xcelium.sh
  • 次のコマンドでテストベンチを実行します。

    cd top_model_uvm_testbench/top/
    sh run_tb_xcelium.sh

    ここで、top_model は最上位の Simulink モデルの名前です。

制限

Simulink モデルの参照サブシステムに Test Assessment (Simulink Test) ブロックがある場合、クロスプラットフォーム UVM 生成ではモデル参照がサポートされません。

参考

関連するトピック