如何解决FPGA 后仿真出现不定态问题? |
您所在的位置:网站首页 › 时序仿真定义 › 如何解决FPGA 后仿真出现不定态问题? |
我遇到的情景中,一般后仿真出现不定态的原因有三个: 更多的后仿出现不定态的的情形可以参考以下文章。 验证那些事最近陆续写了点工作方面的小文章,遂决定新开一个公众号,专门放工作相关的文章,就叫《超人验证》吧。先把去年写的《验证那些事》文章放在这里,作为超人验证公众号的开篇之作,我觉得挺合适的,走起。 1、在测试激励中没有对顶层文件的输入端口赋初值。 可见,良好的测试激励编写习惯很重要,首先应该对顶层输入端口赋初值,否则前仿真没有问题,到了后仿真出现问题,调试极其困难; 2、多重驱动冲突产生不定态 在同一时刻,两个不同的地方对同一个信号进行赋值,会冲突。多重驱动既会发生在DUT的设计中,也会发生在测试激励的编写中。尤其是在测试激励中编写三态inout端口的控制,如果控制信号产生的时机不合理,很容易导致冲突。 3、异步信号在传输过程中,建立世间和保持时间违例,产生不定态后并且向后级模块传播,最终导致不定态输出。 最近遇到了案例,就是接送异步串口的数据后,产生不定态并向后级传播(即使异步输入信号进行两级同步后,不定态仍然会进行传播),导致接收数据错误。 参考这篇文章,在modelsim中vsim阶段,添加 +no_notifier选项解决问题。 硅芯思见:【105】后仿真中的notifier是奏啥滴! 当然,这个+no_notifier 不是随便添加的。一定要确认该不定态的产生,是由于异步信号跨时钟域引起的建立、保持时间违例引起的,并且已经确认代码中已经使用跨时钟域处理后,再使用+no_notifier。 跟同事分享这个方法后,他觉得这个有点像静态时序中跨时钟之间设置false路径一样。我觉得说的挺有道理的,可以联系再一起进行记忆。 额外说一下,遇到这个问题是如何进行解决的。 好的搜索解决了问题的一半。 1、再微信搜索中输入关键词,后仿不定态。我一般用微信进行搜索,一般微信搜索可以搜索到很多优秀的公众号文章。 后仿详解 - 用VCS对布局布线后的门级网表进行仿真 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |