Quartus II软件及其使用 Quartus II使用及设计流程使用及设计流程 nQuartusⅡⅡ是是Altera公司推出的新一代开发软件,适合于公司推出的新一代开发软件,适合于大规模逻辑电路设计大规模逻辑电路设计nQuartusⅡⅡ支持多种编辑输入法,包括图形编辑输入法,支持多种编辑输入法,包括图形编辑输入法,VHDL、、Verilog HDL和和AHDL的文本编辑输入法,符号编的文本编辑输入法,符号编辑输入法,以及内存编辑输入法辑输入法,以及内存编辑输入法nQuartusⅡⅡ与与MATLAB和和DSP Builder结合可以进行基于结合可以进行基于FPGA的的DSP系统开发,是系统开发,是DSP硬件系统实现的关键硬件系统实现的关键EDA工具,与工具,与SOPC Builder结合,可实现结合,可实现SOPC系统开发系统开发Quartus II设计流程一、一、 设计输入设计输入 u任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹此文件夹将被EDA软件默认为工作库(Work Library)一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。
u首先建立工作库目录,以便存储工程项目设计文件在D盘下新建文件夹并取名Mydesign双击QuartusII软件启动图标,即可启动QuartusII软件,启动界面如图1-2所示 1.建立工程建立工程Projectn标题栏标题栏 标题栏中显示当前工程的路径和工程名n菜单栏菜单栏 菜单栏主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)等下拉菜单组成n工具栏工具栏 工具栏中包含了常用命令的快捷图标n资源管理窗口资源管理窗口 资源管理窗口用于显示当前工程中所有相关的资源文件n工程工作区工程工作区 当QuartusⅡ实现不同的功能时,此区域将打开对应的操作窗口,显示不同的内容,进行不同的操作,如器件设置、定时约束设置、编译报告等均显示在此窗口中n编译状态显示窗口编译状态显示窗口 此窗口主要显示模块综合、布局布线过程及时间n信息显示窗口信息显示窗口 该窗口主要显示模块综合、布局布线过程中的信息,如编译中出现的警告、错误等,同时给出警告和错误的具体原因。
使用New Project Wizard 可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其他源文件、用户库和EDA 工具,以及目标器件系列和具体器件等在此要利用“New Preject Wizard”工具选项创建此设计工程,并设定此工程的一些相关的信息,如工程名、目标器件、综合器、仿真器等 (1)打开建立新工程管理窗打开建立新工程管理窗选择菜单File→New Preject Wizard 命令,即弹出“工程设置”对话框(图1-3),以此来建立新的工程 (2)设置设置工程工程基本基本信息信息((2)将设计文件)将设计文件加入工程中加入工程中可将与工程相关的所有VHDL 文件(如果有的话)加入进此工程,单击“Add … ”按钮,从工程目录中选出相关的VHDL 文件;或单击Add All ,将设定的工程目录中的所有VHDL 文件加入到工程文件栏中如果还没有建立VHDL文件,就直接点击“Next”即可((3)选择目标芯片选择目标芯片如图1-6,首先在Family 栏选芯片系列,在此选FLEX10K系列,并选择此系列的具体芯片EPF10K10LC84-4。
在“Target device”选项下选择“Auto device selected by the fitter”选项,系统会自动给所设计的文件分配一个器件如果选择“Specific device selected in ‘Available devices’ list”选项,用户需指定目标器件在右侧的“Filters”窗口“过滤”选择;Package表示封装; Pin cout表示引脚数,此例选择84;Speed grade表示速度等级,此例选择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文本文件流程图和原理图文件网表文件系统文件Verilog HDL文本文件VHDL文本文件图1-11 VHDL文本编辑窗口((2)输入程序输入程序在图1-11中输入半加器的VHDL程序,如图1-12所示((3)保存文件保存文件在图1-12中单击保存文件按钮,弹出对话框如图1-13,将输入的VHDL语言程序保存为half_add.vhd文件,注意后缀名是.vhd,如图1-13 ((4)编译工程编译工程在图1-11中选择菜单Processing下的Start Complilation,开始编译,并伴随着进度不断地变化,编译完成后的窗口如图1-14所示如果编译过程出现错误,要将错误改正,保存后再次编译,直到编译无错误为止到此在QuartusII软件中使用VHDL语言输入完成,接下来是将保存好的VHDL语言程序进行仿真,在软件上验证VHDL语言描述的功能是否能够达到预期目的u设计仿真的目的就是在软件环境下,验证电路的行为和思想是否一致。
u仿真分为功能仿真和时序仿真u功能仿真是在设计输入之后,综合和布局布线之前的仿真,不考虑电路的逻辑和门电路的时间延时,着重考虑电路在理想环境下的行为和预期设计效果的一致性u时序仿真是在综合、布局布线后,也即电路已经映射到特定的工艺环境后,考虑器件延时的情况下对布局布线的网络表文件进行的一种仿真,其中器件延时信息通过反向标注时序延时信息实现的二、设计仿真二、设计仿真((1)建立矢)建立矢量波形文件量波形文件File|New 选择Other Files ,选择Vector Waveform File 1. 建立仿真文件建立仿真文件((2)添加引脚或节点)添加引脚或节点图1-16,左键双击“Name”下方空白处,弹出“Insert Node or Bus”对话框,如图1-17所示单击对话框“Node Finder…”按钮后,弹出“Node Finder”对话框,如图1-18所示((3)编辑输入信号并保存文件编辑输入信号并保存文件在图1-22中单击“Name”下方的“A”,即选中该行的波形在本例中将输入信号“A”设置为时钟信号,单击工具栏中的 按钮,弹出“Clock”对话框,此时可以修改信号的周期、相位和占空比。
设置完后单击“OK”按钮,输入信号“A”设置完毕同理设置其他输入信号“B”,最后单击保存文件按钮 ,根据提示完成保存工作,如图1-23所示同时,为了方便读者熟悉其他波形编辑工具的使用,在图1-24中标注了其他波形编辑工具的功能 功能仿真是忽略延时的仿真,是理想的仿真怎么设计功能仿真? 首先在图1-23中单击“Assignments”菜单下的“Settings”命令,如图1-25,单击左侧标题栏中的“Simulator”选项后,在右侧的“Simulation mode”的下拉菜单中选择“Functional”选项即可(软件默认的是“Timing”选项),单击“OK”按钮后完成设置2. 功能仿真功能仿真 后需要生成功能仿真网络表单击“Processing”菜单下的“Generate Functional Netlist”命令后会自动创建功能仿真网络表,如图1-26所示完成后会弹出相应提示框,单击“确定”即可最后进行功能仿真,如图1-27所示从图中可以看出仿真后的波形没有延时,半加器的两个加数作为输入信号,得到了对应的和与进位QuartusII中默认的仿真为时序仿真,在图1-23中直接单击仿真按钮即可。
如果做完功能仿真后进行时序仿真,需要在“Assignments”→“Settings” → “Simulator”选项后,在右侧的“Simulation mode”的下拉菜单中选择“Timing”选项即可仿真完成后的窗口如图1-28所示观察波形,可以知道输入输出之间有一定的延时 3.时序仿真时序仿真三、引脚锁定 引脚锁定是为了对所设计的工程进行硬件测试,将输入/输出信号锁定在器件的某些引脚上单击“Assigments”菜单下的“Pins”命令,在弹出的对话框如图1-29所示,在下方的列表中列出了本项目所有的输入/输出引脚名 在图1-29中,双击与输入端“A”对应的“Location”选项后弹出引脚列表,从中选择合适的引脚,则输入“A”的引脚锁定完毕同理完成其他引脚的锁定,如图1-30 四、编程下载四、编程下载1. 编译编译 锁定引脚后必须再次编译,才能存储这些引脚锁定的信息,单击编译按钮执行编译2. 配置下载电缆配置下载电缆 在“Tools”菜单下选择“Programmer”命令,或者直接单击工具栏上的 按钮,弹出如图1-31所示的页面 编程下载是将本次设计所生成的文件通过计算机下载到实验箱里,来验证此次设计是否能够达到预期目的。
需要进行以下几个步骤:n单击“Hardware Setup”按钮,弹出“ Hardware Setup”对话框,如图1-32所示单击“Add Hardware”按钮设置下载电缆,弹出如图1-33所示的对话框在 “Hardware type” 一栏中选择“ByteBlasterMV or ByteBlaster II”后单击“OK”按钮,下载电缆配置完成设置成如图1-34所示的选项后,单击 “Close”按钮即可一般情况下,如果下载电缆不更换,一次配置就可以长期使用,不需要每次都设置3.下载模式下载模式nJTAG模式是软件的默认下载模式,相应的下载文件为“.sof”格式在“Mode”一栏中还可以选择其他的下载模式,例如,Passive Serial、Active Serial Programming和In-Socket Programming勾选图1-31中下载文件“half_add.sof”右侧的第一个小方框,也可以根据需要勾选其他的小方框将下载电缆连接好后,单击“Start”按钮计算机就开始下载编程文件,这样在实验箱上就可以验证实验效果了n到这里,我们都演示了QuartusII软件的全部使用过程,从建立工程,VHDL语言设计输入,设计仿真到编程下载都演示了一遍,读者跟着上面的操作,就能够到达最后的程序下载,在EDA实验箱上看到最终的效果。
五、原理图输入五、原理图输入n在图1-9中,单击“File”菜单下的“New”命令或者使用快捷键Ctrl+N,在弹出“New”对话框如图1-35所示在“Device Design Files”页面下双击“Block Diagram/Schematic File”选项(或选中该项后单击“OK”按钮)后建立新文件,如图1-36所示1)建立文件建立文件((2)选择元件选择元件在原理图编辑窗中的任何一个位置上双击鼠标的左键将跳出一个元件选择窗 基本逻辑元件库基本逻辑元件库参数可设置的强函数元件库参数可设置的强函数元件库基本逻辑元件库中的元件基本逻辑元件库中的元件由此输入所需要的元件名由此输入所需要的元件名MAX+plus库库(3)连接各元器件并命名n在图在图1-39中,将光标移到中,将光标移到input右侧,待变成十字形光标右侧,待变成十字形光标时,按下鼠标左键(或选中工具栏中的时,按下鼠标左键(或选中工具栏中的 工具,光标自动会工具,光标自动会变成十字形的连线状态),再将光标移动到异或门的左侧,变成十字形的连线状态),再将光标移动到异或门的左侧,待连接点上出现蓝色的小方块后释放鼠标左键,即可看到待连接点上出现蓝色的小方块后释放鼠标左键,即可看到input和异或门之间有一条连线生成。
和异或门之间有一条连线生成n重复上面的方法将重复上面的方法将1-39图中各种符号连接起来,如图图中各种符号连接起来,如图1-40所示n双击双击pin_name使其底色变为黑色后,输入使其底色变为黑色后,输入A(或双击或双击input,弹出,弹出“Pin Properties”对话框,在对话框,在“Pin name”一栏中填一栏中填上名字上名字A),将其他引脚使用同样的方法命名将其他引脚使用同样的方法命名(4)保存文件n在图在图1-40中单击保存文件按钮在弹出的对话框中的中单击保存文件按钮在弹出的对话框中的“文文件名件名”下,输入原理图文件的名称下,输入原理图文件的名称“half_add.bdf”,单击,单击“保存保存”按钮即可保存文件,如图按钮即可保存文件,如图1-41所示(5)编译工程n在图在图1-41中单击水平工具条上的编译按钮,或选择菜单中单击水平工具条上的编译按钮,或选择菜单Processing下的下的Start Complilation,开始编译,并伴随,开始编译,并伴随着进度不断地变化,编译完成后的窗口如图着进度不断地变化,编译完成后的窗口如图1-42所示n如果编译过程出现错误,要根据提示将错误改正,保存后如果编译过程出现错误,要根据提示将错误改正,保存后再次编译,直到编译无错误为止。
再次编译,直到编译无错误为止n到此在到此在QuartusII软件中使用原理图输入设计完成,接下软件中使用原理图输入设计完成,接下来是将绘制好的原理图设计进行仿真,以验证原理图设计来是将绘制好的原理图设计进行仿真,以验证原理图设计是否能够达到预期目的仿真方法与是否能够达到预期目的仿真方法与VHDL语言文件的方语言文件的方法一样法一样生成元件符号生成元件符号执行执行File-Create/Update-Create Symbol File for Current File命令命令将本设计电路封装成一个元件符号,供以后在原理图编辑器下进行层将本设计电路封装成一个元件符号,供以后在原理图编辑器下进行层次设计时调用次设计时调用生成元件符号生成元件符号生成的符号存放在本工程目录下,文件后缀名生成的符号存放在本工程目录下,文件后缀名.bsf编程下载对话框 1 1、、JTAGJTAG编程下载模式编程下载模式Quartus II器件编程ASAS主动串行编程式的主动串行编程式的操作步骤如下:操作步骤如下: ((1 1))选择选择QuartusQuartusⅡⅡ主窗口主窗口AssignmentsAssignments菜菜DeviceDevice命令,进入命令,进入 SettingsSettings对话框的对话框的 DeviceDevice页面进行设页面进行设置,如右图。
置,如右图2 2、、ASAS主动串行编主动串行编程模式程模式Quartus II器件编程2 2、、 ASAS主动串行编程模式主动串行编程模式 ((2 2)选择)选择QuartusQuartusⅡⅡ主窗口主窗口的的ToolsTools菜单下菜单下的的ProgrammerProgrammer命令或点击图标命令或点击图标 ,进入器件编,进入器件编程和配置对话框,添加硬件,选择编程模式为程和配置对话框,添加硬件,选择编程模式为Active Serial ProgramActive Serial Program;; (( 3 3)单击)单击 添加相应的添加相应的counter.pofcounter.pof编程文件,选中文件后的编程文件,选中文件后的Program/ConfigureProgram/Configure、、VerifyVerify和和Blank CheckBlank Check项,单击图标项,单击图标 下载设下载设计文件到器件中,计文件到器件中,ProcessProcess进度条中显示编程进度。
进度条中显示编程进度下载完成后程序固化在下载完成后程序固化在EPCSEPCS中,开发板上电后中,开发板上电后EPCSEPCS将自动完成对目标芯片的配置,无须再从将自动完成对目标芯片的配置,无须再从计算机上下载程序计算机上下载程序 Quartus II器件编程n n使用使用QuartusQuartusⅡⅡ软件的软件的MegaWizard Plug-In ManagerMegaWizard Plug-In Manager中的中的宏功能模块可以帮助用户调用宏功能模块可以帮助用户调用QuartusQuartusⅡⅡ内部已有的内部已有的IPIP(知识产权)核来完成一些复杂系统的设计,并可以方便(知识产权)核来完成一些复杂系统的设计,并可以方便的对调用的的对调用的IPIP核的参数进行修改核的参数进行修改n n下面以一个调用下面以一个调用lpm_counterlpm_counter宏功能模块来实现一个十六宏功能模块来实现一个十六进制的加法同步计数器为例,简单介绍宏功能模块的使用进制的加法同步计数器为例,简单介绍宏功能模块的使用n n设计开始前新建立一个名为设计开始前新建立一个名为counter16counter16的工程,在工程中的工程,在工程中新建一个新的新建一个新的bdfbdf文件,选择文件,选择QuartusQuartusⅡⅡ主窗口主窗口的的ToolsTools菜单菜单下的下的MegaWizard Plug-In ManagerMegaWizard Plug-In Manager命令,进入命令,进入MegaWizard Plug-In ManagerMegaWizard Plug-In Manager对话框第一页对话框第一页 ,然后依此,然后依此进行参数的设定进行参数的设定Quartus II器件编程。