首先uvm中timeout的的设置方式有两种,一种是在cmp opt中添加,一种是在uvm代码中添加。我使用的方式是在base_tc的new函数中添加如下代码:
uvm_root::get().set_timeout(.timeout(800us));//设置超时时间为800us
问题:set_timeout中明明已经说明了是800us(单位清晰指明是us),但实际的仿真情况中,为什么仿真超时退出时间会和timescale的设置有关。
timescale=1ns/1ps时,退出时间为8000000000ps(即800us);
timescale=1ps/1fs时,退出时间为8000000ps(即800ns);
你们可以使用自己的uvm平台亲自尝试下。
麻烦解释现象,并说明原理,谢谢!