码迷,mamicode.com
首页 > 其他好文 > 详细

Modelsim仿真一些简单问题

时间:2018-12-08 22:38:03      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:逻辑   col   ==   激励   一点   image   现象   span   测试   

  1. 在学习时序逻辑的时候,我们明白寄存器赋值总有一拍的延迟但是有的时候仿真的时候会发现会没有延迟,比如下面这段代码对应的modelsim仿真。

     

    源代码代码如下:

    技术分享图片

    测试激励如下:

    技术分享图片

    仿真截图如下:

技术分享图片

2.从仿真截图可以看出work_flag与se_flag几乎是同时拉高的,那么造成这个现象的原因是什么呢?

对代码的理解应该是这样的:如果时钟上升沿到来与se_flag == 1,那么在下一个时钟延到来时会让work_flag ==1,而在我们手动给se_flag激励的时候modelsim会认为在时钟上升沿之前se_flag已经等于1了,虽然这个在波形中看不出来,但是我们需要明白。

3:如何解决这种问题呢?其实办法很简单,就是我们在激励中尽量se_flag与时钟上升沿错开,即滞后一点再给激励,具体如下。

技术分享图片技术分享图片

技术分享图片仿真截图如下:

技术分享图片

4.这样在时钟上升沿到来时,se_flag还是0并未是1,便可以看到我们希望的理想结果。

 

Modelsim仿真一些简单问题

标签:逻辑   col   ==   激励   一点   image   现象   span   测试   

原文地址:https://www.cnblogs.com/jb9527/p/10089001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!