QuestaSim使用及Makefile命令

来源:互联网 发布:淘宝主图点击率怎么看 编辑:程序博客网 时间:2024/06/10 23:37

一、熟悉Linux环境下Questasim EDA Tool及GUI交互操作:
1.Questasim简介:
 Questasim是由Mentor Graphics公司推出的一款功能强大的仿真工具,支持System C,Verillog,SystemVerilog以及VHDL等硬件描述语言 。它是Modelsim的加强版。QUestasim支持多种验证特性,比如coverage databases,coverage driven verification,assertions,SystemVerilog constraints-functionallity等。
2.确认Linux系统环境下的Questasim可用:

在Terminal中键入如下命令:which vsim

3.打开Questasim GUI,熟悉界面:

在Terminal中键入如下命令:vsim&
这里写图片描述

4.创建project和library文件夹,步骤基本同Modelsim:
 点击菜单栏上的“File”->“New”->“Project”

这里写图片描述

 对于每一个项目,需要建立一个Project,“Project Name”为新建Project的名称。
5.向project中添加代码文件:
 点击上一步步骤中的”OK”之后,会显示

这里写图片描述

 这里我们选择“Add Existing File”,这里指的是向projet中加入已有的代码文件,这里我们的实验代码已经提供了,所以直接点击这个图标。
 点击Browse,进入code文件夹,选中所有以“.v”和“.vp”结尾的文件,然后点击OK。

这里写图片描述

6.编译文件:

这里写图片描述

 用鼠标框选出所有文件,然后右键出现菜单,点击“compile”->“compile All”。如果编译通过,可以看到status全部由原来的“?”变为“√”。而且在下方的报告窗口中可以看到编译成功的字样。如果编译不成功,有问题的文件的status为“×”,并且下方的报告窗口中也会提示出更加详细的错误信息。在Lab01中的代码都是正确的,所以正常情况下应该全部通过。

这里写图片描述

7.运行仿真:
 在编译通过之后,就可以运行仿真了。点击菜单栏上的“silulate”->“start simulation ”,出现Start Simulation对话框,点击“work”全面的“+”进行展开。work即为库目录,就是在我们创建project时定义的,如果当时不是使用默认值“work”,而是使用自定义的名称,那么也会出现在该对话框中,找到相应的名称即可。在“work”的展开项目中 ,可以看到刚才编译成功的文件。此时我们要选择最顶层的文件。去掉“Optimization”前面的勾选,因为如果勾选,Questasim会在仿真时对设计进行优化,这里我们不需要对它进行优化。我们在仿真时,总是要选择最顶层的模块进行仿真,这一点需要注意。

这里写图片描述

 设置好之后,点击OK。此时,进入仿真界面。

这里写图片描述

 这时仿真已经准备好了,需要点击运行开始仿真。
这里写图片描述
 5个图标从左到右依次为“Run”“ContinueRun”“Run-All”“Break”“Stop”这里我们点击第三个“Run-All”,意思是让仿真一直运行到结束。
8.查看结果
 当仿真完成之后,弹出对话框,我们点击“No”,此时不会退出Questasim,我们就可以查看仿真的结果。

这里写图片描述

可以在Transcript中看到仿真打印的相关信息。
9.查看波形:
 在代码中并没有加入dump波形的语句,所以,当上面的仿真结束后,无法查看波形。我们要在仿真开始之前,将需要查看波形的信号加入波形窗口中去。

这里写图片描述

 在“Instance”窗口中点击“top_io”之后,会在Objects窗口中将信号全部选中,右键,“Add Wave”,就会在Wave窗口中出现这些信号,处于该窗口中的信号会在仿真时dump波形。
 之后,我们要重新在仿真一次,点击菜单栏的“Simulate”->“Restart…”在弹出的窗口点击“OK”.此时就可以再次进行仿真了。点击“Run-All”。

这里写图片描述

 仿真结束就可以看到波形了。

二、在Batch模式下,使用命令行以及Makefile来进行仿真
 在实际的工程中,一般很少用到Questasim的GUI界面,除非要通过波形来Debug,除此之外都是在命令行模式下进行的,那么,如何通过命令行来实现上面讲到的仿真 过程呢?
 进入代码目录,在Terminal中使用

rm -rf work mti_lib transcript modelsim.ini

 命令来清理掉刚才仿真所产生的中间文件。
 下面,我们可以把如下命令写入Makefile,使用Makefile脚本使得命令自动执行,这是因为在实际工程中,文件量巨大,每次仿真要敲这么多的命令实在让人崩溃,我们可以将这些语句写入脚本中,在需要的时候直接调用脚本执行命令即可,下面介绍使用Makefile脚本来实现仿真。
1.使用gvim来创建Makefile文件

gvim Makefile

2.编辑该文件,将命令写入文件中

这里写图片描述

 可以看到,我们将包括删除文件在内的一共4条命令以某种方式写入到Makefile这个文件中去了。
3.Makefile使用
 保存Makefile文件后,在当前目录下就多出了一个Makefile文件。在Terminal中键入 make
 之后就可以看到仿真开始执行直到结束。
 以后每次执行仿真,只要在该目录下执行“make”,即可自动执行仿真。

原创粉丝点击