请教个uvm验证的问题
这是偶尔发生的没法单步debug。 我希望能够跳过这个case,继续执行下一个case就可以了。
你要查清死掉的原因是什么?如果仿真时间不在继续,说明存在死循环需要检查testbench或者rtl。如果仿真时间还在继续增加,则需要在testbench中加入timeout机制。
仿真时间不继续了。但或许不是死循环,因为跑100次可能hung住一次
RTL死循环会iteration limit reached挂掉的,你这种情况应该是testcase里面写了个死循环
如果case里写了个死循环,不是应该每次仿真都会hung住吗? 目前hung住的概率很低额
那你case总有随机性的啊,不一定能random到
什么叫 "偶尔发生的没法单步debug"
提交过的任何一个case都应该可以复现才对。
另外regression是在串行的跑一个一个的case么?
最简单的并行提交都没有做?
有可能是某个循环里面随机延迟一段时间 如果恰好随机到0 就变成死循环了
应该是TB里的死循环。RTL的combinational loop仿真器会报iteration limit reached.
再可疑的循环里加个循环计数器,一旦到上限了就报错。
.206
我的case可以指定random的seed,所以可以复现同样的配置,但是就是有一定的概率会hung住
case都可以复现,但是hung住这个现象复现不了。所以不能debug
呵呵,没有改成并行是我的错。。。马上去改。
那我仔细找找,谢谢额
好吧,那是我理解错了,这种问题按理说不应该啊
你uvm用的什么版本,我记得有一个版本随机性有问题的,同样的seed灌进去不一定得到同样的结果
是个好办法,我还没找到可疑的循环额。。。
可以做个profiling
.206
UVM的run_phase或者main_phase里面有很多while(1)的循环 你要检查下在这些循环里面是不是有地方没有加和时间有关的代码