驗證環境中的program為什么必須是automatic
最近在項目中,發現驗證環境中的頂層的program(一般將program作為驗證環境的入口),都是automatic的。
其實Program默認是static的,那么為什么需要把驗證環境做成automatic呢?
原因如下:
如果不加automatic,則program中的變量是static,也就是靜態的。變量的存儲在一個固定的空間。
如果使用automatic,則變量是動態分配空間的,這樣可以避免對同一個變量操作,造成后面的覆蓋前面的情況。
代碼示例如下:
program automatic soc_ver_program();
`include "./regs_def.svi"
`include "./driver_inc.sv"
`include "./soc_testcase_inc.sv"
initial begin
run_test(); //注意這里的run_test后面不要加參數,這樣不需要對不同用例重新編譯,符合UVM方法學相關語法。
end
endprogram
注意:此program里面,調用了run_test(),run_test->create tc -> create env。大致的順序是這樣的。

浙公網安備 33010602011771號