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関数は、hdlv_uvmbuild_uvmbuildディレクトリを含むuvm_testbenchという名前のディレクトリを作成します。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 ブロック。TG Sequence Feedbackブロック名または完全なブロック パスを表す文字ベクトルまたは文字列スカラーとして指定します。複数のSequence Feedbackブロックの場合は、セル配列を使用します。

例: 'hdlv_uvmbuild/feedback'

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

データ型: char | string

バージョン履歴

R2019b で導入

すべて展開する