fpga 数字逻辑基于Quartus设计_第1页
fpga 数字逻辑基于Quartus设计_第2页
fpga 数字逻辑基于Quartus设计_第3页
fpga 数字逻辑基于Quartus设计_第4页
fpga 数字逻辑基于Quartus设计_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、示例1:基于原理图的分频器工程设计利用原理图进行输入设计时,对设计人员的编程技术没有太高的要求,在没有掌握硬件描述语言的情况下就能进行FPGA的开发设计。学习利用软件QuartusII为原理图输入提供的原理图编辑器(BlockEditor)来完成工程设计的方法。设计过程主要包括工程建立、编辑设计图形、编译综合和仿真测试。对于编程下载和硬件测试过程,这里涉及具体的硬件平台,实现的方法是相同的。建立工程文件(1)指定工程文件名称运行QuartusII软件,选择FileNewProjecWizard打开过程生成向导。在弹出的对话框中分别输入新建工程所在的文件夹名称、工程名称和顶层实体名称。如图4.1

2、所示。点击Next。注意,QuartusII要求工程文件名一定要与顶层实体名称相同。图4.1新建工程对话框(2)选择添加的文件和库如果,工程文件夹不存在,则弹出提示对话框,按照提示单击Yes按钮就会自动建立。单击Next按钮,就会出现图4.2的界面。如果需要添加文件或者库,按照提示操作。否则单击Next按钮,本实验就不需要添加文件或者库。图4.2添加文件或库对话框(3)目标器件选择进入目标器件选择,这里在Family器件种类栏选择Cyclone系列,各项的选择如图4.3所示。点击Next就会进行第三方EDA工具的选择。FPGA器件选型常识。FPGA器件的选型非常重要,不合理的选型会导致一系列的

3、后续设计问题,有时甚至会使设计失败;合理的选型不光可以避免设计问题,而且可以提高系统的性价比,延长产品的生命周期,获得预想不到的经济效果。FPGA器件选型有以下7个原则:器件的供货渠道和开发工具的支持、器件的硬件资源、器件的电气接口标准、器件的速度等级、器件的温度等级、器件的封装和器件的价格。PagNewPfCJSCrWizSraTFamily&DevireSeCTingspSgJISelectthefamily日nddeviceyouw日nttotargetforcompilation.Availabledevices:Package:Pincount:Speedgrade:NameCore

4、v.LEsUserI/.Memor.Embed.PLLEP2C35F672CS1.2V33216475433040EP2C35F672IS1.2V33216475403040EP2C50F672CS1.2V50528450594432EP2C50F672I81.2V50528450594432EP2C70F672CS1.2V604164221152000EP2C70F672IS1.2V6S41642211520007Showadvanu胡devices厂HardCopycompatibleonlvConii3anionoweHardCopv:|I啟LimitDSP&:RAMtoHardCopy

5、deviceresourcesIlli1IFinish取消图4.3目标器件选择对话框本例没有用到第三方工具,点击Next,如图4.4所示。图4.4第三方EDA工具选择对话框4)工程结束如图4.5所示,完成设置工程的信息描述。查看设置信息是否正确,如果正确,则单击Finish按钮。就会出现4.6所示工程建立完成后的界面。图4.5完成设置工程的信息描述图4.6建立后的工程界面2.输入原理图(1)建立文件。在图4.6窗口中,选择FileNew命令,出现如图4.7所示的对话框,在该对话框中,共有8种设计文件输入方式,分别对应相应的编辑器。原理图输入选择BlockDiagram/SchematicFil

6、e,点击OK,就会出现如图4.8所示的图形编辑窗口。图4.7新建文件类型选择对话框(2)放置元器件符号。在图4.8所示的图形编辑器窗口的空白处双击左键。就会弹出如图4.9所示的电路,可以根据需要进行器件选择。这里用7490器件。惜Blockl.bdfProjectNavigator*xEntity险CycloneII:EF2C35F672C8reg_iifiverTasksFlow:|Compi1ationA口寻包k踊一fteDrFr日*+l+ll+liyi由Compi1eIIeeignArL:lyEis&SjFitter(PlaceAsEembler(.Ge:”ClassicTiminEDA

7、NetlistW:Fr口grainDeviceQj1III图4.8空白图形编辑窗口SymbolLibraries:74837484174841b74S4274842b7484374844748457484674857486748774907.-1Q1Name:7490.Flepeat-in$etmode厂nsertsymbolasblock厂Launchh4已gaWizardPlugnMegawizardFlug-lnManager.在此输入所需的器件名称KCancelISET9AISET9BACLRAQBCLRBQCCLKAQD|(:LK日7490hE4COUNTER图4.9选择电路元器件符

8、号窗口(3)命名和连接各元器件。按照第2步同样的方法,可以添加INPUT和OUTPUT并按照图4.10连接电路图。连接方法是把光标移到连线处,当光标变成十字时按住鼠标左键不放,将连线接到连接处,连线处不应出现“x”号。274907490o惓Block1.bdfx鬧4.1fre_drivider/freq_drividei.bdfFitter(Fl屏AiualysieProjectNavigator;亠xEntityICycloneII:EF2C35F6T2C8=regiriverSET9ASET9BOACLRAQBCLRBQCCLKAQDCLKB7490SET9ASET9BACLRAQBCLR

9、BQCCLKAQDCLKB;inst2COUNTERSET9ASET9BQACLRAQBCLRBQCCLKAQDCLKBCOUNTER|Compilation日CompileDesi0-FR-0E-屏Asseiriblert.Ge:解ClassicTimin!EDAUetliEtW:h:GNDi图4.10分频器的电路原理图窗口3.编译工程文件单击ProcessingfStartcompilation进行编译。若在编译工程中出现错误,根据提示信息进行相应修改。直至编译成功。出现5个对号,如图4.11所示。EriAity险CycloneII:EF2C35F672C8由蠡freqdrivider希k

10、JJSTipiilattoniRepLegalNoticeFlowSuimmcFlowSetting:FlowNon-DeFlowElapsecFlowOSSunFlowLogAnalysis&S1FitterAssemblerTiimiiingAnalyFlowSummaryTask|?4VCumpilHIip5igr呼AAnalysis&V母Fitter(PlVElAssemblerV田ClassicTiE1-EDANetlisfvTasks?low:|cornpilationFlowStatugQu:=j-tusIIVersionRevisionN:=ljtihTop-levelEnti

11、tyN:=uneF:=jtiilyDeviceTimingMijielEMettimingrequirementsTotallogicelementsTotalcomLinatiorL:ilfunctionsLiniiicatedlogicregieteirETotalregistetsTotalpinsTotalvirtualpinsTotalmemorybitsEmtiHdiiedMultiplieir9-bitpiemenTotalFLLeSuccessful-WedAprOT11:43:1320109.0Build23506/17/2009SF2SJWebEditifrt!q_iii-

12、ivid北freq_iirividerCycloneIIEP2C35F6T2C8FmalNo12/33,216(1%)12/33,216(1%)12/33,216(1%)122/475(1%)0/483,840(0%)0/TO(0%)0/4(0%)图4.11编译结果4.建立仿真测试的矢量波形文件(1)建立波形文件。打开FileNew,选择VectorWaveformFile如图4.12所示。单击OK按钮,出现如图4.13所示波形编辑对话框。NewNewQuartusIIProjectSOPCBuilderSystem+DesignFiles-MemoryFilesHexadecimal(Int

13、el-Format)FileMemoryInitializationFile-Verification/DebuggingFilesIn-SystemSourcesandProbesFileLogicAnalyzerInterfaceFileSignalTapIILogicAnalyzerFileVectorWaveformFile-OtherFilesAHDLIncludeFileBlockSymbolFileChainDescriptionFileSnopsvsDesignConstraintsFileTextFileOKICancel图4.12新建文件类型选择对话框惜freqdrivid

14、er.bdf寻CompilationReport-FlowSummaryInterval:-12.0nsStart:En.mimiV:dlueat12.05nsFlow:|Cornpilati日Compi1eHeeigr田AiL:ilyEie&E-Fit+nr(Fl田AESHmblHrClaEsicTi由!EDAIktl让叼ProjectNavigator远Waveforml.vwfMasterTimeBar:12.05nsJjjPointer:|50ps1在此处双击鼠标左i键,弹出添加引脚和节点对话框图4.13波形编辑窗口(2)添加引脚和节点。在图4.13的Name下方的空白处双击鼠标左键,

15、会弹出图4.14的对话框,在该对话框中单击NodeFinder按钮。就会弹出如图4.15所示的对话框。选择输入、输出引脚添加到右栏里,如图4.16所示。单击OK,就回到4.17的界面。InsertNodeorBusName:Ivpe:Valuetype:Radix:Buswidth:Startindex:NodeFinder.CancelDisplayravcodecountasbinarycount图4.14添加节点和总线对话框图4.15NodeFinder对话框图4.16选择输入、输出引脚对话框3)编辑波形。由于默认波形文件的时间为lys,在图4.17中,单击EditEndTime命令,在

16、弹出的对话框中,在Time文本框中输入10,其他不变。并设置输入信号为时钟信号,设置对话框的相应项。最后保存文件为.vwf型。CompilationReport-FlowSummary1J1Waveforml.vw产TasksProjectNavigator亠x惓fredrivider.bdfEntityStart:MasterTimeBar:12.05ns4_d卩厲门怕:11.7nsInterval:-350psA日Compi1pIIpeigr3S1*AiL:dlyEieSlFit+erijl全V田屏AEEHmblHrVS-ClassicTiSt-EDANetlisvraFlow:|Comp

17、ilation波形赋值快捷键图4.17添加节点后的波形窗口5.仿真QuartusII软件仿真分为功能仿真和时序仿真。二者区别是,功能仿真是忽略延时,按照逻辑关系仿真,而时序仿真则是加上一些延时仿真。如图4.18所示。Settings-freqdrividerC吕t已gory:GeneralFilesLibrariesD已”i匚:已+匚ip已rating已ttingsand匚uriditiuns+CumpilatiunProcessSettings+ED此TuulS已ttings+.Analysis&SynthesisSettingsFitterSettings+Timing.AnalysisS

18、ettinqsAssemblerD已sign.AssistantSignalTapIILogic.nalvzerLogic.AnalirizerIM已rface+Simuldto|5ettingsP匚吶已PlciiAier.AnalyzerSettingsSSNAnalimulatorSettingsSelectsimulationoptions.;在此选择进行功能仿真或者时序仿真Simulationmode:魏Simulationiriput:h已q_di”id已.屮川f勺AddMultipleFiles.Simulationperiodf*Flunsimulationuntilallvec

19、torstimuliareusedEndsimulationat:Glitchfilteringoptions:MoreSettings.|AuId在此选择进行功能-仿真或者时序仿真的输入文件*.vwf在此选择SimulatorSettingsDescription:图4.18软件仿真设置界面开始仿真前,必须通过为时序仿真编译设计,或通过选择用于功能仿真的GenerateFunctionalSimulationNetlist命令,来生成合适的仿真网表。此外,还要建立并指定一个向量源文件为仿真输入向量的源。Simulator使用向量源文件所包含的输入向量,来仿真同一条件下编程器将要产生的输出信号

20、。(1)功能仿真选择AssignmentSettings命令,如图4.18所示的界面。再选择ProcessingGenerateFunctionalSimulationNetlist命令,自动创建功能仿真网络表。单击仿真按钮即可。结果如图4.19所示。图4.19软件功能仿真结果(2)时序仿真设置方法如图4.18所示。仿真结果如图4.20所示。最终要下载到芯片里,只需进行引脚分配,编译下载即可。图4.20软件时序仿真结果示例2:基于VHDL语言的文本工程设计QuartusIITextEditor是一个灵活的工具,用于以AHDL、VHDL和VerilogHDL语言输入文本型设计。本例即以共阳七段译

21、码器为例,学习基于VHDL硬件描述语言的工程设计。七段数码显示译码器是纯组合电路,可以用小规模专用芯片实现,较方便灵活的还是利用译码程序在FPGA上实现。表4.1为十六进制译码显示的功能表。表4.1为十六进制译码显示的功能(共阳)DGGAabodef.宇璀费宇DGBAabGdcfiQ00000000001Q000000081000110011111孑i(ni000010092001000100102101010001000A00110000110Z1110111100000B斗0100100110041211000110001c01010100100&1;11011000010DE-01100

22、100000f1斗11100110000E70111000110171511110111000F下面按照设计流程进行介绍。1.建立工程文件工程文件的建立过程和方法与示例1的类似。主要包括指定工程文件名称、选择添加的文件和库及选择目标器件几个过程。这里取新建工程的文件夹名为hex_decoder_7sg、工程名称和顶层实体名称为hex_decoder_7sg。工程创建结束的对话框如图4.21所示。信息正确后,点击Finish,工程建立完成后的界面如图4.22所示。NewPraJecrWizara?Summ5ryWhenyouclickFinish,theprojectwillbecreated艸

23、i岀thefollowingsettings:Projectdirectory:D:/altera/myworks/test/heX-decoder-?sg/Projectname:hex_decoder_7sgT叩eveldesignentity:hex_decoder_7sgNumberoffilesadded:0Numberofuserlibrariesadded:0Deviceassignments:Familyname:CycloneIIDevice:EP2C35F672C8EDAtools:Designentry/synthesis:Simulation:Timinganalysi

24、s:peratingucinditions:Corevoltage:1.2VJunctiontemperaturerange:0-85BackINextFFinish.f取消图4.21工程创建结束的对话框lJd?miEntity|匚妙1皿己口:EFECSEFETECE;hez:der_7egFlow:CompilationTazk曲H屛CompileIIeeigrL0“許ArL:lyEie4lSy.E-許Fi11er(FlaceHAiEerTibleri:Gm:H“屏ClassicTiminfflEDANetlistW:ProjectNavigatorQuartuseIIv9.1Service

25、Pack2NowAvailableQUARTi图4.21工程建立完成后的界面2.输入VHDL语言程序代码建立文件。在工程建立完成后的界面里的FileNew,在弹出的对话框中选择VHDLFile并单击OK。进入文本编辑窗口。输入VHDL语言程序代码。在实际的文本编辑中设计程序文件时,可以直接利用QuartusII软件提供的模板进行语法结构的输入和编辑。具体方法如下。将鼠标放到要插入模板的文本行。在当前鼠标位置单击鼠标右键,在弹出的菜单中选择InsertTemplate命令。如图4.22所示。在对话框的LanguageTemplates列表中,选择需要插入的语言的语法结构模板,按提示完成操作。如图

26、4.23所示。霽Vhdll.vhd躺%III268ab/1卜UndoCtrl+ZRedoCtrl+YCutCtrl+XCopyCtrl+CPasteCtrl+VDeleteDelLocateIncreaseIndentDecteaseIndentFindMatchingDelimiterCtrl+MInsertFile.InsertTemplate.OpenSelectedEntitypenSymbolFileOpenAHDLIncludeFileCommentSelectionUncommentSelection图4.22步骤显示的对话框图4.23插入模板的对话框在图4.24输入程序代码。-

27、Alibraryclausedeclaresanameasalibrary.It-doesnotcreatethelibrary;itsimplyforwarddeclares-it.Libraryieee;Useieee.std_logic_1164.all;entityhex_decoder_7segisport(data_in:instd_logic_vector(3downto0);en:instd_logic;data_out:outstd_logic_vector(6downto0);endentity;architecturearchofhex_decoder_7segisbeg

28、inprocess(data_in,en)begindata_out1);ifen=1thencasedata_iniswhen0000=data_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outdata_outnull;endcase;endif;endprocess;endarchitecture;保存程序。保存类型为.vhd选中Addfiletocurrentproject,完成文件的保存。编译工程文件点击编

29、译按钮即可完成,有错误需要更正,直至完全正确为止。建立仿真测试的矢量波形文件。按照前面建立仿真测试的矢量波形文件的方法,先建立波形文件,添加引脚和节点。编辑波形。选择EditEndTime命令,在结束时间设置对话框的Time文本框中输入10(默认为1)卩s。设置使能信号EN。使能信号EN为1译码器工作,否则不工作。单击Name下方的EN,再单击波形编辑器工具栏中的1电平符号,设置为1结束。设置数据输入信号data_in。单击Name下方的data_in,单击波形编辑器工具栏中的计数值,在弹出的对话框中完成相应设置。设置数据输出信号data_out。单击Name下方的data_out,选中该波形

30、并单击鼠标右键,弹出对话框,选择Properties命令,弹出对话框。在基数Radix中选择二进制方式。保存测试波形文件。5.仿真可以进行功能仿真或时序仿真。(1)选择AssignmentSettings命令。进行相关设置。(2)选择ProcessingGenerateFunctionSimulationNetlist命令,自动建立功能仿真网络表。单击仿真按钮,显示波形如4.24所示。结果正确。图4.24功能仿真的波形示例3:基于状态机的工程设计状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前”节点的转

31、移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止。编译器识别状态机的条件:表现状态机的信号或变量必须为枚举类型。状态转移必须由elk触发,并且是用IF语句检测的上升沿进行转移。状态转移到下一个状态由CASE语句判断。所有信号,变量赋值都要放在状态机进程里进行。状态机的状态必须多于两个状态。QuartusII状态机编辑器(StateMachineEdit)是一个灵活的工具,用于以图形方式表示时序电路的状态图,而且不需要编写任何VHDL或VerilogHDL源代码。在状态机编辑器中完成状态图的输入以后

32、,直接通过GenerateHDLFile命令,就会生成VHDL或VerilogHDL源代码。这个示例就是利用状态编辑器设计一个4位二进制计数器。1.建立工程文件工程文件的建立过程和方法与示例1的类似。主要包括指定工程文件名称、选择添加的文件和库及选择目标器件几个过程。这里取新建工程的文件夹名为cnt4b_state、工程名称和顶层实体名称为cnt4b_state。工程创建结束信息正确后,点击Finish,工程建立完成后的界面如图4.25所示。ProjectNavigatnr亠xTask日ACompileIIeeign0-AiL:lysis&Sy.0-Fitter(Place0-AssHmble

33、rI.Ge:0-ClassicTimin0-EDANetlistWTasksFlow:CompilaticmProktamDevice(HFileEditViewProjectAssignmentsProcessingToolsWindowHelpDQ9昼|cnt4bstateQuartusGIIv9.1ServicePack2NowAvailableQUAR图4.25工程建立完成后的界面2.输入状态机(1)建立文件在图4.25中选择FileNew命令,在弹出的对话框中选择StateMachineFile并点击OK按钮,进入如图4.26所示的对话框。图4.26状态机编辑窗口2)创建状态机选择T

34、oolsStateMachineWiza命d令,打开状态机创建向导选项对话框。选择Reset信号描模式:Synchronous(同步)或Asynchronous(异步)。这里选项异步。选择Reset为高电平有效;选择市出为寄存器方式。单击Next。如图4.27所示。设置输入信input2状态转换表输入状态名称SourceState1DestinationState-.Transition3statE2statedinputl&input24ststeSstate斗OTHERS5stste4statfi5inputl|inputZ6state5state6OTHERS7statesstate?图

35、4.27状态机创建向导步骤在对话框内的State栏输入状态名称state0-statel5(双击state进行改写),在输入端口栏中取默认情况。在状态转换表输入状态转换,转换条件默认。如图4.28所示。Outputports:OutputPortNameOutputStste1qoutput3:0Currentdockcyde2IlliBackNextFinish取消Actionconditions:OutputPartOutputValueInStateAdditionalConditionsA12iut3:0blOllstate1113iut3:0blUQOstate121斗iut3:0b

36、llOlstate13ll15iut3:0blUOstate1416iut3:0bllllstate15vldr11-,.L_lIlli1也图4.28设置好输出变量和输出值的对话框在图4.28中,在输出端口栏填写输出向量名称qout3:0,在输出状态下选择Currentclockcycle;在状态输出下输入各个状态对应输出编码。设置完成,单击Next。进入如图4.29界面。图4.29状态机的生成信息单击Finish生成如图4.30所示的十六进制计数器状态机。OutputTable:电xOutputPortqoutput3:0图4.30十六进制计数器状态机(3)保存文件。保存生成的状态机。文件类

37、型为.smf,选中Addfiletocurrentproject。(4)生成VHDL文件。在Tools栏下选中GenerateHDLFile命令,选择VHDL选项,即可生成VHDL文件打开的源文件如图4.31所示。如此生成VHDL源文件很方便。图4.31VHDL源文件3.编译工程进行编译工程,等出现如图4.32所示的信息。说明编译成功了。图4.32编译成功的信息说明4.建立仿真测试的矢量波形文件建立仿真测试的矢量波形文件的方法可参考前两种方法。仿真结果如图4.33所示图4.33十六进制功能仿真波形示例4:基于LPM宏功能模块的工程设计LPM是参数可设置模块库LibraryofParameter

38、izedModules的英语缩写,Altera提供的可参数化宏功能模块和LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、嵌入式PLL以及SERDES和DDIO电路模块等等。这些可以以图形或硬件描述语言模块形式方便调用的宏功能块,使得基于EDA技术的电子设计的效率和可靠性有了很大的提高。设计者可以根据实际电路的设计需要,选择LPM库中的适当模块,并为其设定适当的参数,就能满足自己的设计需要,从而在自己的项目中十分方便地调用优秀的电子工程技术人员的硬件设计成果。LP

39、M功能模块内容丰富,每一模块的功能、参数含义、使用方法、硬件描述语言模块参数设置及调用方法都可以在QuartusII中的Help中查阅到,方法是选择“Help”菜单中的“MegafUnctions/LPM命令。Altera提供的宏功能模块与LPM函数主要有以下几种。算术组件:包括累加器、加法器、乘法器和LPM算术函数。门电路:包括多路复用器和LPM门函数。I/O组件:包括时钟数据恢复(CDR)、锁相环(PLL)、双数据速率(DDR)、千兆位收发器块(GXB)、LVDS接收器和发送器、PLL重新配置和远程更新宏功能模块。(4)存储器编译器:包括FIFOPartitioner、RAM和ROM宏功能

40、模块。(5)存储组件:包括存储器、移位寄存器宏模块和LPM存储器函数。在Tools下运行MegaWizardPlugManager命令打开后显示如图4.34所示。已安装的LPM模块如图4.35所示。TheMegaV/izardPlugnManagerhelpsvoucreateormodifvdesignfilesthatcontaincustomvariationsofmegafunctions.Whichactiondoyouwanttoperform?*CreateanewcustommegafunctionvariatiodEdit日nexistingcustommegafunctio

41、nvariationCopyanexistingcustommegafunctionvariationCopyright(C)1991-2009AlteraCorporation图4.34选择创建一个新的宏功能模块已经安装的LPM模块,可供用户选择riiCrInlAQfunctioiiwould5ot(-ik严page2aJSelectamegafunctionfromth.,listbelowWhichdevicefamilywillyoubeusing?StratixInstalledPlug-Ins/|AlteraSOPCBuilderSalArithmeticKilCommunicat

42、ions画DSPKa|Gates鱼JI/OWhichtypeofoutputfiledoyouwanttocreate?CAHDL*VHDLCVerilogHDL+IPMegctoreBalInterfacesKilJTAG-accessibleExtensionsKilMemoryCompilerBalStorageV/hatnamedoyouwantfortheoutputfile?D:alteramvworkstestBrowse.;未安装的;LPM模块ReturntothispageforanothercreateoperationNote:Tocompileaprojectsucce

43、ssfullyintheQuartusIIsoftware,yourdesignfilesmustbeintheprojectdirectory,intheglobaluserlibrariesspecifiedintheOptionsdialogbox(Toolsmenu,orauserlibraryspecifiedintheUserLibrariespageoftheSettingsdialogbox(Assignmentsmenu.Yourcurrentuserlibrarydirectoriesare:Cancel图4.35已安装的LPM现从以下几个方面介绍工程文件的建立、编译和仿真

44、过程。通过定制1000进制的计数器,掌握基于MegaWizard管理器定制LPM宏功能模块的基本方法,掌握LPM宏功能模块在数字系统设计的应用方法和技巧。1.建立工程文件建立工程文件的过程和方法与前面的示例1、示例2相同。工程名和顶层文件名均为cntlOOO,最终的显示界面如图4.36所示。图4.36工程创建结束对话框2定制LPM宏功能模块及其应用在Tools下运行MegaWizardPlugManager命令打开后显示如图4.34所示。已安装的LPM模块如图4.35所示。具体创建工程如下。(1)打开MegaWizardPlugManager对话框。(2)在图4.35中,选择Installed

45、Plug-InsArithmeticLPMCOUNTER。在弹出的对话框中,目标器件类选择CyclonicII、编程语言选择为VHDL及输入生成的输出文件名为cntlOOO,其他取默认值。单击Next。(3)进入如图4.37所示界面。设置输出端q的数据宽度为10bits,选择计数方式为Uponly。单击Nexto如图4.38所示的界面。点击Next。图4.37LPM步骤(3)的设置界面4)设置计数器的类型(计数的模)和计数器的控制端,设置计数的模为1000,完成(5)清零端和置位端设置情况如图4.39所示。单击Next。LegJWiHFflPlug-1nMSnSgeiLPM_COUNTER巾?

46、5方辺迪LPM_COUNTER|i|ParameterSettingsGeneral|T|EDAGeneral2AboutDocumentation|3|SummaryyOptionalInputsResourceUsage10lut+1QregCancelFinish图4.38设置计数器的类型和计数器的控制端在4.40所示的对话框中勾选Generatenetlist。单击Next。Set*LoadSet亘-nxDoyouwant日nyoptionmlinputs?SynchronousinputsAsynchronousinputsDocumentationClearSettoalllsOS

47、etto00bearLoadSettoalllsOSetto0cntlOOOupcounteimoduluBq9.OCDUtdata9.OResourceUsage10lut+10別GeneralGeneral2|Optian日IInputsMegaWfzardPlug-InManager-LPM_COUNTER卡LPM.COUNTERAbout|i|ParameterSettingsCancslFinish图4.39清零端和置位端设置图4.40产生网络列表勾选图示的选项,完成设置情况如图4.41所示。最后单击Finish,完成后界面如图4.42所示。Turnonthefilesyouwish

48、togenerate.Agraycheckmarkindicates日filethatisautDmaticallygeneratEcljandaredcheckmarkindicatesanoptionalfile.ClickFinishtngeneratetheselectedfiles.ThestateofeachcheckboxismaintsinedinsubsequentMegaWizardPlug-InManagersessions.TheMegaWizardPlug-In啊日nagercreatestheselectedfilesinthefollowingdirertary:

49、D:ltEraVnyworkstEstYrtlOOOResourceUsage10lut+10egFileDescription01cntlOOO.vhdVariationfilecntlOOO.incAHDLIncludefile回cntlOOO.cmpVHDLcomponentdeclarationfile0*cntlOOO.bsfQuartusIIsymbolfileHcnt1000_inst.vhdInstantiationtemplatefileQcnt1000_waveforms.htmlSamplewaveformsinsummarycnt1000waveK.jpgSamplew

50、aveformfile圍Q*cnt1000_syn.vSynthesisareaandtimingestimationnetlistCancslFinish图4.41LPM_counter设置结束对话框a1111D目H“Analysis&Sy.H“Fitter(Fla2mH“許Aeeembler(.Ge:H屏ClassicTiminHEDANetlistW:Fr:gi-:iiTiDevice(.0TaskscntlOOOFlow:)C:mpilati:nS屛Compi1eUmwignProjectNavigator3FilesH-=|cntlOOO.qipL廡crLtll:lOO.vhdQUA

51、RTQuartus6IIv3.1ServicePack2NowAvailable图4.42标准工程设计窗口(6)建立原理图文件。方法与前面的示例相同。选择BlockDiagram/SchematicFile。单击OK。(7)输入LPM模块的图形符号。在图形的编辑器窗口的空白处双击鼠标左键,即可弹出选择电路元器件符号的对话框,在project目录下,选中cntlOOO,如图4.43所示。图4.43选择电路元器件符号的对话框。单击界面OK按钮,如图4.44所示。图4.44LPM宏模块放置完成(8)按照添加模块的方法再添加输入输出引脚(input和output),并完成连线如图4.45所示。连接方法

52、同示例1、示例2。保存文件,注意勾选Addfiletocurrentproject。園Blockl.bdf*A口涓一氐DcntlOOOdksloadIdata9:C)upcounteisloadrrKxiuluts1OOCdata9.Oq9.OclockCDUtcnt_en黃firtst图4.45连接电路图3.编译工程文件编译工程文件,需要等待一定时间。编译结束的画面如图4.46所示,出现5个对号表示编译正确无误。ProjectNavigator:*xt3Files&1=1crLtlLHJU.qipL朝cntlOOO.vhd;*2Blockl.bdfTasksFlow:|Compilation

53、E-Analysis&Sy.毎Fi+er(PlaceVE-AEEHmblHi-IGp:国.ClassicTiminEEDAKetlistW:Frogi:amDevicet.OpllJTipilatiIFlowSummaryLegalFlow!Flow:Flow1Flow1FlowStatusSuccessful-MonApr1210:59322010FlowiQu:=li-tn:;IIVersion9.0Build23506/17/2009SF2SJWebEditionFlow1RevisionN:=ljtihcn+1000Analy:Top-levelEntityN:=jneent1000F

54、ilterF:=jtiilyCycloneIIAssenDeviceEP2C35F672C8TiminTimingModel5FinalMettimingrequirementsYesTotallogicelements28/33,216(1%)Totalcombinatiuniilfiirn:tionm28/33,216(1%)Iledicate己logicregisters10/33,216(:rLt_enH匚Hl+1dataH3:田qH01sloadH1V:ilue12.OE图4.49仿真波形图4.50仿真波形cout有进位输出示例5:基于混合模式的工程设计在复杂的数字系统中,设计过程通

55、常采用基于模块结构的设计方法,利用QuartusII软件设计时常常使用混合模式的工程设计方法。本例采用位宽为6位的分频器、模为15的计数器及7段译码器来设计一个简单的系统分别利用前面的几种设计方法来完成各个模块的设计。1.建立工程文件建立名称为disp_top的工程项目,按照以前的方法建立后,如图4.51所示。图4.51建立工程项目建立文件(1)建立一个空白的原理图文件。(2)建立一个位宽为6位的分频器。单击原理图的BlockTool按钮,出现如图4.52所示的界面。Blockl.bdP忆.F_0呵一涓二二二二二;二;二m二二二二二二;二二二二m二mm单击:i;:;:;:;:;:;block_

56、namsBlockToolI/OTypeO;:;:;:-鼠标右键;单击图4.52添加Block模块右键单击模块,从弹出的的菜单中选择BlockProperties命令,出现如图4.53所示的界面。在Name栏输入设计的名称,在Instancename栏输入模块名称。图4.53BlockProperties的General选项对话框再选中I/Os标签栏,在Name文本框中填写输入或输出端的名称,在Type中选择相应的信号输入或输出类型,单击Add,完成端口的设置。也可以进行删除,如图4.54所示。图4.54BlockProperties的I/Os选项对话框忝加模块引线并设置属性,再双击如图4.5

57、5所示的地方弹出Mapping所对话框,如图4.56所示。单击此按钮T寻orthogonalNodeTool,.然后给模块添加连线。.:.:双击此按钮弹出I;jMapperProperties对话框。I/OTypeclockINPUTresetINPUTqout2HzOUTPUT图4.55添加模块引线图4.56MapperProperties对话框Mappings选项完成模块内部节点与外部引线的映射关系。在I/OsonBlock中选择模块内部节点名称为clock,在Signalsinnode中选择引线名称elk,然后单击Add按钮,就完成了一对外部引线与模块内部端口的映射关系,同样的方法完成r

58、st与reset、qout与qout_2Hz的映射关系,完成了设置如图4.57所示。;:;fenpinBlockJodclockelkMBlockJodiresetrstI/OTvcjeclockINPUTresetINPUTqout2HzOUTPUTBlockNodeqout2Hzclkent图4.57完成外部引线与模块内部端口的映射设置创建设计文件。在图4.57所示模块符号上单击鼠标右键,在弹出的菜单中选择CreatDesignFilefromSelectedBlock命令,在弹出的对话框中,可以选择AHDL、VHDL、VerilogHDL和Schematic共4个可供选择建立文件的描述电

59、路行为的方法。这里选择VHDL,单击确定按钮后,就进入VHDL文本编辑器窗口。输入以下文件代码。完成六位宽,即64分频的分频计。-CreatedonThuApr1510:03:572010LIBRARYieee;USEieee.std_logic_1164.all;USEieee.numeric_std.all;USEieee.std_logic_unsigned.all;EntityDeclarationENTITYfenpinIS-ALTERA_IO_BEGINDONOTREMOVETHISLINE!generic(DWIDTH:integer:=6);PORT(clock:INSTD_L

60、OGIC;reset:INSTD_LOGIC;qout_2Hz:OUTSTD_LOGIC);-ALTERA_IO_ENDDONOTREMOVETHISLINE!ENDfenpin;-ArchitectureBodyARCHITECTUREartOFfenpinISSIGNALtemp:STD_LOGIC_vector(DWIDTH-1downto0);BEGINPROCESS(clock)BEGINIFreset=1THENIFclockEVENTANDclock=1THENtemp=temp+1;ELSEnull;ENDIF;ENDIF;ENDPROCESS;qout_2Hz=temp(DW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论