温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ModelSim的使用技巧有什么

发布时间:2022-01-06 16:37:27 来源:亿速云 阅读:171 作者:柒染 栏目:互联网科技

本篇文章为大家展示了ModelSim的使用技巧有什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

modelsim使用技巧

为了方便大家更容易观察波形,我们这里将会对 ModelSim 软件中几个常用小工具进行简单的讲解,如图 2.15 所示。
ModelSim的使用技巧有什么
前面的几个放大镜模样的工具是放大、缩小等功能,鼠标放到图标上会显示出它们的快捷键,中间的黄色图标是用来在波形图上做标记的,后面的则是用来运行仿真,暂停仿真、重新运行等功能。如下图所示界面,就是我们利用上述工具制作出来的。
ModelSim的使用技巧有什么
 在该页面中,我们就配合我们的代码给大家简单的分析一下这个波形,首先我们可以看到我们在 0ns 时间处添加了一个黄色标记,为了不让黄色标记移动,我们将这个黄色标记给锁住了,我们还可以在它的名字处修改成我们想要表示的名称,这里我们修改为 Start,也就是仿真开始。我们在回顾一下我们的激励信号是怎么编写的,代码如下 所示。









   
   
   
    initial
    
     begin #0 CLK_50M = 1'b0; 
    
      #10000 RST_N = 1'b0; 
    
      #10000 RST_N = 1'b1; 
    
      #10000000 $stop; 
    
     end 
    
     always #10000 begin CLK_50M = ~CLK_50M; end 
    
     
    
     endmodule
我们对照代码,对照仿真波形,我们可以看到,首先在 0ns 处,CLK_50M 信号我们赋值为0,我们观察波形图,CLK_50M 信号确实为低电平,接下来,我们等待 10ns,我们又给 RST_N赋值为 0,这时大家要注意了,由于等待了 10ns,always 模块也将会执行,所以 CLK_50M 这 时等于 1。我们观察波形,果然,RST_N=0,CLK_50M=1;依次类推,直至仿真结束,看完了激励信号,我们在来看下我们的 LED1 信号是不是 1us 翻转一次呢,大家看图
ModelSim的使用技巧有什么
我们标出 LED1 信号的第一个上升沿,大家可以看到第一个上升沿的时间是 1030ns,然后我们又标记出 LED1 信号的下降沿,大家也同样可以看到是 1050ns,1050ns-1030ns=1020ns(也即使 1.02us),似乎并不精准,这仿真太也不靠谱了吧!其实并不是这么回事,大家可以考 虑考虑。下面就是见证奇迹的时候了:我们的时钟频率是 50MHz,周期也就是 20ns,我们设置翻转 50 次,50*20ns 刚好就是我们的 1us,但是这里有一个 bug,什么 bug 呢,0-50 其实是51 次,51*20ns=1020ns,也就是说我们的仿真没有错,是我们搞错了。我们只要将 Verilog 程序中的 50 改成 49,即可修复这个 bug。这也就是我们为什么要仿真,明明感觉我们写的代码很可靠,只要一仿真就会露出马脚。下面大家在来看看这个细节图,如图
ModelSim的使用技巧有什么
从该图中我们可以看到,CLK 发生了变化,我们的 LED1 信号也跟着发生了变化,它们是同时发生变化的,中间是没有任何延迟。这也就很好的说明了,为什么我们说功能仿真(即,前仿真),它是不考虑延迟的。这里我们需要注意的是:我们修改 Verilog 程序代码和仿真文件代码(前提是不修改端口信号),我们是可以不需要重新编译工程的,我们只要关闭 ModelSim 仿真软件,再一次点击开始仿真即可。如果我们修改了端口的输入和输出,那么这里最好重新全编译一次,并且我们需要重新生成仿真模板文件进行修改。

上述内容就是ModelSim的使用技巧有什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI