vivado/questasim/modelsim 仿真器卡住
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vivado/questasim/modelsim 仿真器卡住相关的知识,希望对你有一定的参考价值。
参考技术A 现象:vivado仿真器卡住,暂停后停在卡住的位置,可单步执行,发现循环在某一些语句之间。
questasim/modelsim仿真器停在某一时刻,并且delta值不断增大,同时程序暂停无响应。
结论:
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
以上是关于vivado/questasim/modelsim 仿真器卡住的主要内容,如果未能解决你的问题,请参考以下文章