Aus irgendeinem Grund mein Objekt zum Zeitpunkt der Erstellung nicht die Konfiguration von Test bestanden. Ich sehe GET nicht, wenn ich die Verfolgung aktiviere, nur SET. Ich habe Objekt, wie folgend:uvm_object_utils_begin schlägt fehl Set-Feld nach dem Test Set-Feld
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
In meinem Test, in der build_phase ich tue folgendes:
uvm_config_db#(int)::set(this, "*", "set_default_env" ,0);
In meiner Umgebung in build_phase Ich schaffe dieses Objekt als:
env_cfg = top_env_cfg::type_id::create("env_cfg", this);
Nach dem Erstellen dieses Objekts die set_default_env noch 1. Was kann falsch sein, und wie kann ich dies debuggen. Vielen Dank im Voraus.
Können Sie den Code hinzufügen, den Sie in der 'build_phase()' Ihrer Umgebung haben? Wo machst du eine 'uvm_config_db get()' für diese Ressource? – AndresM
Zuerst danke für Fixierungscode für Lesbarkeit. –
Ich möchte nicht verwenden uvm_config_db :: get ..., ich erwarte, dass utils Makro in der Seite die Objektklasse erhalten sollte, wenn Objekt erstellt. Dies geschieht für uvm_env. Als ich die Erweiterung der Klasse von uvm_object zu uvm_component änderte, funktioniert das explizite get gut, aber es wird zum Zeitpunkt der Erstellung nicht implizit erhalten. Hier ist mein erhalten: status = uvm_config_db # (int) :: get (this, "", "enb_env", enb_env); –