龙空技术网

「博文精选」irun工具检测TB环境零延时无限循环

电子技术应用ChinaAET 110

前言:

此时姐妹们对“c语言延时循环”大概比较讲究,兄弟们都需要学习一些“c语言延时循环”的相关内容。那么小编在网摘上网罗了一些有关“c语言延时循环””的相关资讯,希望大家能喜欢,咱们一起来学习一下吧!

在写TB代码时,如果循环退出条件没注意,可能使循环一直不能退出,而且该循环又是没有延时的,因此就出现了zero-delay(零延时)的无限循环。

如下循环代码:

本来每次循环,i会加一,当i不小于50,就会退出循环。但是因为在循环体内,将i又减一,因此,循环退出条件不能满足,程序就会一直卡在这个循环中。

仿真命令

irun -64 –sv +access+wrc testbench.v

仿真现象如下,irun工具就卡住了。

在这种情况下,就需要对TB进行调试,但是如果TB的代码比较负责,那么想找到这个零延时的无限循环,可就不好找了。

irun提供了 +linedebug 编译选项,可以实现代码的调试。

仿真命令

irun -64 –sv +access+wrc +linedebug testbench.v

编译的过程中,会提示warning,提示+linedebug会有仿真性能影响。所以如果不是为了调试这种零延时的无限循环情况,请不要加上该选项。

仿真现象如下,发现irun工具还是卡住了。

按crtl-c,停下仿真。然后神奇的现象出现了。

打印出了,出现零延时无限循环的代码位置。

经过测试,发现+linedebug选项,也可以debug RTL中零延时组合逻辑。

招聘信息

标签: #c语言延时循环