前言
网络上面有很多Quartus搭配modelsim仿真的文章,但是看了很多发现遇到了很多没出现过或分布各处的问题,网络上的解释非常的离散,因此这里把我遇到的所有的问题集中写下来,希望对初学者有用。
一、Quartus搭配Modelsim仿真全流程
本部分将详细介绍如何在Quartus中使用Modelsim完成仿真的过程,此处使用的是Quartus 18.0以及Modelsim 10.4版本。
编写verilog代码,确保能通过quartus的compile;
点击Processing-Start-Start Test Bench Template Writer,如下图所示
第2步会在当前项目目录下面的simulation-modelsin中生成一个与top-Level Entity名字一样的.vt文件,修改该.vt文件,关键修改三个地方:
1. 修改timescale为1ns/1ps
2. 修改initial begin中的内容,设置变量的初始值
3. 修改always begin块中的内容,修改为always语句,不用块包装
点击Assignments-Settings-EDA Tool Settings-Simulation,第二步首先修改Tool name为Modelsim,然后点击TestBenches按键
进入下面界面点击new
首先修改Test Bench Name如下,注意修改了最上面的Test Bench Name之后下面的Top Level module in test bench会自动填充为跟上面一样的,这里我们需要将Test Bench Name改为我们在.vt文件中的module文件。这里为ramTest_vlg_tst。
然后点击下面File Name 的右边小点的按键,选择刚才生成的.vt文件(在simulation-modelsim里面),然后点add,点击ok一直退出到主页面。
最后在Tools-Run Simulation Tool-RTL Simulation,会自动打开modelsim软件,进入仿真阶段,如果仿真正确会出现波形图。
二、BUG及解决方法
- 出现红框如下,错误代码:
msim_transcript:permission denied
,这是由于你同时打开了两个Modelsim软件,关闭之前那个打开未关闭的Moodelsim,重新RTL Simulation即可。
- Quartus提示
you did not specify the EDA simulation tool
,是由于没有修改Tool Name为Modelsim导致。
- RTL Simulation点击之后进入Modelsim界面,但是此时没有提示
module xxx not defined……
,这个原因比较复杂,可以尝试通过下面链接方法解决:Modelsim仿真出现Module altsyncram is not defined的解决方法。 - Modelsim没有任何反应,最左下键出现
No Design Loaded
,这个问题可能是以下几个方面的原因:
1. .vt文件代码有问题。由于.vt文件并没有经过IDE编译检查,而是直接在Modelsim中编译使用的,所以如果.vt文件错误会导致编译失败。
2. Quartus中没有指定NaiveLink Settings为compile test bench,而是none,如下图所示:
3. 左下角正在读条加载library,这是因为Quartus提供了许多的IP以供使用,这些IP需要被读取进Modelsim中,等待左下角读条结束即可。