有一天使用Vivado调用questasim(modelsim估计也一样),仿真报错如下:
ERROR:
add_1 must be in range[-1,DEPTH-1]
这个错误之前并没有遇到过,而且从报的错根本无从下手,不知道哪句代码错了,哪个变量的range超了,往前翻仿真的日志,也没找到问题在哪。
后来我在网上查了很久,也有人遇到这个问题的,但从一众答案中并没有找到问题的共通之处,别人的解决方法在我这根本不适用,但好像问题也有点类似。
后来我仔细的研究了一下,概括为三个字:
不定态
1,检查下Modelsim仿真中,是否有哪个变量一直是红色的(X)
2,检查下仿真中,是否有哪个ip核的输入一直是红色的(X)
3,注意下在初始化复位,即仿真最开始的地方,是否也有某个变量或ip的输入是短暂的红色的(X),这个比较难发现
4,在仿真的顶层文件中,习惯把所有的模块输入给一个初始值,造复位信号,对所有模块及变量进行复位
总结来说,报这个错时,就是与不定态有关。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !