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。

posted on 2026-05-13 14:18  lybinger  阅读(0)  评论(0)    收藏  举报

导航