ucli查找0延时死循环
准备一个ucli文件loop_detect.do:
proc loop_detect {args} {
set i 0;
while {$i < $args} {
run_step
incr i
}
}
proc run_step {} {
redirect -f loop.txt -a {set x [step]};
redirect -f loop.txt -a {set x [scope]};
puts $x;
puts $y;
}
然后仿真运行到0延时死循环位置,执行ctrl + c, 在出现的ucli命令行输入:
source loop_detect.do
然后再运行:
loop_detect 1000
执行完后,会生成loop.txt文件,打开该文件,可以看到vcs执行的语句和顺序,然后可以根据这些信息进行debug。
如果是组合逻辑形成的组合逻辑环,涉及到的语句比较多,可以根据综合报告查看是否存在loop。
浙公网安备 33010602011771号