lemonHe

主要关注FPGA信号处理和数字图像处理技术,欢迎交流 邮箱:heliminlemon@163.com

ModelSim仿真步骤

0
阅读(4309)

    Modelsim是FPGA工程师的宝典,在对工程进行功能仿真时那叫一个厉害。个人比较喜欢直接在Modelsim中新建工程做仿真,这样可以省去编写testbench的时间,并且添加激励也相当方便。

    然而,许多初学者在使用Modelsim时都遇到了问题,现在,就通过一个简单的二分频实验来说明如何使用modelsim建立工程的方式进行仿真。

    我使用的开发环境是quartus13.0,modelsim版本为10.0SE。

1. 先在quartus13.0新建工程,这里就不多说了,顶层文件为clkdiv.v,其代码如图1所示。

clip_image002

图1

2. 打开modelsim,并新建Project,会默认在该工程下新建Work库,如图2所示。

clip_image004

图2

3. 添加库文件,进入quartus安装目录,altera-13.0\quartus\eda\sim_lib,添加芯片对应的库文件。220model.v、altera_mf.v、altera_primitives.v、cycloneiv_hssi_atoms.v、cycloneiv_pcie_hip_atoms.v、cycloneive_atoms.v。一般将这6个.v文件放到Modelsim工程当前目录下。

4. 工程新建好以后就需要给工程添加文件了,在Add items to the Project界面中点击Add Existing File或者在菜单Project下选择Add to Project,将出现如图3所示界面

clip_image002[5]

图3

5. 在图3所示界面中,点击Browse,选中6个库文件及自己编写的.v文件,如图4所示。

clip_image008

图4

6. 开始编译,点compile--compile all

7. 开始仿真,点Simulate—Start Simulation,在work库下找到顶层文件,不要选中Enable optimization,否则仿真时一些寄存器信息将被优化掉。

clip_image010

图5

8. OK了之后在sim选项卡中找到想要观测的模块,右击—add—add to wave即可。

9. 添加激励(一般指时钟),在波形窗口中右键输入时钟——clock——确定(使用默认设置),如图6所示。

clip_image012

图6 添加激励

10. 设置好run length后开始run,也就是设置好仿真时间,如图7所示10us处。

clip_image014

图7

11. 仿真结果如图8所示。

clip_image016

图8 仿真结果

12. 当工程比较大、文件比较多时,最好编写.do文件,大大提高效率。

    由于不太喜欢quartus ii调用modelsim的方式做仿真,并且个人觉得quartus ii工程中modelsim文件占用很多空间,因此,我一般先在Modelsim做功能仿真,没什么问题了再下载到FPGA,具体调试时使用SignalTap。

    我的程序设计步骤如下:

1) 从顶层规划设计,进行模块划分

2) 在quartus ii中编写工程文件,并编译

3) Modelsim中新建仿真工程,将仿真文件及步骤1中的工程文件添加进来

4) Modelsim中编译,仿真

5) 仿真通过后将程序下载到FPGA,即使有问题一般也是小问题,此时再使用SignalTap进行调试