《VHDL语言与数字逻辑电路设计》1许钢2020/1/29VHDL语言与数字逻辑电路设计主讲:许钢2010.9《VHDL语言与数字逻辑电路设计》2许钢2020/1/29第1讲EDA基础电子设计自动化EDA(ElectronicDesignAutomation)技术是新一代的自动辅助电子设计工具,近年来在电子设计与制造领域,EDA技术越来越受到重视,已形成强劲的发展势头。专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)、片上系统SoC(SystemonChip)、可编程片上系统SoPC(SystemonProgrammableChip)是当前各种电子高科技产品的核心部分。ASIC、SoC和SoPC的设计必须借助于EDA工具,而ASIC、SoC和SoPC的改进又对EDA工具提出更高的要求,从而促进了EDA技术的发展。《VHDL语言与数字逻辑电路设计》3许钢2020/1/29第1讲EDA基础EDA技术的发展从60年代中期至今经历了三个阶段。•电子线路CAD是EDA发展的初级阶段(60年代中期~80年代初)。•电子线路CAE是EDA发展的中级阶段(80年代初~90年代初)。•ESDA是EDA发展的高级阶段(90年代以来)1.1EDA技术的发展及技术特色《VHDL语言与数字逻辑电路设计》4许钢2020/1/29第1讲EDA基础•电子线路CAD是EDA发展的初级阶段(60年代中期~80年代初)在这个阶段分别开发了一个个独立的软件工具,主要有电路原理图绘制、PCB(印刷电路板)图绘制、电路模拟、逻辑模拟等。它们利用计算机的图形编辑、分析和计算等能力,协助工程师设计电子线路,使设计人员从大量繁琐、重复计算和绘图工作中解脱出来。但总体来看自动化程度低,需要人工干预整个设计过程。70年代出现的电路模拟软件SPICE,就是这个时代的代表作之一。1.1EDA技术的发展及技术特色《VHDL语言与数字逻辑电路设计》5许钢2020/1/29第1讲EDA基础•电子线路CAE(Computer-AidedEngineering:计算机辅助工程)是EDA发展的中级阶段(80年代初~90年代初)在这个阶段各种设计工具均已齐全,如前面所提到的电路原理图绘制、PCB图绘制、电路模拟、逻辑模拟,还有这一阶段新出现的自动布局布线、电路的计算机仿真与分析、测试码生成以及各种元件库等。由于制定了EDA工业标准,采用统一的数据管理技术,因而能够将各个工具集成为一个CAE系统。我们所熟悉的orCAD和Protel早期的版本是这一阶段中两种典型的设计工具。1.1EDA技术的发展及技术特色《VHDL语言与数字逻辑电路设计》6许钢2020/1/29第1讲EDA基础•ESDA(ElectronicSystemDesignAutomation:电子系统设计自动化)是EDA发展的高级阶段(90年代以来)过去传统的电子系统产品的设计方法是采用自底而上(Bottom-up)的方式,设计者先对系统结构分块,然后直接对每一块进行电路级的设计,最后把块与块组合成一个完整的系统。这种设计方式设计周期长,因为设计者不能预测下一阶段可能出现的问题,而且每一阶段是否存在问题,往往在系统整机调试时才能发现,到那时一般也很难通过局部电路的调整使整个系统达到既定的功能和指标,很难确保设计一次成功,有时可能要重新设计。1.1EDA技术的发展及技术特色《VHDL语言与数字逻辑电路设计》7许钢2020/1/29第1讲EDA基础•ESDA在设计方式方面:①、采用并行工程(ConcurrentEngineering)的设计方式,这种设计方式的核心是在设计阶段就对设计对象(产品)具有全面的可预见性,它要求设计者从一开始就要考虑所设计产品的质量、成本、开发周期、用户需求和市场占有周期等综合因素。1.1EDA技术的发展及技术特色《VHDL语言与数字逻辑电路设计》8许钢2020/1/29第1讲EDA基础•ESDA在设计方式方面:②、采用自顶而下(Top-Down)层次化的设计方式,设计者从系统总体入手,进行系统的行为或功能的划分、描述和验证。这时设计已不再受通用器件的限制,设计者的精力主要集中在对所开发电子产品的准确定义上,现在普遍采用高级语言对系统进行描述和定义,如VHDL语言(Very-High-Speed-ICHardwareDescriptionLanguage:超高速集成电路硬件描述语言),然后由EDA系统去完成电子产品的系统级至物理级的设计,并进行系统级的仿真和综合。以上两种设计方式使设计者始终可以在系统层次上把握设计的全过程,这一点对ASIC的设计尤为重要。1.1EDA技术的发展及技术特色《VHDL语言与数字逻辑电路设计》9许钢2020/1/29第1讲EDA基础一、可编程逻辑器件(PLD)的分类常见的PLD有PROM、PAL、GAL、PLA等。目前对PLD的分类没有统一的标准,一种器件往往具有多种特征,并不能严格的分类。本节介绍几种常用的分类方法。1.2可编程逻辑器件基础1.按可编程的部位分类:•PROM(可编程只读存储器)包括EPROM、EEROM。•PLA(可编程逻辑阵列)•PAL(可编程阵列逻辑)•GAL(通用阵列逻辑)《VHDL语言与数字逻辑电路设计》10许钢2020/1/29第1讲EDA基础一、可编程逻辑器件(PLD)的分类1.按可编程的部位分类:1.2可编程逻辑器件基础与阵列或阵列输出电路PROM固定可编程固定PLA可编程可编程固定PAL可编程固定固定GAL可编程固定可组态《VHDL语言与数字逻辑电路设计》11许钢2020/1/29返回第1讲EDA基础1.2可编程逻辑器件基础《VHDL语言与数字逻辑电路设计》12许钢2020/1/29图例第1讲EDA基础一、可编程逻辑器件(PLD)的分类1.按可编程的部位分类:1.2可编程逻辑器件基础•PROM的阵列结构《VHDL语言与数字逻辑电路设计》13许钢2020/1/29图例第1讲EDA基础一、可编程逻辑器件(PLD)的分类1.按可编程的部位分类:1.2可编程逻辑器件基础•PLA的阵列结构《VHDL语言与数字逻辑电路设计》14许钢2020/1/29图例第1讲EDA基础一、可编程逻辑器件(PLD)的分类1.按可编程的部位分类:1.2可编程逻辑器件基础•PAL、GAL的阵列结构《VHDL语言与数字逻辑电路设计》15许钢2020/1/29第1讲EDA基础一、可编程逻辑器件(PLD)的分类2.按PLD的集成度分类:1.2可编程逻辑器件基础可编程逻辑器件PLD低密度可编程逻辑器件(LDPLD)高密度可编程逻辑器件(HDPLD)FPGACPLDEPLDGALPALPLAPROM《VHDL语言与数字逻辑电路设计》16许钢2020/1/29第1讲EDA基础一、可编程逻辑器件(PLD)的分类3.其它分类方法:•基本结构为与或阵列的器件,称作PLD或CPLD(复杂可编程门阵列)。•基本结构为门阵列的器件,称作FPGA(FieldProgrammableGateArray:现场可编程门阵列,基于RAM结构,动态配置)。本课程实验采用Altera公司的Flex10K系列芯片、CycloneII系列芯片,属于FPGA。1.2可编程逻辑器件基础《VHDL语言与数字逻辑电路设计》17许钢2020/1/29第1讲EDA基础一、可编程逻辑器件(PLD)的分类可编程逻辑器件除了提供可编程的与、或阵列以外,还具有可编程的逻辑宏单元。•逻辑宏单元结构具有以下几个作用:•提供时序电路需要的寄存器和触发器。•提供多种形式的输入/输出形式。•提供内部信号反馈。•分配控制信号,如:CLK、RESET、EN。1.2可编程逻辑器件基础《VHDL语言与数字逻辑电路设计》18许钢2020/1/29第1讲EDA基础二、可编程逻辑器件(PLD)的编程Altera公司:通过ByteBlaster、USB-Blaster编程接口下载。1.2可编程逻辑器件基础微机DOWNLOADSoftware(下载软件)系统电路板或开发板PLD器件DOWNLOADCable(下载电缆)《VHDL语言与数字逻辑电路设计》19许钢2020/1/29第1讲EDA基础一、ASIC从设计到制造的全部流程:1.3EDA设计流程《VHDL语言与数字逻辑电路设计》20许钢2020/1/29第1讲EDA基础一、ASIC从设计到制造的全部流程:1.3EDA设计流程(1)系统规范说明(systemspecifiation):分析并确定整个系统的功能、要求达到的性能、物理尺寸,确定采用何种制造工艺、设计周期和设计费用;建立系统的行为模型,进行可行性验证。(2)系统划分(systemdivision):将系统分割成各个功能子模块,给出子模块之间信号连接关系;验证各个功能块的行为模型,确定系统的关键时序。《VHDL语言与数字逻辑电路设计》21许钢2020/1/29第1讲EDA基础一、ASIC从设计到制造的全部流程:1.3EDA设计流程(3)逻辑设计与综合(logicdesignandsynthesis):将划分的各个子模块用文本(网表或硬件描述语言)、原理图等进行具体逻辑描述。对于硬件描述语言描述的设计模块,需要用综合器进行综合获得具体的电路网表文件;对于原理图等描述方式描述的设计模块,经简单编译后得到逻辑网表文件。(4)综合后仿真(simulateaftersynthesis):从上一步得到网表文件,在这一步进行仿真验证。例如:下载到通用可编程器件中进行测试、验证。《VHDL语言与数字逻辑电路设计》22许钢2020/1/29第1讲EDA基础二、EDA工程项目设计流程:1.3EDA设计流程《VHDL语言与数字逻辑电路设计》23许钢2020/1/29第1讲EDA基础二、EDA工程项目设计流程:1.3EDA设计流程1.源程序的编辑和编译利用EDA技术进行一项工程设计,首先需利用EDA工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来,进行排错编译,变成VHDL文件格式,为进一步的逻辑综合做准备。常用的源程序输入方式有三种。(1)原理图输入方式(2)状态图输入方式(3)VHDL软件程序的文本方式:最一般化、最具普遍性的输入方法,任何支持VHDL的EDA工具具都支持文本方式的编辑和编译。《VHDL语言与数字逻辑电路设计》24许钢2020/1/29第1讲EDA基础二、EDA工程项目设计流程:1.3EDA设计流程2.逻辑综合和优化欲把VHDL的软件设计与硬件的可实现性挂钩,需要利用EDA软件系统的综合器进行逻辑综合。所谓逻辑综合,就是将电路的高级语言描述(如HDL、原理图或状态图形的描述)转换成低级的,可与FPGA/CPLD或构成ASIC的门阵列基本结构相映射的网表文件。逻辑映射的过程,就是将电路的高级描述,针对给定硬件结构组件,进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。而网表文件就是按照某种规定描述电路的基本组成及如何相互连接的文件。综合器对源VHDL文件的综合是针对某一PLD供应商的产品系列的,因此,综合后的结果是可以为硬件系统所接受的,具有硬件可实现性的。《VHDL语言与数字逻辑电路设计》25许钢2020/1/29第1讲EDA基础二、EDA工程项目设计流程:1.3EDA设计流程3.目标器件的布线/适配所谓逻辑适配,就是将由综合器产生的网表文件针对某一具体的目标器进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置于指定的目标器件中,产生最终的下载文件,如:JEDEC格式的文件。4.目标器件的编程/下载如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA/CPLD布线/适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片FPGA或CPLD中。《VHDL语言与数字逻辑电路设计》26许钢2020/1/29第1讲EDA基础一、数字系统设计方法:1.4数字系统设计现代数字系统的设计一般采用自