《电子技术综合设计与实践教程》课件第2章_第1页
《电子技术综合设计与实践教程》课件第2章_第2页
《电子技术综合设计与实践教程》课件第2章_第3页
《电子技术综合设计与实践教程》课件第2章_第4页
《电子技术综合设计与实践教程》课件第2章_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章QuartusⅡ9.0软件使用指南2.1图形界面设计流程 2.2仿真设计流程 2.3宏功能模块的调用

QuartusⅡ设计软件是Altera公司的CPLD/FPGA开发工具,它提供了完全集成且与电路结构无关的多平台设计开发环境,具有数字逻辑设计的全部特性。QuartusⅡ软件可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述;内嵌功能强大的逻辑综合工具,也可利用第三方的综合工具(如Synplify)进行逻辑综合;内嵌完备的电路功能仿真与时序逻辑仿真工具,也可利用第三方的仿真工具(如Modelsim)进行仿真。此外,QuartusⅡ软件还能与MATLAB结合,利用DSPBuilder工具开展各种算法开发。使用QuartusⅡ软件内嵌的SOPCBuilder,配合NIOSⅡIDE开发环境,可开发基于NIOSⅡ的嵌入式系统。

QuartusⅡ软件包含CPLD/FPGA开发所有阶段的解决方案,具体设计流程如图2-1所示。

图2-1QuartusⅡ软件设计流程

(1)

MegaWizard插件管理器(MegaWizardPlug-InManager)用于建立或修改含有自定义宏功能模块变量的设计文件,以及在设计文件中进行例化。

(2)

QuartusⅡ的块编辑器(BlockEditor)用于以原理图和符号框图的形式输入和编辑图形设计信息,生成后缀名为

.bdf的文件。另外,使用MAX+PLUSⅡGraphicEditor建立的原理图设计文件(

.gdf)也能被块编辑器读取并转换为

.bdf文件。块编辑器将每个框图、原理图或符号代表的设计逻辑合并到工程中。利用MegaWizard插件管理器,块编辑器可对Altera提供的宏功能模块进行例化,建立或修改包含宏功能模块自定义变量的设计文件,以及从

.bdf文件中建立Verilog文件、VHDL文件及符号文件(

.bsf)。

(3)

QuartusⅡ的符号编辑器(SymbolEditor)用于查看和编辑代表宏功能、宏功能模块、基本单元或设计的预定义文件。

(4)

QuartusⅡ的文本编辑器(TextEditor)用于以AHDL、VHDL和VerilogHDL语言以及TCL脚本语言输入文本型设计,查看、编辑ASCII文本文件。

(5)

QuartusⅡ的分配编辑器(AssignmentEditor)用于在QuartusⅡ软件中建立、编辑节点和实体级别的分配,为逻辑指定各种选项和设置,包括位置、时序、逻辑选项、参数、仿真和引脚分配。用户采用QuartusⅡ9.0设计环境,可以完成AlteraCPLD、FPGA和HardCopyASIC全系列产品的开发,并支持Altera新近发布的StratixⅣGT和ArriaⅡGXFPGA。与以前的软件版本相比,QuartusⅡ9.1将编译时间缩短了20%,即使在高密度65

nm和40

nm

设计上,编译时间仍然比最相近的竞争软件快2~3倍。该软件的新特性是快速重新编译,对于较小的设计改动,这一特性也大大缩短了编译时间,而且还支持Altera最新发布的Cyclone

ⅣFPGA。

QuartusⅡ9.1对于高端FPGA,实现了业界最快的编译时间,过去5年中,编译时间平均每年缩短20%。最新版软件编译时间上的优势来自于更高效的布局布线算法、更好的多处理器支持以及更快的时序驱动综合等。快速重新编译特性使QuartusⅡ软件能够进一步缩短设计编译时间。运行全编译之后,进行小的工程变更(ECO)设计修改时,快速重新编译特性大大提高了设计人员的效率,与再次运行设计全编译相比,编译时间平均缩短了50%。在时序逼近过程中,快速重新编译保留了上次设计改动期间的关键时序,明显提高了设计效率。

QuartusⅡ9.1支持三种最小的Cyclone

ⅣGX器件,QuartusⅡ9.1SP1将支持其它的Cyclone

Ⅳ器件。这一版本的QuartusⅡ软件还支持StratixⅣEP4SE820——业界密度最高的820

K逻辑单元(LE)FPGA。QuartusⅡ9.1为Altera最新FPGA系列提供支持,使客户能够马上迅速开始最新的Cyclone和StratixFPGA设计。

QuartusⅡ9.1的其它特性还包括:

(1)渐进式编译非矩形分区——非矩形区域使用户能够建立更紧凑、更高效的平面布局,更容易实现高质量标准。这一新特性为用户提供了更简单方便的界面,能在设计划分过程中进行精确控制。

(2)增强SSN分析器工具——这一工具增加了对ArriaⅡGXFPGA和Stratix

ⅣGXFPGA的支持,在引脚分配期间,及时反馈可能出现的同时开关噪声(SSN)违规问题。

(3)新的扩展IP基本包——三个新存储器控制器支持RLDRAM

Ⅱ、QDRⅡ-/Ⅱ+和DDR1/2/3,该基本包增加到14个知识产权(IP)内核。

(4)初步支持VHDL2008——QuartusⅡ软件提供更灵活的语言结构,使用户能够开发可重用的代码结构,继续保持了该软件在语言支持上的领先优势。

(5)NiosⅡ处理器——现在提供的“e”型NiosⅡ软核处理器不再需要许可费用。这一版本还标志着NiosⅡ软件开发工具开始支持Eclipse,提高了软件开发效率。

(6)扩展OS支持——现在可以支持LinuxSUSE10。本章主要介绍QuartusⅡ的基本特性,以及如何使用QuartusⅡ平台设计和实现电路。具体过程包括如下:

●创建一个项目(project)。

●用VerilogHDL代码设计输入。

●综合。

●适配。

●分配管脚。

●仿真。

●编程与下载。

QuartusⅡ软件具有多种设计输入方式,其中原理图输入方式是最常用的方式之一。本节以一个具体设计为实例(使用V9.0版本软件),说明设计流程。设计输入分为四个阶段:建立工程项目、设计输入、分配管脚和编程下载。

1.建立工程项目

(1)启动QuartusⅡ,选择File->NewProjectWizard,弹出窗口(见图2-2)。2.1图形界面设计流程

图2-2新建项目向导

(2)点击“Next”按钮后,在图2-3所示对话框中输入项目路径和项目名,接着点击“Next”按钮,出现图2-4所示对话框,提示输入的项目文件夹不存在,是否要创建,点击“是”按钮。

(3)新建项目向导里可以添加已存在的文件,假如此时这个项目没有包含已存在的文件,则在图2-5所示的对话框中点击“Next”按钮。

(4)我们需要指定实现电路的目标器件,在图2-6所示的对话框中“Devicefamily”的“Family”中选择“CycloneⅡ”,在“Availabledevice”中选择“EP2C35F672C6”(DE2上使用的型号),这里根据不同的目标芯片型号进行选择,然后点击“Next”按钮。

图2-3输入项目路径和项目名

图2-4确认项目路径

图2-5添加已存在的项目文件

图2-6选定目标芯片

(5)在图2-7中,我们可以指定第三方的开发工具,由于本书只涉及到QuartusⅡ,未用其它工具,所以直接点击“Next”按钮。(这个部分在以后使用modelsim(一款不错的仿真软件)仿真时会使用到,本教程不涉及modelsim的使用,有兴趣的同学可自行学习。)

(6)此时出现一份摘要,如图2-8所示,点击“Finish”按钮,返回QuartusⅡ的主界面。

图2-7指定第三方工具

图2-8项目摘要

2.设计输入

以原理图输入为例,QuartusⅡ支持如下六种设计输入法文件:

AHDLFile,是AHDL文本文件。

BlockDiagram/SchematicFile,是流程图和原理图文件,简称原理图文件。

EDIFFile,是网表文件。

SOPCBuilderSystem,是可编程片上系统的编辑系统。

VerilogHDLFile,是VerilogHDL文本文件。

VHDLFile,是VHDL文本文件。

(1)选择File->New建立文件,弹出图2-9所示的对话框,选择“BlockDiagram/SchematicFile”,再点击“OK”按钮。

(2)选择File->Saveas保存文件,同时选中“Addfiletocurrentproject”,如图2-10所示。

(3)导入逻辑门电路符号。用鼠标双击图形编辑器窗口的空白处或单击左侧工具条中的“门电路”图标,由此进入到“库”中选择所需元件,即可对元件进行复制、粘贴等操作,如图2-11所示。

(4)导入输入/输出符号。与第(4)步类似,选择and2元件,编辑管脚属性,并放置在原理图中,如图2-12~图2-14所示。

图2-9QuartusⅡ新建文件对话框

图2-10将文件添加到工程中

图2-11弹出Symbol对话框

图2-12选择and2元件

图2-13放置元件后

图2-14管脚属性编辑对话框

(5)用线连接节点。点击直角连线工具图标,然后将鼠标置于元件边沿,按下鼠标左键保持不变,拖放连线至另一元件的端点上。

(6)编译电路。使用processing->startcompilation菜单或单击相应图标运行编译器。若编译成功通过,则出现compilationreport窗口;若编译过程出现错误,则编译自动中止,并在消息框中显示错误信息。可以在信息栏双击错误提示,光标会回到错误处,修正、重新编译即可。

3.分配管脚

在DE2平台上,FPGA与外部的连线是确定的,要让电路能在DE2上运行,必须为设计分配管脚,具体可采用以下两种方法。

方法1:选择菜单命令Assignments->AssignmentEditor,在“Category”栏中选择“Pin”,双击“To”选择管脚,双击“Location”选择配置,如图2-15所示;然后保存:File->Save。具体连线的配置可参见“DE2_pin_assignments.csv”文件或见附录表A.1。

图2-15管脚分配方法2:文件配置QuartusⅡ支持导入和导出管脚分配文件,可以记事本等文本编辑器编辑图2-16所示的内容,并保存为扩展名为

.csv的文件。选择菜单命令Assignments->ImportAssignments在

.qsf文件中导入引脚配置。为方便使用,节点名最好改成“DE2_pin_assignments.csv”文件中定义的方式。

图2-16导入

.csv文档

4.编程下载

使用QuartusⅡ软件成功编译工程之后,就可以对Altera器件进行编程或配置,进而进行硬件测试。QuartusⅡCompiler的Assembler模块生成POF和SOF编程文件,QuartusⅡProgrammer可以用编程文件与Altera编程硬件一起对器件进行编程或配置,还可以使用QuartusⅡProgrammer的独立版本对器件进行编程配置。

所使用的Altera编程硬件接口可以是MasterBlaster、ByteBlasterMV、ByteBlasterⅡ,也可以是USB-Blaster下载电缆或Altera编程单元(APU)。国内许多开发板和实验箱使用ByteBlasterMV或ByteBlasterⅡ下载电缆。

QuartasⅡProgrammer支持四种编程模式:被动串行模式(PSMode)、JTAG模式、主动串行模式(ASMode)和插座内编程模式(In-Socket)。被动串行模式和JTAG模式使用Altera编程硬件对单个或多个器件进行编程。主动串行模式使用Altera编程硬件对单个EPCS1或EPCS4串行配置器件进行编程。插座内编程模式使用Altera编程硬件对单个CPLD或配置器件进行编程。

由于DE2平台上内嵌了USB-Blaster下载组件,因此可通过一条USB连线与PC机相连配置FPGA。本设计中采用JTAG模式进行编程,即将DE2板上的SW19置于RUN位置。具体步骤如下:

(1)选择菜单命令Tools->Programmer打开编程窗口,如图2-17所示。

(2)若没有显示硬件,则单击“HardwareSetup...”按钮,打开硬件设置窗口,如图2-18所示。

(3)双击“USB-Blaster”,然后单击“Close”按钮,即可完成硬件设置,如图2-19所示。

(4)添加下载文件。一般QuartusⅡ会自动搜索到编程文件。若没有,可点击图2-17左边所示的“AddFile”按钮来添加下载文件,同时选中“Program/Configure”。

(5)单击“Start”按钮,开始编程。编程结束后,可按设计方案在硬件上运行。

图2-17编程窗口

图2-18硬件设置窗口

图2-19选择下载电缆窗口

根据所需的信息类型,QuartusⅡ中集成的Simulator仿真工具可以对设计进行功能仿真以测试设计的逻辑功能,也可以进行时序仿真。使用QuartusⅡ软件既可以仿真整个设计,也可以仿真设计的任何部分。2.2仿真设计流程在仿真前,必须建立一个向量源文件作为仿真输入向量的源。Simulator使用向量源文件所包含的输入向量来仿真同一条件下编程器件将要产生的输出信号。在功能仿真前,要通过GenerateFunctionalSimulationNetlist命令生成功能仿真网表。时序仿真前,则要先做布局布线及时序分析。

本节以VerilogHDL语言实现一个二路输入控制灯开关电路,并通过此例来说明仿真操作,如图2-20所示,x1、x2为两个开关,f为电路输出。

图2-20原理图和功能表具体步骤如下:

(1)选择菜单命令File->New,出现图2-21所示的对话框,选择“VerilogHDLFile”,点击“OK”按钮。

(2)选择菜单命令File->Saveas,如图2-22所示,文件命名为“light”,文件类型为“VerilogHDLFile”,点击“保存”按钮。在文本编辑器里输入图2-23所示的代码,然后保存。

在编写好代码之后,单击选中将作为顶层文件的代码文件,设置为顶层文件,如图2-24所示。如果工程中包含多个模块,则一定要指定顶层文件,这样Quartus才会按顶层文件所包含的模块进行编译。

图2-21选择文件类型

图2-22输入文件名和保存路径

图2-23二选一多选器代码

图2-24设置顶层文件

(3)选择菜单命令Processing->StartCompilation或者单击

开始编译,编译完成后会有提示。若编译成功,会看到图2-25所示的编译报告,在“Analysis&SynthesisEquntions”窗口中可以看到f

=

OUTPUT(A1L2)和A1L2=x1$x2,这里$表示异或。

图2-25综合生成的功能表达式

(4)我们用到两个拨动开关SW0和SW1提供外部输入,对应的FPGA管脚是N25和N26。输出到LEDG0,对应的FPGA管脚是AE22。(在这里要根据DE2的引脚分布表进行管脚分配。)

(5)在仿真之前,需要创建测试用的波形文件。选择菜单命令File->New,在图2-26所示的对话框中选择“VectorWaveformFile”,点击“OK”按钮。

图2-26选择文件类型

(6)波形文件编辑器如图2-27所示。保存文件为light.vwf,选择菜单命令Edit->Endtime,将仿真时间设置为200

ns。选择菜单命令View->FitinWindow调节窗口显示的效果,如图2-28所示。选择菜单命令Edit->InsertNodesorBus设置仿真时间,打开图2-29所示的窗口,单击“NodeFinder”,添加电路仿真需要的节点。在图2-30所示的窗口中,“Filter”选择“Pins:all”,单击“List”按钮,列出输入、输出节点,单击“>>”进行选择,再点击“OK”按钮。在图2-31所示对话框内设定x1、x2的值,然后保存。

图2-27波形编辑器

图2-28调节窗口显示

图2-29添加节点

图2-30选择节点

图2-31设置输入变量的值

(7)功能仿真。选择菜单命令Assignments->Settings打开图2-32所示的对话框,仿真模式选择“Functional”,点击“OK”按钮。仿真之前,需要产生功能仿真连线表,可通过菜单命令Processing->GenerateFunctionalSimulationNetlist来完成。选择菜单命令Processing->StartSimulation开始仿真,仿真结果如图2-33所示。从仿真结果可看出,输出符合f

=

x1$x2。

图2-32选择仿真类型

图2-33功能仿真结果

(8)时序仿真。当通过功能仿真确认设计的电路功能正确之后,开始时序仿真。在图2-32中仿真模式选择Timing,然后开始仿真,结果如图2-34所示。可以看到仿真结果约有6

ns的延迟。

图2-34时序仿真的结果

宏功能模块是复杂的高级构建模块,Altera提供的可参数化宏功能模块(LibraryofParameterizedModules,LPM)及LPM函数均针对Altera器件的结构做了优化设计。LPM模块可以在QuartusⅡ设计文件中与逻辑门和触发器等基本单元一起使用,而当使用某些Altera专用器件的功能时,例如,存储器、DSP块、LVDS驱动器、PLL及DDIO电路等,必须使用宏功能模块。2.3宏功能模块的调用宏功能模块是以图形符号或硬件描述语言模块形式构成的,设计者可以根据实际电路的设计需要,选择LPM库中的适当模块,并为其设定适当的参数,就能满足自己的设计需要,从而使得电子设计的效率和可靠性得到很大的提高。宏功能模块内容丰富,每一模块的功能、参数含义、使用方法、硬件描述语言、模块参数设置及调用方法都可以在QuartusⅡ中的Help中查阅到,方法是选择“Help”菜单中的“Megafunctions/LPM”命令。

Altera提供了AlteraMegafunctionPartnersProgram(AMPP)和MegaCore宏功能模块,其中的函数经严格的测试和优化,可以在Altera特定器件结构中发挥出最佳性能,使用这些知识产权的参数化模块将减少设计和测试的时间。MegaCore和AMPP宏功能模块包括应用于通信、数字信号处理(DSP)、PCI和其它总线界面,以及存储器控制器中的宏功能模块。表2-1是Altera提供的宏功能模块与LPM函数。

表2-1宏功能模块与LPM函数在QuartusⅡ中,Altera推荐使用MegaWizardPlug-InManager对宏功能模块进行例化以及建立自定义宏功能模块变量。此向导将提供一个供自定义和参数化宏功能模块使用的图形界面,并确保正确设置所有宏功能模块的参数。

MegaWizardPlug-InManager可以帮助用户建立或修改包含自定义宏功能模块变量的设计文件,然后可以在顶层设计文件中对这些文件进行例化。这些自定义宏功能模块变量针对Altera提供的宏功能模块,包括LPM、MegaCore和AMPP函数。MegaWizardPlug-InManager运行一个向导,帮助用户轻松地为自定义宏功能模块变量指定选项。该向导用于为参数和可选端口设置数值。也可以从Tools菜单或从原理图设计文件中打开MegaWizardPlug-InManag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论