QuartusII使用说明QuartusⅡ软件提供了FPGA 和CPLD 各设计阶段的解决方案它集设计输入、综合、仿真、编程(配置)于一体,带有丰富的设计库,并有详细的联机帮助功能下面为用QUARTUSⅡ进行设计的一般过程其包含的主要内容为:1、 开始2、 新建project3、 设计输入4、 编译5、 引脚分配6、 仿真7、 编程、配置FPGA器件8、 板级调试9、 典型的FPGA设计流程使用CAD软件进行FPGA设计的典型流程如图1所示设计输入(Design Entry):采用什么样方法描述你的设计,比如原理图方式、硬件描述语言方式(Hardware Description Language, HDL)等综合(Synthesis):将高层次描述转换为低层次描述对于FPGA设计就是将设计转换成由FPGA器件所提供的基本单元(Logic Elements,LE)所组成的电路功能仿真(Functional Simulation):综合后的电路测试你的设计的正确性适配(Fitter):时序分析和仿真(Timing Analysis and Simulation):编程和配置(Programming and Configuration):图1 FPGA设计的典型设计流程Quartus II软件支持以上设计流程的所有阶段。
1、 开始在Quartus II软件中设计的每个电路或者子电路都叫做项目(Project)Quartus II软件每次只能打开一个Project,并且一个Project的所有信息都必须保存在同一个文件夹为了开始一个新逻辑电路的设计,首先第一步就是新建一个文件夹来保存此Project的文件为了保存本教程的设计项目Project,新建文件夹D:\introtutorial本处所举例子是一个简单两路开关控制电路启动Quartus II软件,会打开如图2所示启动画面启动画面中包含了使用Quartus II软件所需要的几个窗口,用户可以通过鼠标在窗口中选择想要执行的功能Quartus II软件所提供的绝大多数命令都可以通过选择位于标题栏下面的一系列菜单命令来完成图2 Quartus II启动画面在弹出的File菜单上单击单击Exit菜单项,这样可以退出Quartus II软件对于有些命令,需要按顺序访问几个菜单命令才可以本教程中使用符号Menu1 > Menu2 > Item表示使用鼠标左键先点击菜单Menu1,然后在弹出的菜单中鼠标左键点击Menu2项,然后在弹出的菜单中鼠标单击Item项2、 新建Project开始一个新设计,必须先定义一个设计项目project。
Quartus II软件通过提供一个Wizard,使用户的设计任务变得非常简单为新建一个Project可按如下步骤执行:1、选择File < New Project Wizard弹出如图4所示对话框,该对话框显示Wizard所包含的各项内容如果选中Don’t show me this introduction again那么在下一次在新建项目是可以不再显示本对话框点击Next按钮,显示图5所示对话框图4图5 2、设定工作目录为introtutorial,当然如果你喜欢你也可以选择其它的文件夹作为工作目录Project项目必须有一个名字,而且项目名一般与设计的顶层模块名一致本处的Project名和顶层模块名都为light,如图5所示点击Next因为我们还没有建立文件夹introtutorial,Quartus II软件弹出如图所示对话框,询问你是否新建introtutorial文件夹,点击Yes,如图7所示图73、如果有些设计文件已经存在,你可以在这一步将文件加入到project中因为我们没有任何已经设计好的文件,点击Next,显示图8所示窗口4、我们必须项目选择一个器件以实现设计好的电路。
在器件Family中选择Cyclone IIQuartus II软件可以自动帮你从Cyclone II系列中选择一个具体的器件,当然你也可以自己选择一个器件我们采用后一种方法从available devices列表中选择器件EP2C35F672C6作为目标器件,因为Altera公司的DE2开发板上用的FPGA用的就是这个器件点击Next,打开对话框 图85、用户可以指定你想使用的第三方的EDA工具电子电路设计中常用的一个名词就是EDA (Electronic Design Automation)工具,EDA工具在Quartus II软件中主要指第三方工具,第三方工具就是指由Altera公司以外的一些其它公司开发的一些工具因为我们只使用Quartus II软件,我们不选择任何其它的工具,选择Next6、关于整个项目的一些设定会显示在对话框点击Finish按钮,返回到Quartus II主窗口但是在标题栏中显示的项目名称为light4、 使用VHDL作为设计输入本处使用一个两路Led灯控制电路,如图9所示本电路可以用两个开关x1和x2作为输入来控制一个LED灯开关的闭合代表逻辑值1电路的真值表在图12中一并给出。
注意到该电路实现的正好是输入x1和x2的异或功能,但是我们将使用该电路的门级描述图9图10给出了9所示电路的VHDL描述注意到这个VHDL模块叫做light,正好与图5中所填写的项目顶层模块名相匹配这些代码可以使用任何的文本编辑器进行编辑并将其保存成ASCII文件,或者使用Quartus II软件的文本编辑工具文件可以保存成任意的名字,但一般的设计惯例是使用与顶层模块同样的名字 ENTITY light ISPORT (x1,x2 :IN STD_LOGIC ; f : OUT STD_LOGIC ; )END;PROCESS BEGINf <= x1 NOR x2 ;END light ; 图105、 使用Quartus II文本编辑器选择File > New弹出对话框,选择 VHDL File,点击OK这样会打开文本编辑器窗口首先需要为新建的VHDL文件指定一个文件名选择File > Save As打开对话框在Save as type中选择VHDL File在File name中填写light并且勾选Add file to current project点击Save,这样会将该文件保存在introtutorial文件夹,同时打开Text Editor窗口。
图10(注:左图应当选最后一个VHDL File)图11注意:此处的保存类型应当是VHDL File6、编译文件light.中的VHDL代码被Quartus II软件的几个工具所处理,以分析代码的语法有无错误、综合并且产生针对特定目标器件的配置文件,这些工具由Quartus软件的编译器所控制通过选择Processing > Start Compilation,或者点击工具栏图标随着编译过程的进行,Quartus II软件主窗口的左侧会显示编译的进度如编译成功会弹出对话框请求确认,如图13所示,点击OK,弹出如图14所示的窗口图13编译结束后,Quartus II软件会给出一个编译报告显示编译报告的窗口会自动显示,如下图14所示窗口可以以正常的方式改变大小、最大化或者关闭,可以通过选择Processing > Compilation Report或者点击图标随时打开Compilation Report图14在Quartus II窗口的底部的message窗口,会显示在编译过程中的各种信息如果编译过程中有错误出现,都会有相应的错误信息给出7、引脚分配以上编译过程中,Quartus II软件自由选择FPGA器件的引脚作为电路的输入和输出。
然而,DE2开发板上的FPGA与其它的器件已经连接好我们使用扳钮开关Switch,SW0和SW1作为我们的例子电路的外部输入x1和x2这两个开关分别被连接到FPGA的N25和N26引脚连接输出f到绿色的发光二极管LEDG0,LEDG0连接到FPGA的AE22引脚Quartus II软件的引脚分配通过Assignment Editor完成选择Assignments > Pins打开如图24所示的器件引脚分配 在“Complier Tool”编译器窗口中点击“Analysis&Synthesis” 下按钮,或直接在工具栏中点击按钮,完成设计的分析和综合, 再进行引脚分配引脚分配有多种方法: 选菜单“Assignments”→“Pins”或“Pin Planner”项,或直接点击 工具栏按钮,在底层编辑窗口中分配引脚通过拖拽信号名到引脚、在引脚域选择或直接输入引脚号等方式给输入、输出信号分 配引脚,如图所示 选菜单“Assignments”→“Assignment Editor”,或直接点击工具 栏按钮,然后在“To”域键入输入或输出信号名、在 “Assignment Name”域选择“Location”并在“Value”域输入引脚号,在图形编辑窗口中,选中某个输入或输出信号,按鼠标右键, 在弹出菜单中选“Locate”→“Locate in Pin Planner”或“Locate in Assignment Editor”,然后用类似前二种方法指定引脚号。
由编译器自动分配8、仿真验证仿真分功能仿真和时序仿真两种 仿真过程分三步首先要建立波形文件,确定需要 观察的信号,设计输入波形,设定一些时间和显示参数 其次才是运行仿真程序最后是根据仿真结果(波形) 分析电路功能正确与否1.建立波形文件:第一步 打开波形图编辑器 1)在管理器窗口中选择菜单“File”→“New...”或直接在工具栏上点击按钮,打开“New”列表框 2)点开“Verification/Debugging Files”,选中“Vector Waveform File”项,按“OK”此时便会出现一个波形图编辑窗口 第二步 设定时间参数 1)选择菜单“Edit”→“End Time...”项,键入仿真结束时间,按“OK” 2)选择菜单“Edit”→“Grid Size...”项,键入显示网格间距的时间,按“OK”第三步 确定需观察的信号 1)在“Edit”菜单中或在波形图编辑窗口左侧“Name”栏空白处,单击鼠标右键选择“Insert”→“Insert Node or Bus...”项,打开“Insert Node or Bus…”对话框 2)点击“Node Finder…”按钮,打开“Node Finder”对话 框。
在“Filter”下拉框中选择信号类别,如选“Pins:all”, 表示选择所有引脚(信号) 3)点“List”按钮,将所选类别的所有信号均列于“Nodes Found”框中 4)从“Nodes Found”框中选择信号,然后按“≥”箭头, 使所选信号名进入“Selected Nodes”框如按“>>”箭头, 则“Nodes Found”框中所有信号全部进入“Selected Nodes” 框 5)按“OK”,返回“Insert Node or Bus…”对话框,再点 击该框中“OK”,所选信号将出现在波形图编辑窗口中6)根据需要编辑输入波形编辑窗口左侧的按钮由上至 下依次为:取波形窗口、选择工具、文本工具、波形编 辑工具、缩放。