UVM 構造の概要

1.uvm_top

  • uvm_top は、UVM によって作成および管理される uvm_root クラスの唯一のインスタンスであり、そのドメインは uvm_pkg です。
  • uvm_top は、すべてのテスト コンポーネントのトップ レベルです。検証環境内のすべてのコンポーネントは、作成時に親レベルを指定する必要があります。一部のコンポーネントが作成時に親パラメータを null に指定した場合、それらは直接 uvm_top に属します。
  • uvm_top は、位相メカニズム、シミュレーションがメカニズムから抜け出すのを防ぐためのオブジェクションなど、シミュレーションを制御するための一連のメソッドを提供します。

 二、uvm_test

  • テスト クラスは、カスタム クラスの最上位構造です。すべてのテスト クラスは uvm_test を継承する必要があります。そうしないと、uvm_top がそれを認識せず、テストを開始できません。
  • テストの目的には、環境構造構成、テスト モード構成などのさまざまな構成を提供し、検証環境を作成すること、テスト シーケンスをインスタンス化し、それをターゲット シーケンサーにマウントして、ドライバーに次のことを命令できるようにすることが含まれます。インセンティブを送ります。
     

 3. 構築環境の主なコンポーネント

uvm_コンポーネント

  • から継承されuvm_report_object(オブジェクトからさらに継承され)、メッセージ メソッドを提供します。
  • すべての検証環境コンポーネントは から継承しますuvm_component
  • 認証レベルを管理します。

uvm_env

  • から継承されましたuvm_component
  • 余分な機能はありません。
  • 検証環境構造のコンテナを提供するために使用されます。

その他にも_test

  • から継承されましたuvm_component
  • 余分な機能はありません。
  • 追加の構成を提供しuvm_env、ペアにインセンティブをマウントするために使用されます。

4、uvm_component

このクラスは仮想クラスであり、すべての環境コンポーネントはこのクラスから継承され、このクラスから継承されたすべてのサブクラスはコンポーネントまたは環境コンポーネントと呼ばれます。環境内のすべてのコンポーネントは uvm_component から継承するため、UVM は階層とコンポーネント メソッドを管理するための統一された方法も提供します。

このクラスは、次のインターフェイスまたは API を提供します。

  • get_full_name()、get_parent()、get_num_children() などの構造体
  • build_phase()、connect_phase()、run_phase() などのフェーズ メカニズム
  • print_config()、print_override_info() などの構成メカニズム
  • レポート (レポート) メカニズム (report_hook()、set_report_verbosity_level_hier() など)
  • Record() などのトランザクション記録
  • set_inst_override()、set_type_override() などのファクトリ メカニズム
     

コンポーネントのコンストラクターの固定形式は次のとおりです。

function new(string name, uvm_component parent);
  • string name は、現在インスタンス化されているコンポーネントの名前を宣言するために使用されます。これは、その親レベルと自動的に結合されてコンポーネントの階層全体の名前を形成するために使用されます。この名前は get_full_name() メソッドで取得できます。
  • uvm_componentparent は、インスタンス化された親ハンドルを示すために使用されます。通常はこれによって参照され、現在の親コンポーネントでインスタンス化されます。
  • uvm_object はコンポーネントの階層構造には関与しないため、正式なパラメータ文字列名は 1 つだけです。
     

おすすめ

転載: blog.csdn.net/Arvin_ing/article/details/127676137