Modelsim的仿真之路(基础仿真流程)

Modelsim的仿真之路(基础仿真流程)

  • 前言
  • 仿真前夕
    • 一:基础仿真步骤:
    • 二:工程形式的仿真步骤:
    • 三:多个库的使用
  • 基础仿真

前言

缓了一段时间,该接着开始系列记录了,这一次将开始ModelSim的仿真之路,对于学FPGA或者从业于该行业的人来说,仿真是必不可免的一件事,而仿真的工具也不少,不过感觉ModelSim推荐的指数要高很多,或许和它优化的能力有关吧~

仿真前夕

在ModelSim中对一个设计进行仿真有几种模式,基本的仿真、工程形式的仿真,还有使用多个库进行仿真,逐个进行介绍下使用步骤;

一:基础仿真步骤:

1、创建工作库

在ModelSim中,所有设计都被编译到一个库中。通常通过创建名为“work”的工作库来启动一个新的仿真,这是编译器使用的默认库名,作为已编译设计单元的目标库;

2、编译设计文件

创建工作库之后,就要将设计模块编译到其中,编译后的库格式支持在多个平台上使用,比如在Linux上编译了,然后可以不需要重新编译,就直接移到Windows上用,

3、载入且运行仿真

编译完成后,选择顶层的激励文件来加载仿真器,载入完成后,仿真界面将处于初始状态,再Run一下就可以开始仿真了~

4、对仿真结果进行Debug

Debug就是在仿真的时候,如果发现结果不是你想要的,就一步步调试了,当然,是可以借用工具滴!

二:工程形式的仿真步骤:

1、创建工程

2、添加设计文件到工程

3、编译设计文件

4、载入且运行仿真

5、对仿真结果进行Debug

可以看出来,工程形式的仿真和基础仿真很相似,多了个工程来对设计文件进行管理,其中,工作库在工程创建好后就自动生成了,如果没有使用close来关闭工程,下次启动ModelSim时,工程还会处于打开状态,都不需要再去麻烦的找了。

三:多个库的使用

除了工作库,ModelSim还有一种资源库的用法,和工作库有个明显的不同,就是工作库是处于设计文件的编译目录下,而资源库则可以处于其他位置,然后链接后就可以使用,这个资源库可以是第三方的(比如Vivado编译的库,然后在ModelSim里使用)

多个库的使用步骤再简单总结下

1、创建工程

2、添加激励文件到工程

3、编译设计文件

4、链接资源库

5、载入且运行仿真

6、对仿真结果进行Debug

如果没有使用工程的形式,就直接创建工作库替换步骤1和2就好了。

基础仿真

根据上一部分的基础仿真步骤来正式踏入仿真之路~

先准备好要仿真的文件,将文件放到自己想要的路径下(不要出现中文字符,不然要出问题),准备好之后,打开ModelSim,软件安装的版本可以根据自己情况来装,我这装的是:ModelSim DE 16.C(也还装了另外的版本),至于为什么装这个版本,看此文

Vivado与ModelSim的联合仿真

1、软件打开后,界面如下(有弹窗的话,直接Close掉就好了)

image-20211030130641333

image-20211030131437058

会出现一个弹窗,然后在这个窗口可以创建一个新的库,也可以映射已存在的库,库名的栏中会有个默认的值”work“,没有的话就自己输入一下。

image-20211030132001714

观察一下work库对应的路径,会发现多了个work的文件夹(内含一个“info”的文件)以及一个modelsim.ini的文件;“info”是运行的一些信息,和work是一起的,不要随意改动它;ini那个文件则是初始文件,里头是复制的安装路径下的ini文件,然后将work库加入了库的映射中。

image-20211030142020181

点击后,在弹窗的文件窗口选中两个.v文件,注意左上角的Library选中的是否为work,然后点Compile进行编译

image-20211030142437259

这时再看work,会发现,已经是非空状态了,多了个 “+” ,点击后,出现了两个模块的名字,即刚刚编译的文件,类型为Module

image-20211030142953892

启动仿真还可以选中test文件,点右键,再选择 Simulate ;或者选中菜单栏上的Simulate > Start Simulation ,然后弹出以下的窗口,选择好文件,点OK也一样进入仿真界面;

image-20211030144708473

如果缺了需要的,在菜单栏 View下开启对应的即可

image-20211030145656413

6、找到控制仿真运行的菜单,然后点 Run,或者直接在脚本窗口输入:run 100ns,也可运行仿真,时长根据自己需要设定,要注意的是,当以后变量多了,运行则会相对变慢;点 Run -All 的图标,则会一直运行,直到运行到停止的信号或者点了 Stop 那个图标

image-20211030150425185

可以看到 Wave 中的信号变量运行了一段时间,接着 Restart,将状态全部复位,准备后续的演示

image-20211030150716809

打开counter.v后,在always处点下侧边栏,会出现一个红色的点,即断点,再次单击就会变灰色,如果要移除就右键然后Remove Breakpoint

image-20211030151242350

这时候看Objects窗口的变量值,为当前停下时,各变量的值

image-20211030151635224

或者选中某个信号,然后右键,选中 Examine

image-20211030152137115

接着找到调试窗口,图标的含义和玩C的Debug是一样的,单步调试那些啥的

image-20211030152627075

基础仿真就讲到这了,不熟悉的话,可以自己多试几遍,对应产生的一些简单的脚本命令也可以记一下,之后直接跑命令有时候会方便些,最后菜单栏 Simulate > End Simulation 结束并退出仿真,出现提示框的话,点是就可以了(quit -sim)。

image-20211030152927823

若需要对应版本的可以去公众平台自行获取,获取入口如下:

更多精彩,等你发现~

来源:Smart_Devil

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月26日
下一篇 2021年9月26日

相关推荐