实验1 Quartus II与DE2入门指导.docx
《实验1 Quartus II与DE2入门指导.docx》由会员分享,可在线阅读,更多相关《实验1 Quartus II与DE2入门指导.docx(18页珍藏版)》请在冰豆网上搜索。
实验1QuartusII与DE2入门指导
QuartusII9.0与DE2入门指导
目录:
典型的计算机辅助设计流程
开始
新建一个项目(project)
VHDL设计输入
编译设计
管脚分配
仿真设计电路
规划、配置FPGA器件
测试设计的电路
一个典型的FPGA计算机辅助设计流程如图1所示。
图1
设计流程的步骤:
设计输入(DesignEntry):
用原理图或者硬件描述语言说明设计的电路。
综合(Synthesis):
将输入的设计综合成由FPGA芯片的逻辑元件组成的电路。
功能仿真(FunctionalSimulation):
测试、验证综合的电路功能正确与否,不考虑延时。
适配(Fitting):
将工程的逻辑和时序要求与器件的可用资源相匹配。
它将每个逻辑功能分配给最佳逻辑单元位置,进行布线和时序分析,并选定相应的互连路径和引脚分配。
时序分析(TimingAnalysis):
通过对适配电路传播延迟的分析,提供电路的性能指标。
时序仿真(TimingSimulation):
验证电路的功能和时序的正确性。
编程和下载配置(ProgrammingandConfiguration):
在FPGA上实现设计的电路。
本文主要介绍QuartusII9.0的基本特性。
演示如何用VHDL在QuartusII9.0平台设计和实现“七人表决器”电路。
包括:
1创建一个项目(project);2用VHDL代码设计输入;3综合;4适配;5分配管脚;6仿真;7编程与下载。
1创建一个项目
(1)启动QuartusII(双击桌面图标),选择File>NewProjectWizard,弹出窗口(图2)
图2
(2)选择Next,如图3输入项目路径和项目名。
本例中,工作路径为C:
\altera\decision,工程名和顶层实体名为decision。
注意:
若设计中包含多个实体,则工程名必须和顶层实体名相同,底层实体的名字不能是工程名。
以后的实验会有多个实体,必须注意这一点。
初学者有30%的错误于此相关。
本实验中,C:
\altera\decision为工作路径,decision既是工程名,又是顶层实体名。
图3
接着按Next,出现图4,提示:
输入的项目文件夹不存在,是否要创建。
选择“是”。
图4
(3)新建项目向导里可以添加已存在的文件,我们这个项目没有要包含已存在的文件,在图5选择Next。
图5
(4)我们需要指定实现电路的目标器件,在图6中Devicefamily的Family中选择CycloneII,在Availabledevices里选择EP2C35F672C6。
(DE2上使用的型号),选择Next。
图6
(5)在图7里我们可以指定第三方的开发工具,本文只用到QuartusII,未用其他工具,所以选择Next。
图7
(6)一份摘要出现在图8,按Finish,返回QuartusII的主界面。
图8
2用VHDL代码设计输入
本文以实现一个7人表决器电路为例。
使用QuartusII的文本编辑器,File>New出现图9,选择VHDLFile,ok确认。
图9
File>Saveas,如图10,文件名为decision,文件类型为VHDLFile,保存。
图10
在文本编辑器里输入代码,保存。
3编译设计的电路
Processing>StartCompilation,或者单击开始编译,编译完成,会有提示。
编译成功,如图11所示。
图11
图12所示为编译报告,
图12
如果编译提示错误,可以在信息栏双击错误提示,光标会回到错误处,修正,重新编译即可。
4管脚分配
我们用到7个拨动开关SW0~SW6提供外部输入和一个发光二极管LEDR[0],对应的FPGA管脚可查手册“DE2_Pin_Table”。
用AssignmentPins指定管脚
Assignments>Pins,如图13。
所用到的管脚列在下方。
按下表在LOCATION列选择管脚
SW[0]
PIN_N25
SW[1]
PIN_N26
SW[2]
PIN_P25
SW[3]
PIN_AE14
SW[4]
PIN_AF14
SW[5]
PIN_AD13
SW[6]
PIN_AC13
LEDR[0]
PIN_AE23
图13
分配结果如图14所示
图14
然后保存:
File>Close。
重新按进行编译。
5仿真
在仿真之前,需要创建测试用的波形文件:
(1)File>New在图17窗口中选择VectorWaveformFile,ok确认。
图17
(2)波形文件编辑器如图18所示
图18
保存文件为decision.vwf,设置仿真时间:
Edit>Endtime,设置为200ns。
选择View>FitinWindow调节窗口显示的效果如图19。
图19
(3)添加电路仿真需要的节点
Edit>InsertNodesorBus打开图20所示的窗口,单击NodeFinder,
图20
在图21所示的窗口里,filter选择Pins:
all,单击List,列出输入、出节点,单击>>选择,ok确认。
图21
(4)设定a,b,c,d,e,f,g的值,如图22。
保存。
图22
功能仿真
仿真之前,需要创建功能仿真连线表:
Processing>GenerateFunctionalSimulationNetlist。
选择Assignments>Settings打开设置窗口,仿真模式选择Functional,如图23。
Ok确认。
通过Processing>StartSimulation或者开始仿真,仿真结果如图24。
图23
图24
时序仿真
当通过功能仿真确认设计的电路功能正确之后,开始时序仿真。
在图23的仿真模式选择Timing,然后开始仿真,结果如图25。
可以看到约有7ns的延迟。
图25
6编程和配置PFPGA
首先连接电源适配器和usb数据线,在DE2开发板上,靠近电源的usb接口连接到数据线。
DE2支持2种程序烧录方式:
JTAG和AS。
JTAG模式把程序直接写在FPGA芯片里,断电后数据丢失。
AS模式把数据写在配置的存储芯片里,每次通电后,数据会自动装载到FPGA芯片里。
两种模式的选择由RUN/PROG开关的位置决定,JTAG模式对应RUN档,AS模式对应PROG档。
(1)JTAG模式编程
把RUN/PROG开关置于RUN档。
选择Tools>Programmer打开窗口如图26。
这里要指定编程用到的硬件和模式。
模式选择JTAG,硬件设置为USB_blaster,如果缺省没有选择,单击HardwareSetup…,在图27中选择。
图26
图27
图28
注意编程的器件和文件是否已添加到图28中,没有的话,手动添加。
单击Start开始编程。
(2)ActiveSerial模式
将RUN/PROG开关置于PROG档,选择assignments>device>deviceandpinoptions>configuration>选择EPCS16。
确认后在QuartusII的主界面选择tools>programmer>确认hardwaresetup为usb_blaster,mode为activeserialprogramming,文件为.pof文件,勾选program/configure,>start
7验证电路设计
把RUN/PROG开关置于PROG档,切换SW0-SW6的4组不同组合,观察LEDR0,验证设计。