quartus-ModeliSm仿真教程

     在完成VHDL模块的编写后,检验自己写的时序是否有误的最好方法就是进行仿真了。

      然而quartus是我用过的最奇怪的软件了,因为它的每个版本包含的功能都不相同。就拿仿真来说,8.0的版本quartus自带有仿真功能,12.0的则没有;13.1版本就又自带仿真了,然后再用到17.1好像又找不到自带的仿真了:(

     为了方便起见,应该学会利用quartus与modelism的联调,步骤如下:

1、首先在菜单中的Assignments中选择Settings,按照下图的步骤将仿真设置为ModeliSim-Altera,然后点击OK。

 quartus-ModeliSm仿真教程_第1张图片

2随后重新编译自己的工程。

3随后点击菜单中的Tools->Run Simulation Tool->RTL Simulation,打开modelism

.quartus-ModeliSm仿真教程_第2张图片

4.打开后,在左侧library中单击work,会弹出你所写的实体,然后双击你的实体。quartus-ModeliSm仿真教程_第3张图片

5.随后点击菜单中的Tools->Tcl->exectute macro,这个.do后缀的文件就是用于仿真的波形文件,初始由系统生成。

quartus-ModeliSm仿真教程_第4张图片

6此时你会看到,你所写的模块的中的各个端口或者信号。但是主要MSGS中他们都没有数据,这是因为我们没有在.do的波形文件中规定他们的波形。因此我们需要找到工程目录中的.do文件,然后编写波形。

quartus-ModeliSm仿真教程_第5张图片

7.如图是我们之前上课所给的波形文件的模板,我们按照注释来写波形文件。

以时钟信号为例:

wave create -driver freeze -pattern clock -initialvalue 0 -period 20ns -dutycycle 50 -starttime 0ms -endtime 17ms sim:/top_entity_name/clock_input_name 

我们将模板中的top_entity_name改为自己实体的名字,clock_input_name改为自己的时钟信号的名字。可以根据需要修改参数,比如初始化的值(0或1),-dutycycle占空比,period周期,starttime和endtime确定波形运行的时间。

如果需要常数比如用让复位键一直保持1,则可将pattern clock改为pattern constant,后面则不需要设置周期和占空比。

quartus-ModeliSm仿真教程_第6张图片

对于需要观看波形的输出端口或者变量,我们看到模板语句:add wave -noupdate /top_entity_name/ClkVga_name

只需改成我们的实体的名字以及你需要看到的变量或端口的名字即可。

8.完成波形文件的编写后,按照第五步选中波形文件,然后在菜单中点击Simulate->Run->Run all,即可进行波形仿真了!

quartus-ModeliSm仿真教程_第7张图片

可以通过鼠标拖动看不同时刻的波形,可以用快捷键O,I对波形图进行放大或缩小(O:Zoom Out,I: Zoom In),进行观察,判断时序是否正确。

你可能感兴趣的:(FPGA)