第3章原理图输入设计方法QuartusII版操作EDA技术与应用课程讲义合肥工业大学彭良清上一章下一章本章内容1.何时使用原理图设计输入2.常用文件介绍3.设计步骤4.元件库和Altera宏的使用5.如何将VHDL代码文件生成图形符号何时使用原理图设计输入?1.符合传统的电路设计习惯2.一般只是在“top-level”(顶层)文件中使用?QuartusII常用文件介绍文件扩展名称用途MAX+PLUSII中的名称.vhdVHDL代码源文件.vhd.bdf图形输入源文件.gdf.qsf器件引脚与编译配置指配文件.qsf.pofCPLD,EEPROM器件编程文件.pof.sofFPGA器件的SRAM文件配置.sof一般步骤1.电路的模块划分2.设计输入3.器件和引脚指配4.编译与排错5.功能仿真和时序仿真6.编程与配置,设计代码的芯片运行电路的模块划分人工根据电路功能进行模块划分合理的模块划分关系到1.电路的性能2.实现的难易程度根据模块划分和系统功能确定:PLD芯片型号模块划分后,就可以进行具体设计了设计输入一般EDA软件允许3种设计输入:1.HDL语言2.电路图3.波形输入图形设计输入的过程++图形设计:图元图形设计:端口如何编写一个新的图形文件?FILE-NEW出现以下对话窗,选择如下:如何调入元件?Edit-InsertSymbol出现下面窗口将自己编写的符号调入从标准库中调入将符号之间连线调入I/O端口元件符号2类标准库1.Megafunctions/LPM宏模块功能复杂、参数可设置的模块2.Primitives基本图元简单的、功能固定的逻辑元件,不可调整参数如何将VHDL设计编程Symbol1.VHDL文件编译后,自动生成同名的符号文件2.符号文件的扩展名称(*.bsf)3.调入过程如下:何为?器件和引脚指配器件指配为设计输入选择合适的PLD器件型号何谓引脚指配将设计代码(图形)中的端口(PORT)和PLD芯片的引脚(PIN)对应起来的.指配文件MAX+PLUSII:“*.acf”QuartusII:“*.qsf”器件和引脚指配的方法方法有2种1.在软件的菜单界面中指配2.修改指配文件(是文本文件)菜单界面中指配修改指配文件CHIPio_2d_lockBEGIN|iVD:INPUT_PIN=7;|iHD:INPUT_PIN=8;|iDENA:INPUT_PIN=6;|iCLK:INPUT_PIN=211;|oCLK:OUTPUT_PIN=237;|oVD:OUTPUT_PIN=234;|oHD:OUTPUT_PIN=233;|oDENA:OUTPUT_PIN=235;.................................................DEVICE=EPF10K30AQC240-2;END;........................................编译与排错编译过程有2种,作用分别为:1.语法编译:只是综合并输出网表编译设计文件,综合产生门级代码编译器只运行到综合这步就停止了编译器只产生估算的延时数值2.完全的编译:包括编译,网表输出,综合,配置器件编译器除了完成以上的步骤,还要将设计配置到ALTERA的器件中去编译器根据器件特性产生真正的延时时间和给器件的配置文件功能仿真和时序仿真仿真的概念:在设计代码下载到芯片前,在EDA软件中对设计的输出进行波形仿真。常用的2种仿真模式1.功能仿真对设计的逻辑功能进行仿真2.时序仿真对设计的逻辑功能和信号的时间延时进行仿真。仿真前还要做的工作输入信号的建立QuartusII软件中关于仿真的原文2种仿真文件1.矢量波形文件:aVectorWaveformFile(.vwf)2.文本矢量文件atext-basedVectorFile(.vec),编程与配置最后,如果仿真也正确的话,那我们就可以将设计代码配置或者编程到芯片中了编程的文件类型对于CPLD或者EPC2,ECS1等配置芯片,编程文件扩展名为:“*.POF“配置的文件类型对于FPGA芯片,配置文件扩展名为:“*.SOF“硬件设计和软件设计的时间协调1.软件模块划分,器件的初步信号确定(主要是根据需要的I/O引脚的数量)2.软件设计,硬件外围电路设计和器件选择3.软件仿真4.仿真完成后,器件信号的重新审核,进行硬件电路图设计5.综合调试6.完成设计的几个问题如何组织多个设计文件的系统?,项目的概念。时钟系统如何设计?电路的设计功耗高速信号的软件和硬件设计Theend.以下内容为正文的引用,可不阅读。常用EDA工具软件EDA软件方面,大体可以分为两类:1.PLD器件厂商提供的EDA工具。较著名的如:I.Altera公司的Max+plusII和QuartusII、II.Xilinx公司的FoundationSeries、III.Latice-Vantis公司的ispEXERTSystem。2.第三方专业软件公司提供的EDA工具。常用的有:I.Synopsys公司的FPGACompilerII、II.ExemplarLogic公司的LeonardoSpectrum、III.Synplicity公司的Synplify。第三方工具软件是对CPLD/FPGA生产厂家开发软件的补充和优化,如通常认为Max+plusII和QuartusII对VHDL/VerilogHDL逻辑综合能力不强,如果采用专用的HDL工具进行逻辑综合,会有效地提高综合质量。ALTERA公司的EDA合作伙伴硬件描述语言:起源是电子电路的文本描述。最早的发明者:美国国防部,VHDL,1983大浪淘沙,为大者二:VHDL和VerilogHDL其他的小兄弟:ABEL、AHDL、SystemVerilog、SystemC。一个D触发器的VHDL代码例子1.--VHDLcodeposition:p83_ex4_11_DFF12.-------------------------------------------------------------------------------3.--LIBARYIEEE;4.--USEIEEE.STD_LOGIC_1164.ALL;5.ENTITYDFF1IS6.PORT(CLK:INBIT;7.D:INBIT;8.Q:OUTBIT9.);10.ENDENTITYDFF1;11.ARCHITECTUREbhvOFDFF1IS12.BEGIN13.PROCESS(CLK)14.BEGIN15.IFCLK'EVENTAND(CLK='1')AND(CLK'LAST_VALUE='0')THEN16.--严格的CLK信号上升沿定义17.Q=D;18.ENDIF;19.ENDPROCESS;20.ENDARCHITECTUREbhv;代码实体(5-10)代码结构体(11-20)如何使用VHDL来设计电路?VHDL设计电路的的5步曲1.语言编码2.逻辑综合3.功能和时序仿真4.器件适配5.使用MAX+PLUSII软件的设计过程MAX+PLUSII设计过程说明1.CompilerNetlistExtractor(编译器网表提取器):通过该过程生成设计项目的网表文件,2.DatabaseBuilder(数据库构建器):用于将所有的设计文件集成到项目数据库中如果指定端口的实体已被抽取.则从盘中读取.cnf文件信息就可以了,因而节省了时间.3.LogicSynthesizer(逻辑综合器):选择合适的逻辑化简算法,去除冗余和无用逻辑,有效使用器件的逻辑资源.4.Fitter(适配器)将电路适配到某个PLD器件中。5.TimingSNFExtractor(时序SNF文件提取器)产生用于时序仿真的网表文件6.Assembler(汇编器)产生用于器件编程的目标代码其他的HDL综合工具Altera公司1.MAX+PLUSII10.2(已经停止发行,新器件不支持)2.QUARTUSII5.0(推荐使用)Xilinx公司1.ISE7.0:Xilinx公司集成开发的工具2.Foundation:Xilinx公司早期开发工具,逐步被ISE取代3.ISEWebpack:Webpack是xilinx提供的免费开发软件,功能比ISE少一些,可以从xilinx网站下载有了HDL语言后?硬件设计人员的工作过程已经类似与软件设计人员,那么这种模式的好处是?让我们先看看原来是如何做的-CompilerNetlistExtractor(编译器网表提取器)TheCompilermodulethatconvertseachdesignfileinaproject(oreachcellofanEDIFInputFile)intoaseparatebinaryCNF.Thefilename(s)oftheCNF(s)arebasedontheprojectname.ExampleTheCompilerNetlistExtractoralsocreatesasingleHIFthatdocumentsthehierarchicalconnectionsbetweendesignfiles.Thismodulecontainsabuilt-inEDIFNetlistReader,VerilogNetlistReader,VHDLNetlistReader,andconvertersthattranslateADFsandSMFsforusewithMAX+PLUSII.Duringnetlistextraction,thismodulecheckseachdesignfileforproblemssuchasduplicatenodenames,missinginputsandoutputs,andoutputsthataretiedtogether.返回DatabaseBuilder(数据库构建器):TheCompilermodulethatbuildsasingle,fullyflattenedprojectdatabasethatintegratesallthedesignfilesinaprojecthierarchy.TheDatabaseBuilderusestheHIFtolinktheCNFsthatdescribetheproject.BasedontheHIFdata,theDatabaseBuildercopieseachCNFintotheprojectdatabase.EachCNFisinsertedintothedatabaseasmanytimesasitisusedwithintheoriginalhierarchicalproject.Thedatabasethuspreservestheelectricalconnectivityoftheproject.TheCompilerusesthisdatabasefortheremainderofprojectprocessing.EachsubsequentCompilermoduleupdatesthedatabaseuntilitcontainsthefullyoptimizedproject.Inthebeginning,thedatabasecontainsonlytheoriginalnetlists;attheend,itcontainsafullyminimized,fittedproject,whichtheAssemblerusestocreateoneormorefilesfordeviceprogramming.Asitcreatesthedatabase,theDatabaseBuilderexaminesthelogicalcompletenessandconsistency