在uvm搭建的仿真环境,仿真过程中,有可能会出现仿真挂死的现象,导致仿真会一直卡在某个地方,无法自动退出。uvm提供了仿真超时退出的功能,本文主要介绍,如何在uvm环境中设置超时退出。
uvm中提供了+UVM_TIMEOUT=“time, override”这个选项,用于控制仿真超时退出。
time是超时的时间;override的选项为YES和NO,用于控制是否覆盖环境中设置的超时时间,UVM中默认的超时时间是 9,200秒。
`define UVM_DEFAULT_TIMEOUT 9200s
代码举例如下,当仿真超过300ns的时候,仿真会给出一条uvm_fatal的提示信息,并退出仿真。
<sim command> +UVM_TIMEOUT="300ns, YES"
在仿真环境中设计超时退出的代码如下所示,这样设置能够被+UVM_TIMEOUT方法覆盖,建议在base_test的new函数中去设置。
function void base_test::new(string name, uvm_component parent);
super.new(name, parent);
uvm_root::get().set_timeout(.timeout(1ms))
endfunction
本文主要总结了,在uvm环境中设置仿真超时退出的两种方法。