QuartusII软件及其使用QuartusII使用及设计流程QuartusⅡ是Altera公司推出的新一代开发软件,适合于大规模逻辑电路设计。QuartusⅡ支持多种编辑输入法,包括图形编辑输入法,VHDL、VerilogHDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。QuartusⅡ与MATLAB和DSPBuilder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具,与SOPCBuilder结合,可实现SOPC系统开发。QuartusII设计流程一、设计输入任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被EDA软件默认为工作库(WorkLibrary)。一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。首先建立工作库目录,以便存储工程项目设计文件。在D盘下新建文件夹并取名Mydesign。双击QuartusII软件启动图标,即可启动QuartusII软件,启动界面如图1-2所示。1.建立工程Project标题栏标题栏中显示当前工程的路径和工程名。菜单栏菜单栏主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)等下拉菜单组成。工具栏工具栏中包含了常用命令的快捷图标。资源管理窗口资源管理窗口用于显示当前工程中所有相关的资源文件。工程工作区当QuartusⅡ实现不同的功能时,此区域将打开对应的操作窗口,显示不同的内容,进行不同的操作,如器件设置、定时约束设置、编译报告等均显示在此窗口中。编译状态显示窗口此窗口主要显示模块综合、布局布线过程及时间。信息显示窗口该窗口主要显示模块综合、布局布线过程中的信息,如编译中出现的警告、错误等,同时给出警告和错误的具体原因。使用NewProjectWizard可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其他源文件、用户库和EDA工具,以及目标器件系列和具体器件等。在此要利用“NewPrejectWizard”工具选项创建此设计工程,并设定此工程的一些相关的信息,如工程名、目标器件、综合器、仿真器等。(1)打开建立新工程管理窗。选择菜单File→NewPrejectWizard命令,即弹出“工程设置”对话框(图1-3),以此来建立新的工程。(2)设置工程基本信息(2)将设计文件加入工程中。可将与工程相关的所有VHDL文件(如果有的话)加入进此工程,单击“Add…”按钮,从工程目录中选出相关的VHDL文件;或单击AddAll,将设定的工程目录中的所有VHDL文件加入到工程文件栏中。如果还没有建立VHDL文件,就直接点击“Next”即可。(3)选择目标芯片。如图1-6,首先在Family栏选芯片系列,在此选FLEX10K系列,并选择此系列的具体芯片EPF10K10LC84-4。在“Targetdevice”选项下选择“Autodeviceselectedbythefitter”选项,系统会自动给所设计的文件分配一个器件。如果选择“Specificdeviceselectedin‘Availabledevices’list”选项,用户需指定目标器件。在右侧的“Filters”窗口“过滤”选择;Package表示封装;Pincout表示引脚数,此例选择84;Speedgrade表示速度等级,此例选择4。(4)第三方工具选择。如图1-7所示,用户可以选择所用到的第三方工具,比如ModleSim、Synplify等。在本例中并没有调用第三方工具,可以都不选.(5)确认信息对话框。图1-8所示。建立的工程的名称、选择的器件和选择的第三方工具等信息,如果无误的话就可以单击“Finish”按钮,弹出如图1-9所示的窗口,在资源管理窗口可以看到新建的工程名称half_add。当工程建立好以后,我们就可以建立设计文件。下面我们以一个半加器的VHDL的设计,来演示在QuartusII如何实现VHDL语言输入。(1)建立文件。在图1-9中,单击“File”菜单下的“New”命令或者使用快捷键Ctrl+N,在弹出“New”对话框如图1-10所示。2.VHDL语言输入法AHDL文本文件流程图和原理图文件网表文件在线系统文件VerilogHDL文本文件VHDL文本文件图1-11VHDL文本编辑窗口(2)输入程序。在图1-11中输入半加器的VHDL程序,如图1-12所示。(3)保存文件。在图1-12中单击保存文件按钮,弹出对话框如图1-13,将输入的VHDL语言程序保存为half_add.vhd文件,注意后缀名是.vhd,如图1-13。(4)编译工程。在图1-11中选择菜单Processing下的StartComplilation,开始编译,并伴随着进度不断地变化,编译完成后的窗口如图1-14所示。如果编译过程出现错误,要将错误改正,保存后再次编译,直到编译无错误为止。到此在QuartusII软件中使用VHDL语言输入完成,接下来是将保存好的VHDL语言程序进行仿真,在软件上验证VHDL语言描述的功能是否能够达到预期目的。设计仿真的目的就是在软件环境下,验证电路的行为和思想是否一致。仿真分为功能仿真和时序仿真。功能仿真是在设计输入之后,综合和布局布线之前的仿真,不考虑电路的逻辑和门电路的时间延时,着重考虑电路在理想环境下的行为和预期设计效果的一致性。时序仿真是在综合、布局布线后,也即电路已经映射到特定的工艺环境后,考虑器件延时的情况下对布局布线的网络表文件进行的一种仿真,其中器件延时信息通过反向标注时序延时信息实现的。二、设计仿真(1)建立矢量波形文件。File|New选择OtherFiles,选择VectorWaveformFile。1.建立仿真文件(2)添加引脚或节点。图1-16,左键双击“Name”下方空白处,弹出“InsertNodeorBus”对话框,如图1-17所示。单击对话框“NodeFinder…”按钮后,弹出“NodeFinder”对话框,如图1-18所示。(3)编辑输入信号并保存文件。在图1-22中单击“Name”下方的“A”,即选中该行的波形。在本例中将输入信号“A”设置为时钟信号,单击工具栏中的按钮,弹出“Clock”对话框,此时可以修改信号的周期、相位和占空比。设置完后单击“OK”按钮,输入信号“A”设置完毕。同理设置其他输入信号“B”,最后单击保存文件按钮,根据提示完成保存工作,如图1-23所示。同时,为了方便读者熟悉其他波形编辑工具的使用,在图1-24中标注了其他波形编辑工具的功能。功能仿真是忽略延时的仿真,是理想的仿真。怎么设计功能仿真?首先在图1-23中单击“Assignments”菜单下的“Settings”命令,如图1-25,单击左侧标题栏中的“Simulator”选项后,在右侧的“Simulationmode”的下拉菜单中选择“Functional”选项即可(软件默认的是“Timing”选项),单击“OK”按钮后完成设置。2.功能仿真后需要生成功能仿真网络表。单击“Processing”菜单下的“GenerateFunctionalNetlist”命令后会自动创建功能仿真网络表,如图1-26所示。完成后会弹出相应提示框,单击“确定”即可。最后进行功能仿真,如图1-27所示。从图中可以看出仿真后的波形没有延时,半加器的两个加数作为输入信号,得到了对应的和与进位。QuartusII中默认的仿真为时序仿真,在图1-23中直接单击仿真按钮即可。如果做完功能仿真后进行时序仿真,需要在“Assignments”→“Settings”→“Simulator”选项后,在右侧的“Simulationmode”的下拉菜单中选择“Timing”选项即可。仿真完成后的窗口如图1-28所示。观察波形,可以知道输入输出之间有一定的延时。3.时序仿真三、引脚锁定引脚锁定是为了对所设计的工程进行硬件测试,将输入/输出信号锁定在器件的某些引脚上。单击“Assigments”菜单下的“Pins”命令,在弹出的对话框如图1-29所示,在下方的列表中列出了本项目所有的输入/输出引脚名。在图1-29中,双击与输入端“A”对应的“Location”选项后弹出引脚列表,从中选择合适的引脚,则输入“A”的引脚锁定完毕。同理完成其他引脚的锁定,如图1-30。四、编程下载1.编译锁定引脚后必须再次编译,才能存储这些引脚锁定的信息,单击编译按钮执行编译。2.配置下载电缆在“Tools”菜单下选择“Programmer”命令,或者直接单击工具栏上的按钮,弹出如图1-31所示的页面。编程下载是将本次设计所生成的文件通过计算机下载到实验箱里,来验证此次设计是否能够达到预期目的。需要进行以下几个步骤:单击“HardwareSetup”按钮,弹出“HardwareSetup”对话框,如图1-32所示。单击“AddHardware”按钮设置下载电缆,弹出如图1-33所示的对话框。在“Hardwaretype”一栏中选择“ByteBlasterMVorByteBlasterII”后单击“OK”按钮,下载电缆配置完成。设置成如图1-34所示的选项后,单击“Close”按钮即可。一般情况下,如果下载电缆不更换,一次配置就可以长期使用,不需要每次都设置。3.下载模式JTAG模式是软件的默认下载模式,相应的下载文件为“.sof”格式。在“Mode”一栏中还可以选择其他的下载模式,例如,PassiveSerial、ActiveSerialProgramming和In-SocketProgramming。勾选图1-31中下载文件“half_add.sof”右侧的第一个小方框,也可以根据需要勾选其他的小方框。将下载电缆连接好后,单击“Start”按钮计算机就开始下载编程文件,这样在实验箱上就可以验证实验效果了。到这里,我们都演示了QuartusII软件的全部使用过程,从建立工程,VHDL语言设计输入,设计仿真到编程下载都演示了一遍,读者跟着上面的操作,就能够到达最后的程序下载,在EDA实验箱上看到最终的效果。五、原理图输入在图1-9中,单击“File”菜单下的“New”命令或者使用快捷键Ctrl+N,在弹出“New”对话框如图1-35所示。在“DeviceDesignFiles”页面下双击“BlockDiagram/SchematicFile”选项(或选中该项后单击“OK”按钮)后建立新文件,如图1-36所示。(1)建立文件。(2)选择元件。在原理图编辑窗中的任何一个位置上双击鼠标的左键将跳出一个元件选择窗。基本逻辑元件库参数可设置的强函数元件库基本逻辑元件库中的元件由此输入所需要的元件名MAX+plus库(3)连接各元器件并命名。在图1-39中,将光标移到input右侧,待变成十字形光标时,按下鼠标左键(或选中工具栏中的工具,光标自动会变成十字形的连线状态),再将光标移动到异或门的左侧,待连接点上出现蓝色的小方块后释放鼠标左键,即可看到input和异或门之间有一条连线生成。重复上面的方法将1-39图中各种符号连接起来,如图1-40所示。双击pin_name使其底色变为黑色后,输入A(或双击input,弹出“PinProperties”对话框,在“Pinname”一栏中填上名字A),将其他引脚使用同样的方法命名。(4)保存文件。在图1-40中单击保存文件按钮。在弹出的对话框中的“文件名”下,输入原理图文件的名称“half_add.bdf”,单击“保存”按钮即可保存文件,如图1-41所示。(5)编译工程在图1-41中单击水平工具条上的编译按钮,或选择菜单Processing下的StartComplilation,开始编译,并伴随着进度不