数字系统设计-------QuartusⅡ的VerilogHDL建模与仿真常用的PLD设计EDA工具软件•PLD设计EDA工具软件的分类1.由芯片制造商提供–提供了一个CPLD/FPGA的完全集成化设计环境EDAToolProviderDescriptionMAX+PLUSⅡAltera早期PLD开发工具,易于学习和使用QuartusⅡAltera第4代EDA工具,功能强大,并适于SOPC开发FoundationXilinxXilinx的早期PLD开发工具ISEXilinxXilinx的最新PLD开发工具ispDesignEXPERT,ispLEVERLattice2002年推出ispLEVER常用的PLD设计EDA工具软件2.由专业EDA软件商提供——第三方设计软件支持多家公司的PLDEDAToolProviderDescriptionFPGAAdvantageMentorGraphics包括HDLDesignerSeries(可视化的设计输入工具),ModelSim(仿真工具),PrecisionRTLSynthesis(最新的逻辑综合器)。SynplifySynplicity优秀的逻辑综合工具LeonardoSpectrmMentorGraphicsMentor早期的逻辑综合工具FPGACompilerIISynopsys新的逻辑综合工具ModelSimMentorGraphics高效、功能强大的仿真工具ActiveHDLAldec仿真工具,简单易用NC-Verilog/NC-VHDL/NC-SIMCadence优秀的仿真工具QuartusⅡ简介•QuartusⅡ美国Altera公司自行设计的第四代PLD开发软件目前最新版本:9.1•1.完全集成化的设计工具将设计输入、逻辑综合、布局与布线、仿真、时序分析、器件编程集成在同一开发环境下;可加快动态调试,缩短开发周期。2.与器件结构无关其核心Compiler支持Altera所有PLD器件:•StratixII,CycloneII,StratixGX,MAXII,StratixHardCopy,Stratix,Cyclone,APEXII,APEX20K/E/C,Excalibur,&MercuryDevices•FLEX10K/A/E,ACEX1K,FLEX6000,MAX7000S/AE/B,MAX3000ADevices支持的第三方工具•综合工具•LeonardoSpectrum*•DesignCompiler•FPGACompilerII•Standard*&•AlteraEdition*•FPGAExpress*•SynplicitySynplify*•仿真工具•ModelSim*•ModelSimOEM*•CadenceVerilog-XL•InnovedaBLAST•PrimeTime*•SynopsysVCS•SynopsysVSS注意*表示支持内部链接QuartusⅡ简介•QuartusⅡ的启动界面1ProjectNavigator窗口2Status窗口3主工作区域4Messages窗口5工具栏QuartusⅡ的图形用户界面功能1DesignEntry(设计输入)•TextEditor•Block&SymbolEditor•MegaWizardPlug-InManager•AssignmentEditor•FloorplanEditor2Synthesis(综合)•Analysis&Synthesis•VHDL,VerilogHDL&AHDL•DesignAssistant•RTLViewer•TechnologyMapViewer•IncrementalSynthesis3Place&Route(布局布线)•Fitter•AssignmentEditor•FloorplanEditor•ChipEditor•ReportWindow•ResourceOptimizationAdvisor•DesignSpaceExplorer4TimingAnalysis(时序分析)•TimingAnalyzer•ReportWindow•TechnologyMapViewer5Simulation(仿真)•Simulator•WaveformEditorQuartusⅡ的图形用户界面功能6Programming(编程)•Assembler•Programmer•ConvertProgrammingFiles7System-LevelDesign(系统级设计)•SOPCBuilder•DSPBuilder8SoftwareDevelopment(软件开发)•SoftwareBuilder9Block-BasedDesign(基于块的设计)•LogicLockWindow•FloorplanEditor•VQMWriter10EDAInterface(EDA界面)•EDANetlistWriter11PowerAnalysis(功耗分析)•PowerPlayAnalyzerTool•PowerPlayEarlyPowerEstimator12TimingClosure(时序逼近)•FloorplanEditor•LogicLockWindow•TimingOptimizationAdvisor•DesignSpaceExplorerQuartusⅡ的图形用户界面功能•13Debugging(调试)•SignalTapII•SignalProbe•In-SystemMemoryContentEditor•RTLViewer•TechnologyMapViewer•ChipEditor•14EngineeringChangeManagement(工程变动管理)•ChipEditor•ResourcePropertyEditor•ChangeManage如何在线获取帮助?•按F1键,可打开帮助窗口,即时访问对话框上的信息、高亮度的菜单命令或弹出式信息;•或按Shift+F1键,鼠标变为一个问号,在图元、宏单元符号等屏幕显示的任何项目上单击鼠标左键,可获得该项目的帮助;•或单击工具栏上的帮助按钮,鼠标也会变为一个问号,然后单击想要获得帮助的项目。QuartusⅡ的设计流程(1)(2)(4)(5)(3)设计要求设计输入功能仿真综合布局布线时序分析时序仿真设计修改(6)(7)全编译编程、配置设计输入•QuartusII–TextEditor文本输入•AHDL,VHDL,VerilogHDL–MemoryEditor存储器输入•HEX,MIF–SchematicDesignEntry图形设计输入•3rd-PartyEDATools第3方EDA工具–EDIF–HDL–VQM(VerilogQuartusMapping)•Mixing&MatchingDesignFilesAllowed设计输入文件设计实例1设计要求设计一个3线-8线译码器,真值表如表1所示:(1)设置使能控制端,低电平有效。(2)输出高电平有效。(3)采用Verilog语言的文本输入方式。(4)进行功能仿真与验证。*说明:本例采用门级描述和行为描述两种方式。两种方式描述均能完成设计要求。设计实例11门级描述(程序如下)//Gate-leveldescriptionofa3-to-8linedecoder(Figure1)•module_3to8decode(A1,A2,A3,E,Y);•inputA1,A2,A3,E;//定义输入信号•output[7:0]Y;//定义输出信号•wireA1not,A2not,A3not,Enot;//定义电路内部节点信号•notn1(A1not,A1),//非门调用•n2(A2not,A2),•n3(A3not,A3),•n4(Enot,E);•andn5(Y[0],A3not,A2not,A1not,Enot),//与门调用•n6(Y[1],A3not,A2not,A1,Enot),•n7(Y[2],A3not,A2,A1not,Enot),顶层实体名称设计实例1•续上页•n8(Y[3],A3not,A2,A1,Enot),//与门调用•n9(Y[4],A3,A2not,A1not,Enot),•n10(Y[5],A3,A2not,A1,Enot),•n11(Y[6],A3,A2,A1not,Enot),•n12(Y[7],A3,A2,A1,Enot);•endmodule设计实例12行为描述(程序如下)•module_3to8decode(Y,E,A);•output[7:0]Y;//输出信号•input[2:0]A;//输入信号•inputE;//输入使能•assignY=(E==0)?(1‘b1A):8’b00000000;//移位操作•Endmodule*说明:该程序放在QuartusII的安装目录“C:\altera\80\quartus”的decode文件夹下。如未建立该工作目录,请先将程序_3to8decode.v文件放在“C:\altera\80\quartus\decode”目录下。下面的具体步骤都是以该安装目录建立工程。请按照“#”后的步骤操作。建立工程环境•一、创建工程•1.打开创建工程向导执行菜单命令“FileNewProjectWizard”,打开Introduction对话框。单击“Next”。•2.选择所建立工程的工作目录,输入工程名称、顶层实体名工程名称可以是任何名字,建议使用和顶层实体名相同的名字。顶层实体名称必须和顶层文件名字相同!单击“Next”。此处为_3to8decode此处为_3to8decode此处为安装的默认路径##•3.加入设计文件(必要时)(1)单击Add按钮,从其他工作目录中选择所需要的现成的源文件(只是指向该文件位置);如果未加入设计文件,可直接单击“Next”,参见后面文件输入步骤。(2)单击“Next”。此处添加位于软件安装的默认路径下decode文件夹中的_3to8decode文件第3步也可以略过,以后再创建设计文件,或者以后再用“ProjectAdd/RemoveFilesinProject…”命令将其他工作目录中的文件添加到本工程中。##建立工程环境•4.指定目标器件类型在“Family”栏中选择“CycloneII”,其它选项默认即可;单击“Next”;器件系列名称具体器件列表器件涮选信息#建立工程环境•5.指定第三方对代码进行综合和仿真的工具(需要时)在安装QuartusII软件时,缺省的情况下安装了综合和仿真工具,也可以选择QuartusII软件支持的其它综合或仿真工具。在弹出的对话框中,选择适当的工具,或者什么也不选,单击“Next”。此处都选择None即可#建立工程环境•6.完成在最后一步中,显示了在前面几步中所做选择的信息。确认无误后单击“Finish”。#建立工程环境•7.完成后如右图所示双击_3todecode可以打开顶层文件(程序说明见设计实例)#建立工程环境•执行“AssignmentsSettings”菜单命令,弹出“Settings”窗口Files——添加和删除文件;UserLibraries——添加用户库;Device——更改器件系列;EDAToolSettings——设置其它EDA工具;TimingAnalyzer——定时分析设置Simulator——仿真设置:选择功能仿真或时序仿真对工程设置进行修改设计输入*说明:如果在建立工程时没有加入设计文件,则执行以下本文文件输入步骤;1.建立一个新文件用File-New命令,在DeviceDesignFiles标签下选择文件类型为“VerilogHDLFile”。2.输入HDL语言程序。3.保存文件,文件名与顶层设计实体相同。在工程环境建立完后,新建的文件自动加入当前工程中。此处为_3to8code.v。双击_3to8code.v可以在工程中打开程序。用FileSav