modelsim仿真(一)——为什么要仿真及仿真分类

1.为什么要进行仿真

  • 仿真可以让设计者能够很快知道模块输出值是否正确,开发新模块的时候这一点尤为重要。

  • 如果遇到稍微复杂一点的工程,那么当完成一次综合、布局布线的时间超过半个小时是很正常的。因此为了验证一个新加入的模块功能对整个工程进行编译从时间上来讲是不值得的。

  • 如果不仿真,单纯的用逻辑分析仪进行捕捉,每全编译一次消耗大量的时间,再者能观察到的信号有限,还会影响功能时序。这样一个流程下来,也许一天也未必能找到问题的所在,更别说处理问题了。

  • 如果换成仿真,你可以添加大量的观察信号,可以从时间0开始就得到数据,对于稍微复杂的工程,不用跑半个小时的仿真已经可以出很多数据了,足够开发者逐步分析了。

  • 若编写出自动化仿真的脚本文件,那么仿真效率将会大大提升,debug也会变得十分快捷。

2.仿真分类

  • 2.1功能仿真(RTL仿真、前仿真)

    这个阶段的仿真可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。

    • 1.联合仿真。借助quartus的产生的自动化仿真脚本进行仿真。

      • (1)首先要在软件上配置好modelsim路径并使能改工具;
        工具设置:Tools->options->EDA Tool Options->modelsim;
        使能:Assignments->Setting->Simulation->tool name;
      • (2)其次在quartus中编写HDL文件和tb文件,并添加tb文件的路径,此处也可以设置仿真精度,一般1ns就行,太高了(ps)在看波形的时候很麻烦得一直缩放;
        路径添加: Assignments->Setting->Simulation->compile testbench;
      • (3)运行联合功能仿真。如下图
        在这里插入图片描述
      • 修改模块内部代码后不需要重新编译(与布局布线无关,也不需要综合),直接重新打开modelsim即可生成最新代码的仿真波形。但是若是改变的输入输出端口,则最好重新编译一下,然后自动产生新的仿真文件,编辑好,再重新打开modelsim仿真。(前提是已经基于quartus创建了工程,并且使能了仿真工具)

      联合仿真虽然很方便,一点击就自动出波形,但是一共工程模块很多的话还是不太方便(比如只要验证其中某个模块的功能),那么就要学会直接使用Modelsim对单个模块进行仿真。

    • 2.手动仿真。可不依赖于quartus,直接编辑好HDL文件和TB文件即可使用modelsim仿真。借助modelsim的GUI界面进行操作网上的教程很多就不再赘述,后面主要总结一下手动“自动化仿真”。

  • 2.2时序仿真(门级仿真、gate level仿真)
    时序仿真是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。其输入文件为从布局布线结果抽象出来的门级网表、testbench和.sdo标准时延文件。sdo不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。时序仿真最大特点是考虑了布局布线因素以及门原件和走线的延时。

    • 1.需要基于quartus全编译一下工程,产生这些信息。默认会自动汇总在工程\simulation\modelsim文件夹下,如下两个文件。
      在这里插入图片描述
      其中,vo为网表(布局布线信息),sdo为延时文件(包含了网表中用到的原件的延时,布局布线的延时等)。一般用上面两个即可,这两套在更高要求下使用:slow表示高温环境下进行的低频测试(主要验证建立时间是否满足,数据传输太慢,后级锁存时钟沿到了数据还没到,导致建立时间不够);fast表示低温下进行的最高速的测试(主要验证保持时间可否满足,数据到的太早了,传输太快,导致保持时间不够)
      在这里插入图片描述
    • 2.除此以外,还需要添加仿真的库文件(quartus的安装目录下找到对应的器件库)。必须将这四个文件全部添加,否则modelsim编译会报错。
      D:\intelFPGA\18.1\quartus\eda\sim_lib
      在这里插入图片描述
    • 使用后仿真的时候,需要编写激励文件、综合和布局布线工程,而且产生的信号无法进行重命名,观看起来不直观,整个过程比较繁琐。仿真结果和实际结果并不必然一致。因此实际工程中采用前仿真和静态时序分析的方式来进行时序验证。一般不会专门做后仿真。
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arist9612

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值