Main Content

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

uvmbuild

Simulink モデルから UVM テストベンチを生成する

R2019b 以降

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

説明

uvmbuild(dut,sequence,scoreboard) は、ユニバーサル検証方法論 (UVM) テスト ベンチとテスト対象の動作設計 (DUT) を含む SystemVerilog トップ モジュールを生成します。UVM テスト ベンチには、シーケンス、スコアボード、モニター、およびドライバーが含まれています。uvmbuild 関数は以下をマップします:

  • Simulink® DUT サブシステムを生成された SystemVerilog DPI 動作 DUT に

  • Simulink シーケンス サブシステムを UVM シーケンス ブロックに接続

  • Simulink スコアボード サブシステムを UVM スコアボードに

uvmbuild(___,Name,Value) は、前の構文の入力引数に加えて、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、'Driver','mySLTopModule/myDriver' は、'mySLTopModule/myDriver' として指定された Simulink サブシステムから UVM ドライバーを生成します。

すべて折りたたむ

Simulink モデル構造

この例では、これら 3 つのサブシステムを含む Simulink® モデルを使用します。

  • DUT の刺激を生成するシーケンス サブシステム。

  • HDL 設計を表す DUT サブシステム。

  • 出力を収集してチェックするスコアボード サブシステム。この例では、DUT は単純な遅延ブロックです。

open_system('hdlv_uvmbuild');

UVMテストベンチを生成する

この Simulink モデルから UVM テスト ベンチを生成し、DUT、シーケンス、スコアボード サブシステムへのパスを指定します。

uvmbuild('hdlv_uvmbuild/DUT','hdlv_uvmbuild/Sequence','hdlv_uvmbuild/Scoreboard');

生成された出力を観察する

uvmbuild 関数は、uvm_testbench ディレクトリを含む hdlv_uvmbuild_uvmbuild という名前のディレクトリを作成します。uvm_testbench ディレクトリにはこれらのサブディレクトリが含まれます。

  • top ディレクトリには、SystemVerilog トップ モジュールと、HDL シミュレーション環境で実行するために生成されたスクリプトが含まれています。

  • DPI_dut ディレクトリには、SystemVerilog-DPI 動作 DUT が含まれています。

  • sequence ディレクトリには、生成されたシーケンス トランザクション タイプと、トランザクションを DUT に駆動する UVM シーケンサーが含まれています。

  • scoreboard ディレクトリには、生成された UVM スコアボードが含まれています。

  • uvm_artifacts ディレクトリには、UVM 環境に必要なモニター、ドライバー、エージェントなどの UVM コンポーネントが含まれています。

生成されたUVMテストベンチを実行する

  1. Modelsim® または Questasim を GUI モードで起動します。

  2. HDLシミュレータで、最上位ディレクトリに移動します: cd hdlv_uvmbuild_uvmbuild\uvm_testbench\top\

  3. HDLシミュレーターで、次のコマンドを入力してシミュレーションを実行します: do run_tb_mq.do

入力引数

すべて折りたたむ

テスト対象のサブシステムの設計。DUT サブシステム名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定されます。

例: 'hdlv_uvmbuild/DUT'

データ型: char | string

シーケンス サブシステム。シーケンス サブシステム名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定されます。

例: 'hdlv_uvmbuild/sequence'

データ型: char | string

スコアボード サブシステム。スコアボード サブシステム名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定されます。

例: 'hdlv_uvmbuild/scoreboard'

データ型: char | string

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: uvmbuild('top/dut','top/seq','top/scr','Driver','top/drv','Monitor','top/mon')

ドライバー サブシステム。ドライバー サブシステム名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定されます。デフォルトでは、uvmbuild 関数はパススルー UVM ドライバーを生成します。

例: 'hdlv_uvmbuild/driver'

データ型: char | string

モニター サブシステム。モニター サブシステム名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定されます。デフォルトでは、uvmbuild 関数はパススルー UVM モニターを生成します。

例: 'hdlv_uvmbuild/monitor'

データ型: char | string

予測サブシステム。予測サブシステム名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定されます。

例: 'hdlv_uvmbuild/predictor'

データ型: char | string

UVM 構成パラメータ。'Config' と uvmcodegen.uvmconfig 構成オブジェクトで構成されるコンマ区切りのペアとして指定されます。この値を使用して、生成された UVM テストベンチを構成します。

データ型: char | string

シーケンス フィードバック ブロック。Sequence Feedback ブロック名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定されます。Sequence Feedback ブロックが複数ある場合は、セル配列を使用します。

例: 'hdlv_uvmbuild/feedback'

例: {'hdlv_uvmbuild/feedback1','hdlv_uvmbuild/feedback2','hdlv_uvmbuild/feedback3'}

データ型: char | string

バージョン履歴

R2019b で導入

すべて展開する