您的位置 首页 新品

modelsim仿真学习笔记

1、 仿真的目的:在软件环境下,验证电路的行为和设想中的是否一致。2、 仿真的分类:a) 功能仿真:在RTL层进行的仿真,其特点是不考虑构成电路的逻辑和门的时间延迟,着重考

  1、 仿真的意图:

  在软件环境下,验证电路的行为和想象中的是否共同。

  2、 仿真的分类:

  a) 功用仿真:在RTL层进行的仿真,其特点是不考虑构成电路的逻辑和门的时刻推迟,侧重考虑电路在抱负环境下的行为和规划设想的共同性;

  b) 时序仿真:又称为后仿真,是在电路现已映射到特定的工艺环境后,将电路的途径推迟和门推迟考虑进对电路行为的影响后,来比较电路的行为是否还可以在必定条件下满意规划设想。

  3、 功用仿真的意图:

  a) 规划出能作业的电路:因而功用仿真不是一个孤立的进程,其和归纳、时序剖析等构成一个反应作业进程,只要这个进程收敛,各个环节才有含义。而孤立的功用仿真经过是没有含义的,假如在时序剖析进程中发现时序不满意需求更改代码,则功用仿真有必要重新进行。因而正确的作业流程是:

  

 

  b)代码排错:功用仿真是代码排错的最重要的手法之一。

  4、 modelsim的高档功用:Code Coverage

  a) 代码掩盖率是验证鼓励是否齐备,查验代码质量的一个重要手法。测验鼓励的代码掩盖率至少要到达95%以上,才干根本以为代码在逻辑上是经过质量操控的,才干进入归纳进程;

  b) 代码掩盖率是确保高质量代码的必要条件,但却不是充分条件。即使代码行掩盖和分支掩盖都可以到达100%,也不能必定的说代码现已得到100%的验证。除非一切的分支掩盖都可以进行组合遍历。

  c) 在大的规划中,假如想经过一个鼓励就验证完一个规划或许模块是不现实的。一方面是从逻辑功用上很难做到;别的一方面是因为假如在一个鼓励中包含了各种情况,整个仿真进程的速度会跟着计算机内存的耗费而成线性下降,功率低下。

  d) 一般的做法是每一个鼓励只验证电路功用的某个方面。整个电路的功用验证由数个鼓励共同完成。在这种验证办法中代码掩盖率更显重要,因为可以经过代码掩盖率来操控鼓励对功用的掩盖程度。

  e) modelsim的Code coverage不但能记载各个鼓励对代码的“行掩盖”和“分支掩盖”,并且可以将各个鼓励的掩盖记载进行兼并,做到对掩盖率的全面监测。

  f) 演示。。。。。。。。。。。。。。。。。。。。。。。。

  5、 Debussy:仿真辅佐调试东西:

  a) 看仿真波形无疑是代码排错的首要手法,在 Modelsim中的波形窗口在大的仿真中有如下缺陷:a、只能显现出在仿真前设置好的信号波形,假如在仿真完成后想调查其他的信号,仅有的办法便是增加需求调查的信号重新开端仿真。b、波形仅仅简略显现,和代码没有对应和相关联系,不能凭借波形直观的调试代码;c、假如调查的信号太多,因为其是实时全信号显现,在仿真时刻较长后,仿真速度显着减慢,屏幕的改写速度也显着减慢。

  b) 这些缺陷不单Modelsim有,其他的优异仿真东西也有,并且前史由来以久,因而很早人们就提出了“先转储后调查调试”办法,在verilog言语中以$dumpXXX最初的体系函数便是做波形转储用的。便是先将波形先存在文件中,等仿真完毕后在调出来显现调查和调试。

  c) 这种调查功用许多EDA东西都有,并家常便饭;但Debussy的共同之处在于,它不但能显现波形,并且还能十分智能化的将波形中的任何一个改动和引起这个改动的RTL代码联系起来,使代码排错的功率大幅度进步。在本来IC所的一个大型项目中,因为引进了Debussy,使调试功率至少进步了3倍。

  d) 先介绍verilog言语中的转储体系函数。其实转储函数便是一种典型的文件操作函数,最为常用的为一下几种:

  i. $dumpfile(“filename.vcd”):翻开一个文件预备转储波形数据;

  ii. $dumpall:转储一切信号的波形数据;

  iii. $dumpvars:转储层次信号;

  iv. $dumpon:开端转储;

  v. $dumooff:中止转储;

  e) 演示Modelsim转储功用

  f) 演示Debussy东西中的辅佐调试功用;

  6、 SDF反标示

  a) SDF是一种规范延时格式文件,用于记载归纳布线后电路的线推迟和门推迟信息。假如在仿真输出的波形上叠加上这些信息,将使波形更挨近实践。

  b) 演示。。。。。。。。。。。。。。。。。。。。。。。。。。

  c) 可是因为电路现已被归纳布线过,本来的RTL代码的逻辑层次和代码命名都现已发生改动,即使看到波形也很难直接对应到RTL代码上,因而后仿真来确认电路是否符合要求的办法现已逐步被新的办法所替代。别的还有后仿真速度缓慢也是一个首要原因。新的办法是:时序剖析、静态时序剖析、方式验证。

  7、 一个重要的观念:电路的功能取决于电路构思和Coding Style:

  a) 常常有人说“不要用写软件的办法去写硬件”,或许说“要用朴实无华的言语风格来写代码”,这些说法仅仅描绘了业务的标明现象,并没有真实指出问题的真实症结所在;

  b) RTL描绘言语,尽管是一种言语,但它是描绘RTL的言语,所以其着眼点是电路完成而非逻辑推理;RTL便是电路在寄存器层的一种体现,尽管现已不像门级那样详细,但也没有笼统到逻辑层。

  c) 因而写代码的真实正确的办法是:在大脑中构思出电路的结构,然后用代码把它点滴不漏的体现出来,而不是先写一些仅仅逻辑上行得通的代码等候东西帮你归纳成能完成的电路。东西永久只能做深重而初级的作业,至少要比人的作业初级,这是未来几百年内不会改动的正义。因而假如你的电路功能欠好,阐明你对怎么完成电路还没有明晰的思路。

  d) 不要只使像经过进步器材的速度等级来使你的电路到达要求,恰恰相反,正确的办法是:假如你的电路在第一次归纳后现已有80%的途径满意时刻要求了,那么就不要想着用更快的器材,而应该考虑改动你的电路拓扑结构和规划构架,来使别的的20%逐步到达要求。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/116523.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部