このサンプルでは、以下の例を示したいのだと思います。
それはさておき、このコードなのですが、謎なんです。
module top; import uvm_pkg::*; import user_pkg::*; myunit mu = new("mu", null); mydata bar = new; initial begin uvm_top.finish_on_completion = 0; set_config_int("mu.*", "data", 101); set_config_string("mu.*", "str", "hi"); set_config_int("mu.l1", "data", 55); set_config_object("mu.*", "obj", bar); // ここ mu.print(); run_test(); mu.print(); endendmodule「ここ」の記述、set_config_object("mu.*", "obj", bar);は、
arg0が、サーチするインスタンス名
arg1が、その中にある"obj"
arg2が、そこにbarの値を書き込む
という意味だと思うのですが、arg0はいいとして、そのサーチ対象の中に "obj" はないんです。そして、試しにこの行をコメントアウトして実行しても、ログ上は変化がない。いったい何を示したかったのか… はたまたただの「残骸」なのか。
意味のない行だとしたら、そういうのをexamplesに載せてほしくないものです。
→ 「pkg」を動作させていたらわかりました。継承元のコードに obj があるもよう。でも、コメントアウトしてもログ上は変化がないので、単に「こうやってセットできますよ」と言いたかっただけなのかも。