本篇文章为大家展示了ModelSim的使用技巧有什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
站在用户的角度思考问题,与客户深入沟通,找到辛集网站设计与辛集网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站制作、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、网页空间、企业邮箱。业务覆盖辛集地区。
modelsim使用技巧
为了方便大家更容易观察波形,我们这里将会对 ModelSim 软件中几个常用小工具进行简单的讲解,如图 2.15 所示。前面的几个放大镜模样的工具是放大、缩小等功能,鼠标放到图标上会显示出它们的快捷键,中间的黄色图标是用来在波形图上做标记的,后面的则是用来运行仿真,暂停仿真、重新运行等功能。如下图所示界面,就是我们利用上述工具制作出来的。 在该页面中,我们就配合我们的代码给大家简单的分析一下这个波形,首先我们可以看到我们在 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 翻转一次呢,大家看图我们标出 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。这也就是我们为什么要仿真,明明感觉我们写的代码很可靠,只要一仿真就会露出马脚。下面大家在来看看这个细节图,如图从该图中我们可以看到,CLK 发生了变化,我们的 LED1 信号也跟着发生了变化,它们是同时发生变化的,中间是没有任何延迟。这也就很好的说明了,为什么我们说功能仿真(即,前仿真),它是不考虑延迟的。这里我们需要注意的是:我们修改 Verilog 程序代码和仿真文件代码(前提是不修改端口信号),我们是可以不需要重新编译工程的,我们只要关闭 ModelSim 仿真软件,再一次点击开始仿真即可。如果我们修改了端口的输入和输出,那么这里最好重新全编译一次,并且我们需要重新生成仿真模板文件进行修改。上述内容就是ModelSim的使用技巧有什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
分享文章:ModelSim的使用技巧有什么
当前URL:
http://cqcxhl.com/article/gcpjpg.html