问题
某项目在完成算法模型的modelsim仿真之后,开始硬件上板调试。在modelsim仿真阶段,仿真结果正常,符号算法预期,然而在硬件上板调试阶段,实际测试结果却和仿真不一致,且差异较大。
开始遇到这个问题我是十分诧异的,因为一般来说,仿真对了,上板大概率就能对,因为用的是同样的代码,只不过一个是仿真,一个是上板,然而结果就是不一样。
解决办法
后来经过我的总结,遇到此类现象,解决办法概括为一句话:
找modelsim仿真和实际上板的区别。
1,时序的区别
仿真时都是理想的时序,时钟按照我们约定的周期运行仿真,结果也是理想的。实际上板后,由于布局布线的原因,综合后的逻辑电路某些信号可能时序延迟过大,导致上板的逻辑和仿真有所偏差。
这个时候首先就是要检查程序中是否有报红的时序问题,解决时序问题(参照之前的文章),合理约束时钟周期,合理解决时序问题,解决之后再次综合上板,观测是否还有差异。
2,输入参数和初始值的区别
虽然仿真和实现的代码完全一样,但在仿真中,使用的是我们自己设定的输入参数,某些变量的初始值也是我们仿真设定好的,因此在某模块的功能异常时,仔细看看该模块的输入参数和初始值,在仿真和实现中有何不同。
3,次数的区别
modelsim仿真往往只对某个模块仿真1次或者几次,而实际上板中,有可能故障是在几十次,几百次,甚至更多次后才会出现。在实际上板中,某个模块最初的几次运行中也许不会出问题,但如果模块中的逻辑不严密,随着时间的推移,运行次数的增加,错误积累到一定条件下,就会触发bug,这种错误往往是极难发现的。
审核编辑:刘清
-
仿真器
+关注
关注
14文章
1016浏览量
83647 -
ModelSim
+关注
关注
5文章
174浏览量
47125 -
MODELSIM仿真
+关注
关注
0文章
15浏览量
7279
原文标题:modelsim仿真和实际上板结果不一致
文章出处:【微信号:FPGA通信小白成长之路,微信公众号:FPGA通信小白成长之路】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论