日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

UVM中UVM_ERROR到達一定數量后結束

作者:Alfred.HOO 更新時間: 2022-07-11 編程語言

UVM同樣支持UVM_ERROR達到一定數量時結束仿真。對于某個測試用例,如果出現了大量的UVM_ERROR,根據這些錯誤已經可以確定bug所在了,再繼續仿真下去意義已經不大,此時就可以結束仿真,而不必等到所有的objection被撤銷。
實現這個功能的是set_report_max_quit_count函數,其調用方式為:

//base_test.sv
21 function void base_test::build_phase(uvm_phase phase);
22 super.build_phase(phase);
23 env = my_env::type_id::create("env", this);
24 set_report_max_quit_count(5);
25 endfunction

上述代碼把退出閾值設置為5。當出現5個UVM_ERROR時,會自動退出,并顯示如下的信息:

# --- UVM Report Summary ---
##
Quit count reached!
# Quit count : 5 of 5

在測試用例中的設置方式與base_test中類似。如果測試用例與base_test中同時設置了,則以測試用例中的設置為準。
此外,除了在build_phase之外,在其他phase設置也是可以的。
與set_max_quit_count相對應的是get_max_quit_count,可以用于查詢當前的退出閾值。如果返回值為0則表示無論出現多少個
UVM_ERROR都不會退出仿真:
function int get_max_quit_count();
除了在代碼中使用set_max_quit_count設置外,還可以在命令行中設置退出閾值:
<sim command> +UVM_MAX_QUIT_COUNT=6,NO
其中第一個參數6表示退出閾值,而第二個參數NO表示此值是不可以被后面的設置語句重載,其值還可以是YES。

int sim_max_quit_count = 5;
if(!$value$plusargs("UVM_MAX_QUIT_COUNT=%d", sim_max_quit_count)) begin
  set_report_max_quit_count(sim_max_quit_count);
end

原文鏈接:https://blog.csdn.net/Michael177/article/details/125710942

欄目分類
最近更新