何らかの理由で、作成時のオブジェクトがテストで渡された構成を選択しません。トレースを有効にするとGETが表示されず、SETだけが表示されます。 私は次のようにオブジェクトがあります。テストセットの後にuvm_object_utils_beginフィールドが設定されていません
env_cfg = top_env_cfg::type_id::create("env_cfg", this);
:私は、このオブジェクトを作成しておりますbuild_phaseに
私の環境では
uvm_config_db#(int)::set(this, "*", "set_default_env" ,0);
:私のテストで
class top_env_cfg extends uvm_object;
int set_default_env = 1;
`uvm_object_utils_begin(top_env_cfg)
`uvm_field_int(set_default_env,UVM_DEFAULT);
`uvm_object_utils_end
function new(string name = "top_env_cfg");
super.new(name);
endfunction
endclass
を、私は次のことをやっているbuild_phase内を
このオブジェクトを作成した後でも、set_default_envは1です。 何が問題なのか、これをどのようにデバッグできますか。 ありがとうございます。
あなたの環境の 'build_phase()'の中にあなたが持っているコードを追加できますか?あなたはそのリソースに対して 'uvm_config_db get()'をしていますか? – AndresM
最初に読みやすくするためのコードを修正していただきありがとうございます。 –
私はuvm_config_db :: get ...を使いたくありません。オブジェクトクラスが作成されたときにオブジェクトクラスが行うべきutilsマクロがあると思います。 uvm_envではこれが起こります。私がクラスの拡張をuvm_objectからuvm_componentに変更したとき、明示的なgetは正常に動作しますが、作成時に暗黙的に取得されることはありません。ここに私のgetです:status = uvm_config_db#(int):: get(this、 ""、 "enb_env"、enb_env); –