您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 第二章 可编程逻辑器件的设计与开发
16第二章可编程逻辑器件的设计与开发利用EDA技术设计电子系统是当代电子工程师必须掌握的内容之一。本章介绍了EDA技术的设计流程、设计的开发环境和基本的设计方法。2.1可编程逻辑器件的设计流程CPLD/FPGA器件的设计过程一般可分为设计输入、设计实现、设计校验和编程下载四个步骤。其流程见图2-1。设计输入设计实现设计校验编程下载系统测试修改设计图2-1可编程逻辑器件的设计流程2.1.1设计的输入设计输入就是将设计者所设计的电路以开发软件所要求的某种形式表示出来,并输入到相应的软件中。设计输入有多种表达方式,主要包括原理图输入、硬件描述语言输入、网表输入和波形输入四种。其中最常用的是原理图输入和硬件描述语言输入。1.原理图输入。原理图是图形化的表达方式,它是利用软件中所提供的元件符号和连线来描述设计。其特点是比较直观,便于进行接口设计和管脚锁定,容易实现仿真,便于信号的观察和电路的调整,系统运行速率较高,但当描述复杂电路时则比较繁琐。为提高这种输入方式的效率,应采用自顶向下的逻辑分块设计方法。一般而言,若对系统很了解,并且要求系统的工作速率较高,或在大系统中对时间特性要求较高的部分可采用这种输入方法。2.硬件描述语言输入。硬件描述语言输入是采用文本方式描述设计,这种方式的描述范围较宽,从简单的门电路到复杂的数字系统均可描述。特别是在描述复杂设计时,非常简洁。但这种描述方式不适合描述接口和连接关系,并且该输入方式必须依赖综合器,只有好的综合器才能把语言综合成优化的电路。对于大量规范的、易于语言描述、易于综合、速率较低的电路,可采用这种输入方式。常用的硬件描述语言有Verilog-HDL、VHDL。2.1.2设计的实现设计实现主要是由EDA开发工具依据设计输入文件自动生成用于器件编程、波形仿真及延时分析等所需的数据文件。此部分对开发系统来讲是核心部分,但对于用户来说并不用关心它的实现过程,当然设计者也可通过设置“设计实现策略”等参数来控制设计实现过程。EDA开发工具进行设计实现时主要完成以下四个相关任务。1.优化和合并。优化是指进行逻辑化简,把逻辑描述转变为最适合在器件中实现的形式;合并是将模块化设计产生的多个文件合并成一个网表文件,并使层次设计平面化。2.映射。映射是根据所选择的PLD器件型号,把设计分割为多个适合器件内部逻辑资17源实现的逻辑小块形式。3.布局和布线。布局是将已分割的逻辑小块放到器件内部逻辑资源的具体位置,并使它们易于连线,且连线最少;布线是利用器件内的布线资源完成各功能块之间和反馈信号的连接。4.产生编程文件。设计实现的最后一步是产生可供器件编程使用的数据文件。对CPLD器件而言,产生的是熔丝图文件(*.JEDEC);对FPGA器件,则产生的是位数据流文件Bitstream。2.1.3设计的校验设计的校验就是让计算机根据编译器所产生的数据文件对EDA设计进行模拟,以验证用户的设计是否正确。设计的校验包括仿真和定时分析两部分,这两部分可分别通过仿真器和延时分析器来完成。在仿真文件中加载不同的激励,可以观察中间结果以及输出波形。必要时,可以返回设计输入阶段,修改设计输入,最终达到设计要求。设计的校验可对设计中的各个模块乃至整个系统来进行,若有错误,可以很方便地修改,而不必对硬件进行改动,极大地节约了成本。规模越大的设计,越发需要设计仿真。仿真不消耗器件内的资源,仅消耗少许时间,但从节约成本的角度考虑,这种时间的消耗是完全值得的。可以认为仿真是EDA的精髓。2.1.4编程下载编程下载是将设计实现阶段所产生的熔丝图文件或位数据流文件装入到可编程逻辑器件中,以便硬件调试和验证。编程下载需要满足一定的条件,如编程电压、编程时序和编程算法等。在编程下载时需注意以下几方面问题。1.对于不能进行在系统编程的CPLD器件和不能再重配置的FPGA器件,需要编程专用设备(编程器)完成器件编程。2.对于使用LUT技术和基于SRAM的FPGA器件,下载的编程数据将存入SRAM中,而SRAM掉电后所存的数据将丢失,为此需将编程数据固化到E2PROM中,器件上电时,由器件本身或微处理器控制E2PROM将数据“配置”到FPGA中。3.对于使用乘积项逻辑、基于E2PROM或Flash工艺的CPLD器件进行编程下载时,使用器件厂商提供的专用下载电缆,一端与计算机的并行口相接,另一端接到CPLD器件所在PCB板上的10芯插头上(PLD只有4个引脚与该插头相连)。编程数据通过该电缆下载到CPLD器件中,这个过程称为ISP(在系统编程)。2.2可编程逻辑器件的开发环境如前所述,EDA技术在当代迅猛发展,同时各种EDA软件也如雨后春笋般呈现在用户面前。它们一般分为两种,一种是PLD芯片制造商为推广自己的芯片而开发的专业EDA软件,本书所使用的Altera公司推出的MAX+plusⅡ就属于此类。另一种是EDA软件商提供的第三方软件,如知名的Synplify、Synopsys、Viewlogic、Cadence等,这种软件可以支持大部分芯片公司的PLD器件。2.2.1常用的EDA工具软件下面介绍几种应用最广泛的EDA工具软件。1.Synplify。该软件是由Synplicity公司专为FPGA和CPLD开发设计的逻辑综合工具。它在综合优化方面的优点非常突出,得到了广大用户的好评。它支持用Verilog和VHDL硬18件描述语言描述的系统级设计,具有强大的行为及综合能力。综合后,能生成Verilog或VHDL网表,以进行功能级仿真。Synplify的综合过程分为三步:首先是语言综合,将硬件描述语言的设计编译成结构单元。接下来采用优化算法对设计进行优化,除去冗余项,提高可靠性与速度。第三步是工艺映射,将设计映射为相应PLD的网表文件。2.Synopsys。该软件是另一种系统综合软件,它因综合功能强大而被广泛使用。Synopsys综合器的综合效果比较理想,系统速度快,消耗资源少。对系统的优化过程大致分为两步:第一步是设计规则,提出必须满足的设计要求,例如最大延时、最大功耗、最大扇出数目、驱动强度等。第二步是提出各种设计约束,一般有反应时间约束、芯片面积约束等。综合器根据设计要求,采用相应算法,力争使综合效果达到最佳。Synopsys支持完整的VHDL和Verilog语言子集,另外它的元件库中包含着许多现成的实现方案,调用非常方便。正是因为这些突出的优点,Synopsys逐渐成为设计人员普遍接受的标准工具。3.ispDesignEXPERT。该软件是Lattice公司专为本公司的PLD芯片开发设计的软件,它的前身是该公司的Synario、ispEXPERT。ispDesignEXPERT是完备的EDA软件,支持系统开发的全过程,包括设计输入、设计实现、仿真与时序分析、编程下载等。ispDesignEXPERT包括三个版本。Starter版适合初学者学习,可以免费下载。Base版为试用版。它们的设计规模都低于600个宏单元。Advanced版是专业设计版,支持该公司的各种系列器件,功能全面。4.MAX+plusⅡ。该软件是Altera公司专为本公司的PLD芯片开发设计的软件。该软件功能齐全,使用方便,易懂好学,已成为最广为接收的EDA工具之一。本书介绍的设计就是采用的该软件。5.QuartusⅡ。该软件也是Altera公司为本公司的PLD芯片开发设计的软件。它比MAX+plusⅡ支持的器件更全面,特别包括Altera公司的超高密度的芯片系列——APEX系列器件。QuartusⅡ可开发的单器件门数达到了260万门,特别适合高集成的大型系统的开发设计。2.2.2MAX+plusⅡ软件介绍MAX+plusⅡ是MultipleArrayMatrixandProgrammableLogicUserSystemⅡ的英文缩写,它的中文全称是复阵列矩阵及可编程逻辑用户系统。MAX+plusⅡ以其强大的逻辑综合能力及布局布线能力见长,日益受到广大电子工程设计人员的青睐。一、MAX+plusⅡ的技术特点1.广泛的适用范围。MAX+plusⅡ除支持Altera的FLEX10K、FLEX8000、MAX9000、MAX7000、FLASHlogic、MAX5000、Classic系列PLD外,对其他公司的主要芯片也可进行良好的设计开发。2.与器件结构独立。MAX+plusⅡ提供了与器件结构独立的设计环境和综合能力,用户可以在设计过程中不考虑具体的结构。3.通用性强。MAX+plusⅡ的设计环境是开放的,是符合工业标准的EDA软件。它提供了与主流的各种EDA工具便捷的无缝接口。而且对大多数EDA工具,这一过程由软件内部的相关框架协议自动完成,并不需要设计者参与。MAX+plusⅡ支持多家公司的工具软件,19支持硬件描述语言的输入。4.兼容性好。MAX+plusⅡ可与其他工业标准设计输入、综合与校验工具链接。与CAE工具的接口符合EDIF200和EDIF209、参数化模块库、Verilog、VHDL及其他标准。用户可使用Altera或标准的CAE设计输入工具去建立逻辑设计,使用MAX+plusⅡ编译器对Altera器件进行编译,并使用Altera或其他CAE校验工具进行仿真。5.集成度与自动化程度高。MAX+plusⅡ的设计输入、处理与校验功能一起提供了全集成化的一套可编程逻辑开发工具,与其他同类软件相比,可减轻设计人员的工作量,加快动态调试,缩短开发周期,取得更高的设计效率。6.易学易用。MAX+plusⅡ是高度集成的开发工具,提供丰富的图形用户接口,软件界面新颖友好,通过短期学习就能熟练掌握。二、MAX+plusⅡ常用的界面MAX+plusⅡ易学易用,只要熟悉了设计步骤和设计界面即可进行设计。常用的设计界面有以下几个。1.原理图编辑器(GraphicEditor)原理图编辑器的窗口如图2-2所示。它提供了一个最直观也是最传统的设计输入方式。用户可通过它输入简单或复杂的电路原理图。MAX+plusⅡ本身具有种类非常全面的器件符号和宏模块库,另外符号编辑功能允许用户根据自己的习惯与风格建立模块库。通过应用这些库,原理图输入将变得轻而易举。原理图编辑器生成的文件格式为*.gdf。图2-2原理图编辑器窗口2.符号编辑器(SymbolEditor)符号编辑器的窗口如图2-3所示。它使用户能够查看、创建、编辑一个代表逻辑电路的符号。符号文件和设计文件有同样的名称,格式为*.sym。图2-3符号编辑器窗口3.文本编辑器(TextEditor)文本编辑器的窗口如图2-4所示。它为用户提供了非常灵活的文本输入方式。可以接收的硬件描述语言有AHDL、VHDL、Verilog。文本编辑器具有其他编辑器所没有的优势,它20将AHDL、VHDL、Verilog整合进编辑器,并对这三种语言可进行自动检测,找出格式和语法错误并在信息框中显示。该编辑器形成的文件可以创建一个符号供原理图编辑器使用。以VHDL语法编写的文件格式为*.vhd。图2-4文本编辑器窗口4.波形编辑器(WaveformEditor)波形编辑器的窗口如图2-5。它的应用主要有两个方面,一方面可用来设计电路,其文件格式为*.wdf;另一方面则可以用来观察设计的仿真波形,其文件格式为*.scf。图2-5波形编辑器窗口5.编译器(Compiler)编译器窗口如图2-6。编译器是一个高度自动化的综合程序,它能将输入的设计文件综合生成对器件进行编程、仿真和定时分析的输出文件。所有的设计必须经过编译后才可以进行时序分析、仿真和编程下载。编译过程为:CompilerNetlistExtractor(编译器网表提取器)→DatabaseBuilder(数据库构建器)→LogicSynthesizer(逻辑综合器)→Partitioner(分割器)→Fitter(适配器)→TimingSNFExtractor(定时器网表文件提取器)→Assembler(汇编文件生成器)。即编译器首先提取设计文件之间的层次联系信息,然后对整个工程差错,若没错就对工程创建
本文标题:第二章 可编程逻辑器件的设计与开发
链接地址:https://www.777doc.com/doc-3233379 .html