利用VHDL完成电路设计后,必须借助EDA工具软件中的综合器、适配器、时序仿真器、编程器等工具进行相应的处理,才能使此项设计在FPGA上完成硬件实现并得到硬件测试。在EDA工具的设计环境中,有多种途径来完成目标电路系统的表达和输入方式,比如:HDL文本输入,原理图输入,状态图输入,及混合输入等方式。HDL文本方式是最基本最直接的。本节通过实例来详细介绍QuartusIIdeVHDL文本输入设计流程,包括:输入,综合,适配,仿真测试和编程下载等方法。Altera公司发布Quartus®II软件是业界领先的CPLD、FPGA和HardCopy®ASIC开发环境。任何一项设计都是一项工程(Project),都必须先设置一个存放与该工程相关的所有设计文件的文件夹。这个文件夹被EDA软件默认为工作库(WorkLibrary)。不同的设计项目最好放在不同的文件夹中,同一工程的所有文件必须放在同一个文件夹中,文件夹设计不要设计在安装目录,不要将工程文件直接放在安装目录中。先在windows下自建一个文件夹,不能用中文也不要用数字。输入源程序。打开QuartusII,用file-new,在new窗口的DeviceDesignFiles选项下选择编译文件的语言类型,选VHDLFile打开VHDL文本编译窗口输入VHDL程序。文件存盘。FileSaveAs,把源程序文件存入先前创建的文件夹中,存盘文件名与实体名一致。出现询问,Y则直接进入创建工程流程,N可以用其他方法进入创建工程流程。Cnt10.vhd也可以利用NewProjectWizard工具选项来创建设计工程,即令顶层设计cnt10.vhd为工程,并设计工程相关信息:工程名,目标器件,综合器,仿真器等。1)打开FileNewProjectWizard建立新工程管理窗口,在界面上找到事先设定好的文件夹,设定工程名,选中已存盘文件,一般应该设顶层设计文件为工程,第三行为当前工程顶层文件的实体名。2)将设计文件加入工程,将工程相关的所有VHDL文件(如果有)加入此工程,用addall按钮3)选择仿真器和综合器类型,选择Next弹出窗口选择仿真器和综合器类型,如果选默认的NONE,表示选软件自带的仿真器和综合器,可以另选仿真器和综合器尤其是选用非Altera公司的器件的时候。4)选择目标芯片,用Family下拉列表选择芯片系列,再选择一个确定的目标器件。5)工具设置,下一步是EDA工具设置窗口,EDAdesignentry/synthesistool用于选择输入HDL类型和综合工具;EDAsimulationtool用于选择仿真工具;EDAtiminganalysistool用于选择时序分析工具,除了可以用自带的工具外可以外加工具。6)结束设置,下一步弹出工程设置统计窗口,列出相关设置最后finish,出现设好的工程名的工程管理窗口,显示本工程项目的层次结构和各层次实体名。QuartusII将工程信息存在工程配置文件(quartus)中。它包含工程所有信息,包括设计文件,波形文件,signalTapII文件。内存初始化文件,以及构成工程的编译器,仿真器和软件构建设置。建立工程之后,可以使用Assignment菜单下的Setting对话框中的Add/Remove选项卡在工程中添加和删除,设计其他文件。执行分析和综合器件,将按照选项卡中显示顺序处理文件。对工程编译处理前,必须做好必要设置步骤如下:1)选择FPGA目标芯片。AssignmemtsSetting命令,选择Category项下面的Device,选择目标芯片,也可以在建立工程时选定。选择常见的EP1C6Q240C8芯片2)选择器件的工作方式。单击Device&PinOptions按钮,进入选择对话框,首先选择General,在Option栏中选中Auto-restartconfigurationaftererror复选框,配置失效后能自动重新配置,并加入JTAG用户编码。3)选择配置器件和编程方式。如果希望编程配置文件能压缩后下载进配置器件中(Cyclone器件能识别压缩的配置文件,并实时解压缩),可以在编译前作好设置。选中Configuration,选中Generatecompressedbitstreams复选框,就能产生用于EPCS的POF压缩配置文件。4)选择目标器件闲置引脚状态。选择UnusedPins选项,可以根据实际需要选择目标器件闲置引脚状态。可选择输入状态或输出状态,或输出不定状态。每一个选项功能可以参阅窗口下方的Description说明QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检查,逻辑综合,结构综合,输出结果的编辑配置,以及时序分析。在这个过程中,将设计项目适配到FPGA/CPLD目标器件中,同时产生多种用途的输出文件,如功能和时序信息文件,器件编程的目标文件等。编译器首先检查出工程设计中的错误信息,然后产生一个结构化的网表文件表达的原理图文件。编译前首先选择ProcessingStartCompilation命令,启动全程编译,它包括对设计输入的多项处理操作:排错,数据网表文件提取,逻辑综合,适配,装配文件生成以及基于目标器件的工程时序分析等。编译过程中要注意工程管理窗口下方的Processing栏中的编译信息,出现语句根式错误时可以双击条文,弹出对应的VHDL文件,深色标记处即为文件中的错误。如果编译成功可见工程资源管理窗口的左上角显示了工程CNT10的层级结构和其中结构模块耗用的逻辑宏单元数;Status下是编译处理流程:数据网表建立,逻辑综合,适配,配置文件装配和时序分析。CompilationReport栏中单击各项,可以详细了解编译和分析结果。工程编译通过后,必须要对其功能和时序性质进行仿真测试,以了解设计结果是否满足设计要求,以VWF文件方式的仿真流程步骤如下:1)打开波形编辑器,filenew,在窗口中选择otherfiles选项卡中的VectorWaveformFile选项,即出现空白的波形编辑器。2)设计仿真时间区。时序仿真将仿真时间设置在一个合理的时间区域十分重要,通常设置的时间范围在数十微秒间。选择editendtime命令,在窗口的time文本框中输入50,单位us,ok结合设置3)波形文件存盘。Filesaveas将默认名为singt.vwf的波形文件存入工程文件夹中,4)将工程CNT10的端口信号节点选入波形编辑器中。Viewutilitywindowsnodefinder命令,在对话框的filter下拉列表中选pins:all,然后单击list按钮,在下方的Nodesfinder窗口中出现设计中的CNT10工程的所有端口引脚名,如果list不显示CNT10工程的端口引脚,需要重新编译一次。最后将重要的端口节点CLK,EN,RST,COUT和输出总线信号CQ分别拖到波形编辑器窗口后,关闭NodesFound窗口,调整波形窗口,使仿真坐标处于适当位置。5)编辑输入波形。在波形编辑器窗口单击时钟信号CLK,再单击左列的时钟设置键,在clock窗口中设置时钟周期2us,Dutycycle是占空比,再分别设置好EN和RST的电平,可以在波形编辑器窗口看到设置好的激励波形图。6)数据总线格式设置。单击输入信号CQ的左边+,则能展开此总线中的所有信号,双击则出现该信号数据格式设置对话框,其中Radix下拉表中选择无符号十进制整数UnsignedDecimal表达方式。对波形文件再次存盘。7)仿真器参数设置。Assignmentsetting命令,在settings窗口下选择Categorysimulatorsetting,在右侧simulationmode下拉列表中选择Timing即时序仿真,选择激励源文件名,选定simulationcoveragereporting复选框,毛刺检测Glitchdetection为1ns宽度,选中Runsimulationuntilvectorstimuliareused复选框。8)启动仿真器。所有设置进行完毕,选择ProcessingStartSimulation命令,直到出现Simulationwassuccessful,仿真结束。9)观察仿真结果。仿真波形文件simulationreport通常会自动弹出。波形编辑文件*.vwf与波形仿真报告simulationreport是分开的。如果启动仿真运行,并未出现仿真完后的波形图,但是报告仿真成功,可以自行打开仿真波形报告,选择Processingsimulationreport命令。Zoom菜单下可以设置合理位置显示时间轴上的波形图。QuartusII可以实现硬件描述语言或网表文件(VHDL,Verilog,BDF,TDF,EDIF,VQM)对应的RTL电路图的生成。方法:ToolsNetlistViewers命令,出现的下拉菜单中选型RTLViewer即是HDL的RTL级图形观察器;选项TechnologyMapViewer即对应的FPGA底层门级布局观察器;选项StateMachineViewer即HDL对应状态机观察器。利用第一个选项可以打开CNT10工程的RTL电路图。对图中的模块双击可以逐层了解层次的电路结构。为了能对此例中的计数器进行硬件测试,应将其输入输出信号锁定在芯片确定的引脚上,编译后下载。测试完成后还需对配置芯片进行编程完成FPGA的最终开发。先要根据实验系统确定引脚编号后再做引脚锁定操作1)打开已设计好的工程2)选择AssignmentsAssignmentsEditor命令,进入配置编辑窗口。在Category下拉列表中选择Pin按钮。3)双击to栏的new,选择要锁定的端口信号名,再双击location栏中的new选择对应端口信号的器件引脚号。还能用Assignmentspins命令用更直观的图形方式来完成引脚锁定。4)存储引脚锁定信息后,必须在编译一次(启动StartCompilation)才能将引脚锁定信息编译进编程下载文件中。将编译产生的SOF文件配置进FPGA中。进行硬件测试步骤:1)打开编程窗口和配置文件。需要实验系统的编程接口与计算机连接好。选择ToolProgrammer命令,弹出编程窗口,在Mode下拉表中选择四中编程下载方式之一,一般选择JTAG,并选中下载文件右侧的第一个小方格,核实下载文件与路径,单击Addfile按钮,手动选择配置文件cnt10.sof2)设置编程器。初次安装QuartusII,在编程前还必须进行编程器选择操作。单击HardwareSetup按钮可设置下载接口方式,在对话框中选择HardwareSetting选项卡,双击ByeBlasterMV,编程方式为:ByeBlasterMV[LPT1]。如果在编程窗口Currentlyselectedhardware右侧显示NoHardware的话必须加入下载方式。3)选择编程器。显示编程方式取决于QuartusII软件对实际连接的硬件实现系统的测试。最后单击下载按钮,进入对目标器件的配置下载操作。当Progress显示100%,出现configurationSucceeded表示编程成功。4)硬件测试。下载Cnt10.sof后通过试验系统来验证器件功能。为了使FPGA在上电启动后仍然保持原有的配置文件,并能正常工作,必须将配置文件烧写进专用的配置芯片EPCSx中,它是Cyclone器件的专用配置器件Flash存储结构。编程模式是ActiveSerial(AS)模式,编程接口为ByteBlasterII或USB-Blaster编程方法如下:在编程窗口中的Mode下拉列表中选择ActiveSerialProgramming编程模式,打开编程文件,选中文件CNT10.pof,并选中三个编程操作项目。如果只有JTAG口,也能对EPCS器件进行配置,即使用间接配置模式。方法是先将SOF文件转化为JTAG间接配置文件,再通过FPGA的