QuestaSim使用及Makefile命令

一、熟悉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”,即可自动执行仿真。
————————————————
版权声明:本文为CSDN博主「mjwwzs」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mjwwzs/article/details/78089738

原文地址:https://www.cnblogs.com/tomatobird/p/12289235.html

时间: 2024-10-10 05:38:56

QuestaSim使用及Makefile命令的相关文章

makefile命令基本运用(一)

一.makefile介绍: 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令. Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员.在 Linux(unix )环境下使用GNU 的make工具能够比较 容易的

make makefile cmake qmake都是什么,有什么区别

原文:https://www.zhihu.com/question/27455963 作者:玟清链接:https://www.zhihu.com/question/27455963/answer/36722992来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. make 是用来执行Makefile的2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执

linux与Windows使用编译区别及makefile文件编写

一.Windows与:Linux嵌入式开发区别 Windows下编辑.编译.执行 编辑: sourceInsight:ADS: 编译:指定链接地址,指定链接顺序,编译 执行:烧写到单板再启动 Linux下编辑.编译.执行 编辑可在Windows下编写上传 编译:链接脚本(lds),用命令行链接时,文件顺序(makefile)gcc -o :由makefile执行可以得到结果 执行make 二.makefile介绍 (规则,依赖) 目标:依赖1 依赖2     hello :hello.c a.c

Makefile 使用总结

1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂. Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 本篇博客是基于 {精华} 跟我一起写 Makefile 而整理的, 有些删减, 追加了一些示例. 非常感谢 gunguymadman

一个通用Makefile的编写

作者:杨老师,华清远见嵌入式学院讲师. 我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c的源文件.如果我们用gcc去一个一个编译每一个源文件的话,效率会低很多,但是如果我们可以写一个Makefile,那么只需要执行一个make就OK了,这样大大提高了开发效率.但是Makefile的语法规则众多,而且缺乏参考资料,对于初学者来说,写起来还是有一定的难度,往往令很多人望而生畏.下面我们介绍一个比较通用而且简洁的Makefile,大家只要对它稍

Linux/Unix环境下的make和makefile

介绍一下make及其描述文件makefile Makefile文件 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间 的相互关系并自动维护编译工作.而makefile 文件需要按照某种语法进行编写,文件 中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖 关系. 在 UNIX 系统中,习惯使用 Makefile 作为 makfile 文件.如果要使用其 他文件作为 makefile,则可利用类似下面的 make 命令选项指定 makefil

通用Makefile

本文推荐了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile. 在使用 Makefile 之前,只需对它进行一些简单的设置即可:而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile.因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序快速建立一个可工作的 Makefile. 这个 Makefile 可以在 GNU Make 和 GCC 编译器下正常工作.但是不能保证对于其它版本的 Make 和编译器

转载-------makefile 使用总结

转载自:http://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂. Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 本篇博客是基于 {精华} 跟我一

Makefile 使用总结【转】

转自:http://www.cnblogs.com/wang_yb/p/3990952.html#3372064 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂. Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 本篇博客是基于 {