2 つのシーケンス アイテム クラスa_packet
とその拡張クラス がありbad_packet
ます。デフォルトでは、a_packet
タイプが使用されます。a_packet
でインスタンスをオーバーライドしようとしていますbad_packet
が、uvm テストで set_inst_override_by_name を使用して正常に実行できました。
factory.set_inst_override_by_name("a_packet","bad_packet", "*");
ここで私の質問は次のとおりです。「*」を使用したくない場合、シーケンス項目インスタンスの完全な階層パスを知るにはどうすればよいですか?
正確な階層パスを知るために、ドライバーが受信した直後に、シーケンス項目内から get_full_name() を利用しようとしていました。次のように表示されました。
uvm_test_top.env.a_agt.a_seqr.a_sequence.a_packet
しかし、*
上記のパスに置き換えた場合、オーバーライドは行われません。
factory.set_inst_override_by_name("a_packet","bad_packet","uvm_test_top.env.a_agt.a_seqr.a_sequence.a_packet");
私は何か間違ったことをしましたか?