2020/7/41EDA技术与应用(第3版)江国强编制桂林电子科技大学2020/7/42目录第1章EDA技术概述第2章EDA工具软件使用方法第3章VHDL第4章VerilogHDL第5章常用EDA工具软件第6章可编程逻辑器件第7章EDA技术的应用2020/7/43第1章EDA技术概述1.1EDA技术及发展1.2EDA设计流程1.3硬件描述语言HDL1.4可编程逻辑器件1.5常用EDA工具2020/7/44第2章EDA工具软件的使用方法2.1QuartusⅡ的安装2.2QuartusⅡ软件的主界面2.3QuartusⅡ图形编辑输入法2.4MAX+PLUSⅡ设计项目的转换2.5QuartusⅡ宏功能模块的使用方法2.6嵌入式逻辑分析仪的使用方法2020/7/45第3章VHDL3.1VHDL基础知识3.2VHDL语言要素3.3VHDL顺序语句3.4VHDL并行语句3.5VHDL库和程序包3.6VHDL设计流程2020/7/46第4章VerilogHDL4.1VerilogHDL入门4.2VerilogHDL的词法4.3VerilogHDL的语句4.4不同抽象级别的VerilogHDL模型4.5VerilogHDL设计流程2020/7/47第5章常用EDA工具软件5.1ModelSim5.2基于Matlab/DSPBuilder的DSP模块设计5.3NiosII嵌入式系统开发软件2020/7/48第6章可编程逻辑器件6.1可编程逻辑器件的基本原理6.2可编程逻辑器件的设计技术6.3可编程逻辑器件的编程与配置2020/7/49第7章EDA技术的应用7.1组合逻辑电路设计应用7.2时序逻辑电路设计应用2020/7/410第1章EDA技术概述1.1EDA技术及发展20世纪末,数字电子技术得到飞速发展,有力地推动了社会生产力的发展和社会信息化的提高。在其推动下,数字电子技术的应用已经渗透到人类生活的各个方面。从计算机到手机,从数字电话到数字电视,从家用电器到军用设备,从工业自动化到航天技术,都尽可能采用数字电子技术。本章介绍EDA技术的发展、EDA设计流程以及EDA技术涉及的领域。2020/7/411微电子技术,即大规模集成电路加工技术的进步是现代数字电子技术发展的基础。目前,在硅片单位面积上集成的晶体管数量越来越多,1978年推出的8086微处理器芯片集成的晶体管数是4万只,到2000年推出的Pentium4微处理器芯片的集成度达4200万只晶体管,2005年生产可编程逻辑器件(PLD)的集成度达到5亿只晶体管,包含的逻辑元件(LogicElements,LEs)有18万个,2006年生产的PLD中的LEs达到33万个,而2009年生产的PLD中的LEs达到84万个,集成度达到25亿只晶体管。原来需要成千上万只电子元件组成的一台计算机主板或彩色电视机电路,而现在仅用几片超大规模集成电路就可以代替,现代集成电路已经能够实现单片电子系统SOC(SystemOnaChip)的功能。2020/7/412现代电子设计技术的核心是EDA(ElectronicDesignAutomation)技术。EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)芯片中,实现既定的电子电路设计功能。EDA技术使得电子电路设计者的工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,减少设计周期,节省设计成本。2020/7/413EDA是在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。一般把EDA技术的发展分为CAD、CAE和EDA三个阶段。CAD(ComputerAidedDesign)是EDA技术发展的早期阶段,在这个阶段,人们开始利用计算机取代手工劳动。但当时的计算机硬件功能有限,软件功能较弱,人们主要借助计算机对所设计的电路进行一些模拟和预测,辅助进行集成电路版图编辑、印刷电路板PCB(PrintedCircuitBoard)布局布线等简单的版图绘制等工作。2020/7/414CAE(ComputerAidedEngineering)是在CAD的工具逐步完善的基础上发展起来的,尤其是人们在设计方法学、设计工具集成化方面取得了长足的进步,可以利用计算机作为单点设计工具,并建立各种设计单元库,开始用计算机将许多单点工具集成在一起使用,大大提高了工作效率。20世纪90年代以来,微电子工艺有了惊人的发展,工艺水平已经达到了45纳米级,在一个芯片上已经可以集成上百万乃至数亿只晶体管,芯片速度达到了吉比特/秒量级,百万门以上的可编程逻辑器件陆续面世,这样就对电子设计的工具提出了更高的要求,提供了广阔的发展空间,2020/7/415促进了EDA技术的形成。特别重要的是世界各EDA公司致力推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件,都有效地将EDA技术推向成熟。今天,EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持都将是难以完成的。EDA工具已经成为现代电路设计师的重要武器,正在起作越来越重要的作用。2020/7/416设计准备设计输入·原理图·硬件描述语言·波形图功能仿真设计处理·优化、综合·适配、分割·布局、布线时序仿真器件编程器件测试设计完成1.2EDA设计流程2020/7/4171.2.1设计准备设计准备是指设计者在进行设计之前,依据任务要求,确定系统所要完成的功能及复杂程度,器件资源的利用、成本等所要做的准备工作,如进行方案论证、系统设计和器件选择等。1.2.2设计输入设计输入----将设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程。设计输入形式文本方式设计输入方式图形设计输入方式文本、图形两者混合的设计输入方式。2020/7/4181.原理图或图形输入方式这是一种最直接的设计输入方式,它使用软件系统提供的元器件库及各种符号和连线画出原理图,形成原理图输入文件。这种方式大多用在对系统及各部分电路很熟悉的情况,或在系统对时间特性要求较高的场合。优点是容易实现仿真,便于信号的观察和电路的调整。2020/7/4192.硬件描述语言输入方式硬件描述语言有普通硬件描述语言和行为描述语言,它们用文本方式描述设计和输入。普通硬件描述语言有AHDL、CUPL等,它们支持逻辑方程、真值表、状态机等逻辑表达方式。行为描述语言是目前常用的高层硬件描述语言,有VHDL和VerilogHDL等,它们具有很强的逻辑描述和仿真功能,可实现与工艺无关的编程与设计,可以使设计者在系统设计、逻辑验证阶段便确立方案的可行性,而且输入效率高,在不同的设计输入库之间转换也非常方便。运用VHDL、VerilogHDL硬件描述语言进行设计已是当前的趋势。2020/7/4203.波形输入方式波形输入主要用于建立和编辑波形设计文件以及输入仿真向量和功能测试向量。波形设计输入适合用于时序逻辑和有重复性的逻辑函数,系统软件可以根据用户定义的输入/输出波形自动生成逻辑关系。波形编辑功能还允许设计者对波形进行拷贝、剪切、粘贴、重复与伸展。从而可以用内部节点、触发器和状态机建立设计文件,并将波形进行组合,显示各种进制的状态值。还可以通过将一组波形重叠到另一组波形上,对两组仿真结果进行比较。2020/7/4211.2.3设计处理这是EDA设计中的核心环节。在设计处理阶段,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动地进行适配,最后产生编程用的编程文件。设计处理主要包括设计编译和检查、逻辑优化和综合、适配和分割、布局和布线、生成编程数据文件等过程。2020/7/4221.设计编译和检查设计输入完成之后,立即进行编译。在编译过程中首先进行语法检验,如检查原理图的信号线有无漏接,信号有无双重来源,文本输入文件中关键字有无错误等各种语法错误,并及时标出错误的位置信息报告,供设计者修改。然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制并将编译报告列出,指明违反规则和潜在不可靠电路的情况以供设计者纠正.2020/7/4232.逻辑优化和综合逻辑优化是化简所有的逻辑方程或用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块化设计文件合并为一个网表文件,并使层次设计平面化(即展平)。3.适配和分割在适配和分割过程,确定优化以后的逻辑能否与下载目标器件CPLD或FPGA中的宏单元和I/O单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。如果整个设计不能装入一片器件时,可以将整个设计自动分割成多块并装入同一系列的多片器件中去。2020/7/4244.布局和布线布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的布线互连。布局和布线以后,软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。5.生成编程数据文件(JED文件)设计处理的最后一步是产生可供器件编程使用的数据文件。对CPLD来说,是产生熔丝图文件,即JEDEC文件(电子器件工程联合会制定的标准格式,简称JED文件);对于FPGA来说,是生成位流数据文件(Bit-streamGeneration)。2020/7/4251.2.4设计校验设计校验过程包括功能仿真和时序仿真,这两项工作是在设计处理过程中同时进行的。功能仿真是在设计输入完成之后,选择具体器件进行编译之前进行的逻辑功能验证,因此又称为前仿真。此时的仿真没有延时信息或者有由系统添加的微小标准延时,这对于初步的功能检测非常方便。时序仿真是在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为后仿真或延时仿真。在设计处理以后,对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能以及检查和消除竞争冒险等。2020/7/4261.2.5器件编程编程是指将设计处理中产生的编程数据文件通过软件放到具体的可编程逻辑器件中去。对CPLD器件来说是将JED文件下载(DownLoad)到CPLD器件中去,对FPGA来说是将位流数据BG文件配置到FPGA中去。器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的CPLD器件和一次性编程的FPGA需要专用的编程器完成器件的编程工作。基于SRAM的FPGA可以由EPROM或其他存储体进行配置。在系统的可编程器件(ISP-PLD)则不需要专门的编程器,只要一根与计算机互连的下载编程电缆就可以了。2020/7/4271.2.6器件测试和设计验证器件在编程完毕之后,可以用编译时产生的文件对器件进行检验、加密等工作,或采用边界扫描测试技术进行功能测试,测试成功后才完成其设计。设计验证可以在EDA硬件开发平台上进行。EDA硬件开发平台的核心部件是一片可编程逻辑器件FPGA或CPLD,再附加一些输入输出设备,如按键、数码显示器、指示灯、喇叭等,还提供时序电路需要的脉冲源。将设计电路编程下载到FPGA或CPLD中后,根据EDA硬件开发平台的操作模式要求,进行相应的输入操作,然后检查输出结果,验证设计电路。2020/7/4281.3硬件描述语言硬件描述语言HDL是EDA技术中的重要组成部分,常用的硬件描述语言有AHDL、VHDL和VerilogHDL,而VHDL和VerilogHDL是当前最流行的并成为IEEE标准的硬件描述语言。2020/7/429VHDL是超高速集成电路硬件描述语言(Very-High-SpeedIntegrated