2017-11-27 31 views
1

コンポーネント内のオブジェクトの冗長性を設定する際に問題が発生しました。 私は、コマンドライン引数は以下の通りである、UVM_HIGHに特定のコンポーネント(uvm_test_top.env.subenv_a)の冗長性を設定したい:コンポーネント内のオブジェクトのuvm冗長性を変更する方法

1.+UVM_VERBOSITY=UVM_LOW 

2.+uvm_set_verbosity=*subenv_a*,_ALL_,UVM_HIGH,build,0 

オブジェクト(object_a)はコンポーネントのビルドフェーズにいくつかの設定を行います。subenv_a.

object_aのUVM_HIGH情報が表示されませんでしたが、コンポーネントsubenv_aのすべてのコンポーネントのUVM_HIGH情報が印刷されます。

"+ uvm_set_verbosity"コマンドはコンポーネントにのみ有効で、コンポーネントには無効であると見えます。

コンポーネント内のオブジェクトのUVM_HIGH情報を印刷するにはどうすればよいですか。 uvm_component由来

おかげ ケン

答えて

2

クラスだけは、自分の血統の知識を持っています。 ナレッジ私はuvm_componentが、名前付き階層を経由して移動できるデータベースとして、親と子をリンクするように設定されていることを意味します。次のことが可能です。

  • uvm_report_object代わりのuvm_objectからあなたobject_aを導出します。次に、コンポーネントからobject_a_h.set_report_handler(get_report_handler);を実行します。 object_aのすべてのメッセージは、コンポーネントから来ているかのように表示され、同じレポート設定を共有します。
  • object_aへのコンテキストとしてthisを渡し、uvm_infoの代わりにuvm_info_context()マクロを使用してください。これは上記と同じ効果があります。
  • object_aに一意のメッセージIDを使用し、そのIDに追加の+uvm_set_verbosityスイッチを追加します。
  • uvm_objectの代わりにobject_auvm_componentから派生させ、コンポーネントをその親にします。これは最も簡単な解決策かもしれませんが、これらのオブジェクトの多くがある場合は最もオーバーヘッドがあります。
+0

ありがとうございましたDave、私は最初の方法を使用しました。 – ken

関連する問題