原创 Quartus II和ModelSim联合仿真

2009-4-17 22:25 4107 11 12 分类: FPGA/CPLD

前言


随着设计者能力和要求的提高项目越来越复杂,单靠手工画波形来仿真已经不能达到测试要求,这时我们结合其它工具来完成设计。值得庆幸的是,Quartus II的第三方工具接口做的很好,我们很方便地就能将多个软件联合起来以达到项目开发的目的。本文主要通过一个简单的正弦函数发生器实例来介绍Quartus IIModelSim的联合仿真。


前期准备


1、安装Quartus IIModelSim软件,保证两个软件在单独使用情况下都能正常工作(本文中提到的软件版本为:Quartus II 6.1ModelSim 6.1f,不同版本之间略有差异,但步骤基本相同)


2、打开Quartus II软件,选择菜单栏Tools->Options…



设置ModelSim的路径,例如我的是D:\Modeltech_6.1f\win32


实例演示


1、新建工程


File->New Project Wizard



设置新建工程所在的目录、工程名称及工程中顶层文件的名称,设置完成后点击next



直接进入下一步。



根据自己条件选择器件系列和型号,例如我的是cyclone EP1C12Q240C8



这里主要是设置第三方工具的,因为我们要用modelsim仿真,所以我们在EDA simulation tool里选择我们的仿真工具。



最后会把所有该工程的信息完整显示出来,确认无误后可点击完成。


2、设计输入


Quartus II中新建verilog文件,编辑内容如下图所示。



生成正弦波的原理是将正弦波幅值存入ROM,精度由ROM的数据宽度和深度决定(这里以WIDTH=8,DEPTH=64为例)


Quartus II中的MegaWizard Plug-In Manager生成一个ROM模块,名称为rom,并加入初始化文件。


3、编译


编译过程中会有一个EDA Netlist Writer的过程并在工程目录下创建一个simulation文件夹,里面又有一个modelsim文件夹,一会我们创建的testbench文件就会生成在这个文件夹里。



 


4、创建testbench文件


Processing->Start->Start Test Bench Template Write


打开刚才上面提到的simulation\modelsim文件夹下的top.vt文件并编辑,内容如下图所示。



5、设置仿真环境


Assignments->EDA Tool Settings



选择Simulation设置仿真环境


NativeLink settings中选择Compile test bench并点击后面的Test Benches



Test Benches中点击New



设置Test Bench 属性



Test bench entity栏一定要填写刚刚我们创建的testbench文件的实体名即module top_vlg_tst();中的top_vlg_tst。然后在Test bench files中浏览添加testbench文件。


6ModelSim仿真


Tools->EDA Simulation Tool->Run EDA Gate Level Simulation


此时会自动启动ModelSim并进行仿真,改变输出信号输出格式为Analog,调整信号输出为无符号数形式并调整信号高度就可看到仿真结果了。



由于做的是后仿,所以有毛刺产生。
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1579481 2009-5-8 09:25

相关推荐阅读
zhangshaobing517_935512703 2011-03-21 01:28
KC24RT-300调试笔记
项目中需要使用LED驱动器,主要是为了让一串LED发出的光照一致,所以在试验中采用LED串联的方式比较好点,LED并联容易导致LED发光的 不均匀以及寿命减少。我在项目中采用金升阳公司的KC24RT-...
zhangshaobing517_935512703 2010-11-19 14:53
线程中CreateEvent和SetEvent及WaitForSingleObj
首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信...
zhangshaobing517_935512703 2010-11-15 13:29
VS2008 BEGIN
Visual Studio 2008环境与VC6.0的环境存在着比较大的区别,下面就一些小小的区别在这里做一些探讨,欢迎指教!1、如果是调试控制台程序,很多时候点击“启动调试”后是一闪而过,此时可有两...
zhangshaobing517_935512703 2010-11-01 20:38
使用MFC的数组类
 MFC的数组类支持的数组类似于C++中的常规数组,可以存放任何数据类型。C++的常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的...
zhangshaobing517_935512703 2010-09-07 13:14
循环
 循环设计的注意的事情:(1)双重循环的跳出问题,break只挑出所在的循环,如果使用双层FOR循环,单个BREAK就不可能跳出所有的双层(2)在迭代的时候,注意起始和终止的条件,尤其是终止问题(3)...
zhangshaobing517_935512703 2010-09-02 01:09
图像处理改进
1.特征点提取的算法  标志点的提取算法对结果的影响虽然没有经过试验或者计算的推算,每1个pix的偏差对结果的影响有多大,但是不可避免的,要想获得高精度的  测量结果,高精度的提取对结果的影响还是很大...
我要评论
1
11
关闭 站长推荐上一条 /3 下一条