Modelsim仿真一些简单问题

Posted jb9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Modelsim仿真一些简单问题相关的知识,希望对你有一定的参考价值。

  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仿真一些简单问题的主要内容,如果未能解决你的问题,请参考以下文章

modelsim有啥优点?为啥要用它仿真?

搭建Modelsim SE仿真环境-适应do文件仿真

搭建Modelsim SE仿真环境-使用do文件仿真

Modelsim 仿真指令force用法

如何使用modelsim独立仿真VIVADO2014.4生成的IP

如何使用modelsim独立仿真VIVADO2014.4生成的IP