出於某種原因,我創建時的對象不會選擇通過測試傳遞的配置。當啓用跟蹤時,我看不到GET,只有SET。 我有對象如下:uvm_object_utils_begin在測試集文件失敗後設置字段
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裏面我做了以下內容:
uvm_config_db#(int)::set(this, "*", "set_default_env" ,0);
在我的環境中build_phase我創造這個對象爲:
env_cfg = top_env_cfg::type_id::create("env_cfg", this);
創建此對象後,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); –