微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助!用ncverilog进行仿真,到250ns就中止了?

求助!用ncverilog进行仿真,到250ns就中止了?

时间:10-02 整理:3721RD 点击:
用ncsim仿真一开始还好的,也不知道我点了什么不该点的东西后,仿真到250NS就结束了,再点run也没用,重启也没用,同时有个error infor “Simulation interrupted at 250 NS + 16408719”,哪位用过ncsim的能告诉我,我是不是在什么地方设置了仿真结束的时间了?谢谢

我在图形界面下操作也遇到过这种情况,改在命令行窗口里键入run time就好了time为你要的时间

原理是什么呢?

ncsim碰到了同样的现象。我的问题查找方法:
换成modelsim跑这个仿真,出错log比ncsim要详细。modelsim的log显示是由于代码中存在无限0时延loop,通过modelsim的simulation step工具可以定位loop所在的位置。
不过我不能肯定是不是只有infinite 0-delay loop才会导致ncsim出现这种现象。

学习了。

有时候在ncverilog simulation的时候会发生hang住的情况,time不往前走了。而delta timing却一直在增加,或者一直维持某个值。
一般是因为code中有zero-delay loop race condition。
assign (#TH) clk = ~clk;
如果在当前的仿真中,TH为0或者为x,会导致zero-delay loop race condition。

那么如何找到这一段代码呢?
可以通过在ncverilog加option ""+nclinedebug +gui" , 打开debug gui窗口。在File里打开 source file, 然后按F5可以单步执行,也可以按stop按钮。
操作应该跟其他debug工具一样。 单步执行的时候可以看到时间一直在增加。
等到zero-delay loop race发生时,时间就不往前走了。可以看到黄色的箭头一直停在那段rtl code里。稍加分析就可以找出错误的原因。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top