ModelSim仿真步骤
0赞Modelsim是FPGA工程师的宝典,在对工程进行功能仿真时那叫一个厉害。个人比较喜欢直接在Modelsim中新建工程做仿真,这样可以省去编写testbench的时间,并且添加激励也相当方便。
然而,许多初学者在使用Modelsim时都遇到了问题,现在,就通过一个简单的二分频实验来说明如何使用modelsim建立工程的方式进行仿真。
我使用的开发环境是quartus13.0,modelsim版本为10.0SE。
1. 先在quartus13.0新建工程,这里就不多说了,顶层文件为clkdiv.v,其代码如图1所示。
图1
2. 打开modelsim,并新建Project,会默认在该工程下新建Work库,如图2所示。
图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所示界面
图3
5. 在图3所示界面中,点击Browse,选中6个库文件及自己编写的.v文件,如图4所示。
图4
6. 开始编译,点compile--compile all
7. 开始仿真,点Simulate—Start Simulation,在work库下找到顶层文件,不要选中Enable optimization,否则仿真时一些寄存器信息将被优化掉。
图5
8. OK了之后在sim选项卡中找到想要观测的模块,右击—add—add to wave即可。
9. 添加激励(一般指时钟),在波形窗口中右键输入时钟——clock——确定(使用默认设置),如图6所示。
图6 添加激励
10. 设置好run length后开始run,也就是设置好仿真时间,如图7所示10us处。
图7
11. 仿真结果如图8所示。
图8 仿真结果
12. 当工程比较大、文件比较多时,最好编写.do文件,大大提高效率。
由于不太喜欢quartus ii调用modelsim的方式做仿真,并且个人觉得quartus ii工程中modelsim文件占用很多空间,因此,我一般先在Modelsim做功能仿真,没什么问题了再下载到FPGA,具体调试时使用SignalTap。
我的程序设计步骤如下:
1) 从顶层规划设计,进行模块划分
2) 在quartus ii中编写工程文件,并编译
3) Modelsim中新建仿真工程,将仿真文件及步骤1中的工程文件添加进来
4) Modelsim中编译,仿真
5) 仿真通过后将程序下载到FPGA,即使有问题一般也是小问题,此时再使用SignalTap进行调试