【UVM】UVM_MAX_QUIT_COUNT

文章介绍了在UVM环境中,如何通过set_report_max_quit_count函数设置当出现特定数量的UVM_ERROR时自动结束仿真的方法。当达到预设的退出阈值,比如5,仿真将停止,并显示相关信息。此外,也可以在命令行或通过$value$plusargs设置退出阈值。
摘要由CSDN通过智能技术生成

UVM同样支持UVM_ERROR达到一定数量时结束仿真。对于某个测试用例,如果出现了大量的UVM_ERROR,根据这些错误已经可以确定bug所在了,再继续仿真下去意义已经不大,此时就可以结束仿真,而不必等到所有的objection被撤销。

实现这个功能的是set_report_max_quit_count函数,其调用方式为:


    //base_test.sv
     function void base_test::build_phase(uvm_phase phase);
         super.build_phase(phase);
         env = my_env::type_id::create("env", this);
         set_report_max_quit_count(5);
     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

————————————————

版权声明:本文为CSDN博主「Alfred.HOO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:UVM中UVM_ERROR到达一定数量后结束_Alfred.HOO的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值