驗證環境中的program爲何必須是automatic

最近在項目中,發現驗證環境中的頂層的program(通常將program做爲驗證環境的入口),都是automatic的。it

 

其實Program默認是static的,那麼爲何須要把驗證環境作成automatic呢?編譯

 

緣由以下:test

若是不加automatic,則program中的變量是static,也就是靜態的。變量的存儲在一個固定的空間。變量

 

若是使用automatic,則變量是動態分配空間的,這樣能夠避免對同一個變量操做,形成後面的覆蓋前面的狀況。語法

 

 

代碼示例以下:方法

program automatic soc_ver_program();項目

 

`include "./regs_def.svi"static

`include "./driver_inc.sv"vi

`include "./soc_testcase_inc.sv"cas

 

initial begin

run_test(); //注意這裏的run_test後面不要加參數,這樣不須要對不一樣用例從新編譯,符合UVM方法學相關語法。

end

 

endprogram

 

 

注意:此program裏面,調用了run_test(),run_test->create tc -> create env。大體的順序是這樣的。

相關文章
相關標籤/搜索