29第2章QuartusⅡ应用向导QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件2.1基本设计流程本节以十进制计数器为例,通过实现流程,详细介绍QuartusII的重要功能和使用方法2.1.1建立工作库文件和编辑设计文件任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被EDA软件默认为工作库(WorkLibrary)。一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。在建立了文件夹后就可以将设计文件通过QuartusII的文本编辑器编辑并存盘。(注意不要将文件夹设在计算机已有的安装目录中,更不要将工程文30件直接放在安装目录中)(1)新建一个文件夹。这里假设本项设计的文件夹取名为jsq,在E盘中,路径为E:\jsq。注意,文件夹名不能用中文,也最好不要用数字。(2)输入源程序。打开计算机桌面上图表,选择菜单File→New,出现如图2.1.1所示见面,在New窗口DeviceDesignFiles中选择编译文件的语言类型,这里选择VHDLFile,选好后用鼠标左键单击OK按钮,出现源程序输入窗口如图2.1.2所示(以十进制为例)。图2.1.1选择编译文件的语言类型31图2.1.2源程序输入窗口十进制计数器源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS='0');--计数器异步复位ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿IFEN='1'THEN--检测是否允许计数(同步使能)IFCQI9THENCQI:=CQI+1;--允许计数,检测是否小于9ELSECQI:=(OTHERS='0');--大于9,计数值清零ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT='1';--计数大于9,输出进位信号ELSECOUT='0';ENDIF;CQ=CQI;--将计数值向端口输出ENDPROCESS;ENDbehav;32(3)文件存盘选择File→SaveAs命令,找到已建立的文件夹E:\jsq,存盘文件名应与实体的名字一致,即CNT10,其界面窗口如图2.1.3所示。图2.1.3文件存盘单击“否(N)”按钮,则按以下方法进入创建工程流程。2.1.2创建工程使用NewProjectWizard可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其他源文件、用户库和EDA工具,以及目标器件系列和具体器件等。(1)打开建立新工程管理窗选择File→NewPrejectWizard工具选项创建设计工程命令,即弹出“工程设置”对话框如图2.1.4所示,单击对话框最上第一栏右侧的“…”按钮,找到文件夹E:\jsq,选种已存盘的文件CNT10,再单击打开按钮,既出现如图2.4.1所示的设置情况。对话框中第一行表示工程所在的工作库文件夹,第二行表示此项工程的工程名,第三行表示顶层文件的实体名。33图2.1.4利用NewPrejectWizard创建工程CNT10(2)将设计文件加入工程中单击图2.1.4中下方的Next按钮,出现如图2.1.5所示的对话框,在弹出的对话框中单击Filename栏的按钮,将与工程相关的所有VHDL文件加入此工程,加入完成后单击Next按钮。此工程加入的方法有两种:第一种是单击AddAll按钮,将设定的工程目录中的所有VHDL文件加入到工程文件栏中;第二种方法是单击“Add…”按钮,从工程目录中选出相关的VHDL文件。34图2.1.5将所有的工程VHDL文件加入此工程图(3)选择仿真器、综合器和目标器件的类型单击图2.1.5中Next按钮,即弹出如图2.1.6所示的仿真器和综合器及目标器件对话框。其仿真器和综合器及目标器件设置如图2.1.6所示。首先在Famil栏选芯片系列,在此选Cyclone系列,在有效器件列表中选择专用器件,分别选择封装形式为PQFP,引脚输出240,器件速度级别为8,选择此系列的具体芯片是EP1C6Q240C8,这里EP1C6表示Cyclone系列及此器件的规模。设计完成后单击Finish按钮。35图2.1.6仿真器和综合器类型设置图(4)工具设置.单击图2.1.6中的Next按钮后,弹出图2.1.7所示工具设置窗口,此窗口有3项选择.EDAdesignentry/synthesis用于选择输入的HDL类型和综合工具.EDAsimulation用于选择仿真工具.EDAtiminganalysistool用于选择时序分析工具,这是除Cyclone自含的所有设计工具以外的外加的工具,因此,如果都不做选择,表示选择Cyclone自含的所有工具.在此例中这3项都不做选择,单击Next后即弹出图2.1.8所示”工程设置统计”窗口.最后单击图2.1.8中Finish,即已设定好此工程,并出现CNT10的工程管理窗口.QuartusⅡ将工程信息存储在工程配置文件中,它包含有关QuartusⅡ工程的所有信息,包括设计文件、波形文件、Signa1TapⅡ文件、内存初始化文件等,以及构成工程的编译器、仿真器和软件构建设置。建立工程后,可以使用工具栏的Project→ADD/RemoveFilesProject页在工程中添加和删除、设计其它文件,在执行QuartusⅡ的Analysis&Synthesis期间,QuartusⅡ将按ADD/RemoveFilesProject页中显示的顺序处理文件。族、系列目标器件在有效器件列表中选择专用器件36图2.1.7工具设置窗口37图2.1.8“工程设置统计”窗口2.1.3编译前设置选择FPGA目标芯片。目标芯片的选择也可以这样来实现:选择Assignmemts菜单中的settings项,可以弹出图2.1.9对话框。选择配置器件的工作方式。单击图2.1.9中的Device&PinOptions按钮,进入选择窗,这将弹出Device&PinOptions窗口,其对话框如图2.1.10所示。在Configuration选项页,选择配置器件为EPCS4,其配置模式可选择ActiveSerial。这种方式只对专用的Flash技术的配置器件(专用于Cyclone系列FPGA的EPCS4和EPCS1等)进行编程。注意,PC机对FPGA的直接配置方式都是JTAG方式,而对于FPGA进行所谓“掉电保护式”编程通常有两种:主动串行模式(ASMode)和被动串行模式(PSMode)。对EPCS1/EPCS4的编程必须用ASMode。38图2.1.9选择FPGA目标芯片39图2.1.10选择配置器件工作方式图2.1.4全程编译QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错,逻辑综合、结构综合、输出结果的编辑配置,以及时序分析。在这一过程中,将设计项目适配到FPGA/CPLD目标器中,同时产生多种用途的输出文件,如功能和时序信息文件、器件编程的目标文件等。编译器首先检查出工程设计文件中可能错误信息,供设计者排除。然后产生一个结构化的以网表文件表达的电路原理图文件。编译前首先选择Processing菜单的StartCompilation项,启动全程编译。这里所谓的全程编译(Compilation)包括以上提到的QuartusII对设计输入的多项处理操作,其中包括排错、数据网表文件提取、逻辑综合、适配、装配文件(仿真文件与编程配置文件)生成,以及基于目标器件的工程时序分析等。编译过程中要注意工程管理窗下方的“Processing”栏中的编译信息。如果工程中的文件有错误,启动编译后在下方的Processing处理栏中会显示出来,如图2.1.11所示。对于Processing栏显示出的语句格式错误,可双击错误信息条文,即弹出对应的vhdl文件,在深色标记条处即为文件中的错误,再次进行编译直至排除所有错误。如果编译成功,可以见到如图2.1.11所示的工程管理窗的左上角显示了工程cnt10的层次结构和其中结构模块耗用的逻辑宏单元数;在此栏下是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等。最下栏是编译处理信息;中栏(Compilation40Report栏)是编译报告项目选择菜单,点击其中各项可以详细了解编译与分析结果。图2.1.11全程编译后信息图2.1.5时序仿真对工程编译通过后,必须对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。以VWF文件方式的仿真流程的详细步骤如下:(1)打开波形编辑器。选择菜单File中的New项,在New窗口中选择OtherFiles中的VectorWaveformFile如图2.1.12所示,单击OK按钮,即出现空白的波形编辑器如图2.1.13所示,注意将窗口扩大,以利观察。41图2.1.12选择编辑矢量波形文件图2.1.13波形编辑器(2)设置仿真时间区域,对于时序仿真来说,将仿真时间设置