1、 VHDL - Quartus II(11.1 版本)调用 Modelsim 进行仿真之前仿真一直是用 Quartus II 自带的“Vector Waveform File”,但因其功能有限,在老师的推荐下接触了 Modelsim,捣腾了一段时间之后总算有所收获了。在查资料的过程中,发现好多二者联合的讲解都是用 Verilog 语言写的例子,而 VHDL 很少。以下是我总结的用VHDL 语言的具体步骤以及要注意的细节坎坷的路就略过了,直接展示成果。例子是八位七段数码管的动态扫描显示一 用 Quartus II 进行 VHDL 语言编译1. 首先建立工程File-New project Wiz
2、ard(第三个图标)填入所建工程的目录以及名称,注意稍后的源程序中实体名必须和这里的名称相同。填好后单击 finish,然后单击 yes。2. 新建 VHDL 源程序文件File-New-VHDL File-OK将程序写进去(这里只讲步骤,不讲源程序的写法)注意:程序中的实体名必须和之前建工程时所命名的文件名相同!然后保存一下,不用改动,直接单击保存。3. 编译快捷键按钮在界面中上方的红色倒三角,显示编译成功之后关闭编译报告。4.设备设置具体的实验器件根据提供的实验板设定Assignment-Device4. 引脚分配 Assignment-Pin Planner在 Location 下的方格
3、中填入对应的硬件引脚,也是根据实验板而定6.引脚分配好之后再次编译一下,使分配的引脚起作用。一、 调用 Modelsim1、 设置仿真工具为 Modelsim-alteraTool-Options-EDA Tool Options,在 Modelsim-Altera 后面的地址改为 Modelsim-Altera.exe 在你电脑中的位置,然后点击 OK。2、 写 TestBench 文件,这里使用 Quartus II 生成的模板Processing-start-Start TestBench Template Writer, 显示成功后关闭生成报告。这时会生成后缀为.vht 的文件就是我们
4、需要的,可以在这个实验开始时所建工程名的文件夹下的 simulation 子文件夹下找到。我们可以通过 Quartus II 左上角的打开图标打开.vht 文件,注意把文件类型更改成 All files 或者下图所示的类型,否则会找不到。然后在 simulation 文件夹下找到并打开它。模板已经给出了端口部分的代码、接口变量的声明和例化语句映射等,我们要做的就是在其后的进程 Process 中填入需要的测试代码。如下:注意:init 和 always 为关键字,需要改动一下保存一下3、 将 TestBench 添加到工程中单击 Open点击 Add 后,一直单击 OK 到 Setting 界
5、面全部关闭。4、 可以开始仿真了Tools-Run simulation Tool-RTL Simulation,这时就会自动启动 Modelsim 软件如果之前的主程序以及 TestBench 没有错误了,就会出现下面的界面点击上面的红点(stop),单击 Run 按钮(旁边的时间根据实际需要调整) ,并通过 Ctrl+鼠标滚动或者界面上的加号按钮,可以将波形调整到如下容易察看的间距,另外如果感觉一串 0 和 1的组合不容易看懂,可以右击通过下面的方式将二进制数改为十进制或者十六进制的形式。最终的波形图如下:经检验与实验目的相符合,是正确的。另外,可以滚动波形下方的游标来观察不同时刻的波形。至此,Quarts II 调用 Modelsim 已经圆满完成了,剩下的就是将程序下载到硬件实验板上进行验证了。注意: 1.工程名称必须和主程序(.Vhd 文件)中的实体名相同。2.TestBench 名称必须和 TestBench 程序(.Vht 文件)中的实体名相同。3.所有在进程(process)中用到的变量和信号都要进行初始化,否则会在仿真波形中得不到输出。比如本例主程序中的变量 q1,Testbench 程序中的 clk 和 key。4.生成的 TestBench 模板根据需要、习惯可以任意改动。