《(精品)第1章EDA课件.ppt》由会员分享,可在线阅读,更多相关《(精品)第1章EDA课件.ppt(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社n主讲人:主讲人:n联系电话:联系电话:nEmail:EDAEDA技术及技术及CPLD/FPGACPLD/FPGA应用简明教程应用简明教程EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l 刘爱荣 等编著,清华大学出版社l 朱正伟 等编著,清华大学出版社l 王金明等编著,电子工业出版社出版本课件相关参考书目本课件相关参考书目2007年2月10日2EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l l 第一章第一章第一章第一
2、章 绪论绪论绪论绪论l l第二章第二章第二章第二章 大规模可编程逻辑器件大规模可编程逻辑器件大规模可编程逻辑器件大规模可编程逻辑器件CPLD/FPGACPLD/FPGAl l第三章第三章第三章第三章 硬件描述语言硬件描述语言硬件描述语言硬件描述语言VHDLVHDL编程基础编程基础编程基础编程基础l l第四章第四章第四章第四章 常用常用常用常用EDAEDA工具软件操作指南工具软件操作指南工具软件操作指南工具软件操作指南 l l第五章第五章第五章第五章 基本逻辑电路设计基本逻辑电路设计基本逻辑电路设计基本逻辑电路设计 l l第六章第六章第六章第六章 CPLD/FPGACPLD/FPGA在数字系统中
3、的应用在数字系统中的应用在数字系统中的应用在数字系统中的应用 l l第七章第七章第七章第七章 CPLD/FPGACPLD/FPGA在通信工程中实践应用在通信工程中实践应用在通信工程中实践应用在通信工程中实践应用 l l第八章第八章第八章第八章 CPLD/FPGACPLD/FPGA在在在在DSPDSP领域中的应用领域中的应用领域中的应用领域中的应用l l第九章第九章第九章第九章 CPLD/FPGACPLD/FPGA在微机工程中实践应用在微机工程中实践应用在微机工程中实践应用在微机工程中实践应用 l l第十章第十章第十章第十章 CPLD/FPGACPLD/FPGA实验实验实验实验 本教材共本教材共
4、10章内容章内容2007年2月10日3EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社第 1 章 绪 论教学目标教学重点教学过程EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l了解了解EDA技术的含义技术的含义l了解了解EDA技术发展历程技术发展历程l理解和掌握理解和掌握EDA技术的主要内容技术的主要内容l理解和掌握理解和掌握EDA技术的工程设计流程技术的工程设计流程l理解数字系统的设计方法简介理解数字系统的设计方法简介 教学目标教学目标2007年2月10日5EDA技术及技术及CPLD/FPGA应用简明教程应
5、用简明教程 清华大学出版社清华大学出版社l理解和掌握理解和掌握EDA技术的主要内容技术的主要内容l理解和掌握理解和掌握EDA技术的工程设计流程技术的工程设计流程l掌握数字系统的设计方法掌握数字系统的设计方法 教学重点教学重点2007年2月10日6EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社lEDA技术的含义及主要内容阐述技术的含义及主要内容阐述lEDA技术的工程设计流程的研究技术的工程设计流程的研究l数字系统设计方法综述数字系统设计方法综述 教学过程教学过程2007年2月10日7EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学
6、出版社清华大学出版社l什么叫什么叫EDA技术?技术?l 由于它是一门迅速发展的新技术,涉及由于它是一门迅速发展的新技术,涉及面广,内容丰富,理解各异,目前尚无统一面广,内容丰富,理解各异,目前尚无统一的看法。作者认为:的看法。作者认为:EDA技术有狭义和广义技术有狭义和广义之分,狭义之分,狭义EDA技术就是以大规模可编程逻技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系模可编程逻辑器件的开发软件及实验开发系统为设计工具。统为设计工
7、具。1.1 EDA技术的涵义技术的涵义2007年2月10日8EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社什么叫EDA技术?由于它是一门迅速发展的新技术,涉及面广,内容丰富,理解各异,目前尚无统一的看法。作者认为:EDA技术有狭义和广义之分,狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具。1.1 EDA技术的涵义技术的涵义2007年2月10日9EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社什么叫
8、什么叫EDA技术?技术?通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。2007年2月10日10EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社什么叫什么叫EDA技术?技术?本书讨论的对象为狭义的EDA技术。广义的EDA技术除狭义的EDA技术之外,还包括计算机辅助分析CAA技术(如PSPICE,EWB,MATLAB等),印
9、刷电路板计算机辅助设计PCB-CAD技术(如PROTEL,ORCAD等)。2007年2月10日11EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社利用利用EDA技术进行电子系统的设计具技术进行电子系统的设计具有以下几个特点:有以下几个特点:用软件的方式设计硬件;用软件方式设计的系统到硬件系统的转换 是由有关的开发软件自动完成的;设计过程中可用有关软件进行各种仿真;系统可现场编程,在线升级;整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。2007年2月10日12EDA技术及技术及CPLD/FPGA应用简明教
10、程应用简明教程 清华大学出版社清华大学出版社 1.2 EDA技术发展历程 EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计(Computer Assist Design,简称CAD)、计算机辅助工程设计(Computer Assist Engineering Design,简称CAE)和电子设计自动化(Electronic Design Automation,简称EDA)三个发展阶段。2007年2月10日13EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社120世纪70年代的计算机辅助设计CAD阶段早期的电子系统硬件设计采用的
11、是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。初级阶段的硬件设计大量选用中小规模标准集成电路,人们将这些器件焊接在电路板上,做成初级电子系统,对电子系统的调试是在组装好的PCB(Printed Circuit Board)板上进行的由于设计师对图形符号使用数量有限,传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。2007年2月10日14EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社 这时,人们开始将产品设计过程中高度重复性的繁杂劳动,如布图布线工作,用二维图形编辑与分析的CAD工具替代,最具代表性的产品就是
12、美国ACCEL公司开发的Tango布线软件。20世纪70年代,是EDA技术发展初期,由于PCB布图布线工具受到计算机工作平台的制约,其支持的设计工作有限且性能比较差。2007年2月10日15EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社220世纪80年代的计算机辅助工程设计CAE阶段l初级阶段的硬件设计是用大量不同型号的标准芯片实现电子系统设计的。随着微电子工艺的发展,相继出现了集成上万只晶体管的微处理器、集成几十万直到上百万储存单元的随机存储器和只读存储器。此外,支持定制单元电路设计的硅编辑、掩膜编程的门阵列,如标准单元的半定制设计方法以及可编程逻
13、辑器件(PAL和GAL)等一系列微结构和微电子学的研究成果都为电子系统的设计提供了新天地。2007年2月10日16EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l 因此,可以用少数几种通用的标准芯片实现电子系统的设计。l 伴随计算机和集成电路的发展,EDA技术进入到计算机辅助工程设计阶段。20世纪80年代初,推出的EDA工具则以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电路设计没有完成之前的功能检测等问题。利用这些工具,设计师能在产品制作之前预知产品的功能与性能,能生成产品制造文件,在设计阶段对产品性能的分析前进了一大步。2007年
14、2月10日17EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l 如果说20世纪70年代的自动布局布线的CAD工具代替了设计工作中绘图的重复劳动,那么,到了20世纪80年代出现的具有自动综合能力的CAE工具则代替了设计师的部分工作,对保证电子系统的设计,制造出最佳的电子产品起着关键的作用。到了20世纪80年代后期,EDA工具已经可以进行设计描述、综合与优化和设计结果验证,CAE阶段的EDA工具不仅为成功开发电子产品创造了有利条件,而且为高级设计人员的创造性劳动提供了方便。但是,大部分从原理图出发的EDA工具仍然不能适应复杂电子系统的设计要求,而具体化的
15、元件图形制约着优化设计。2007年2月10日18EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社3.20世纪90年代电子系统设计自动化EDA阶段l为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。EDA工具的发展,又为设计师提供了全线EDA工具。2007年2月10日19EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清
16、华大学出版社l这个阶段发展起来的EDA工具,目的是在设计前期将设计师从事的许多高层次设计由工具来完成,如可以将用户要求转换为设计技术规范,有效的处理可用的设计资源与理想的设计目标之间的矛盾,按具体的的硬件、软件和算法分解设计等。由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用EDA工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。2007年2月10日20EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电
17、子产品开发(即片上系统集成,System on a chip)。因此,EDA工具是以系统机设计为核心,包括系统行为级描述与结构综合,系统仿真与测试验证,系统划分与指标分配,系统决策与文件生成等一整套的电子系统设计自动化工具。2007年2月10日21EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。例如,提供方框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言(如VHDL、AHDL或Verilog-HDL),同时含
18、有各种工艺的标准元件库。只有具备上述功能的EDA工具,才可能是电子设计工程师在不熟悉各种半导体工艺的情况下,完成电子系统的设计。2007年2月10日22EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l未来的EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域,随着基于EDA的SOC(单片系统)设计技术的发展,软硬核功能库的建立,以及基于VHDL所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之
19、一。2007年2月10日23EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.3 EDA技术的主要内容lEDA技术涉及面广,内容丰富,从教学和实用的角度看,究竟应掌握些什么内容呢?l作者认为,主要应掌握如下四个方面的内容:大规模可编程逻辑器件;l 硬件描述语言;l 软件开发工具;l 实验开发系统。2007年2月10日24EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体,硬件描述语言是利用EDA技术进行电子系统设计的主要表达手段,软件开发工具是利
20、用EDA技术进行电子系统设计的智能化的自动化设计工具,实验开发系统则是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。为了使读者对EDA技术有一个总体印象,下面对EDA技术的主要内容进行概要的介绍。2007年2月10日25EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.3.1.大规模可编程逻辑器件l可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称,现在,FPGA和CPLD器件的应用已十分广泛,它们将随着EDA技术的发展而成为电子设计领域的重要角色
21、。国际上生产FPGA/CPLD的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice三家公司。2007年2月10日26EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社lXilinx公司的FPGA器件有XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200系列等,可用门数为120018 000;Altera公司的CPLD器件有FLEX6000,FLEX8000,FLEX10K,FLEX10KE系列等,提供门数为500025 000;Lattice公司的ISP-PLD器件有ispLSI1
22、000,ispLSI2000,ispLSI3000,ispLSI6000系列等,集成度可多达25 000个PLD等效门。lFPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。2007年2月10日27EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社 高集成度、高速度和高可靠性是FPGA/CPLD最明显的特点,其时钟延时可小至ns级,结合其并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。在高可靠应用领域
23、,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。由于FPGA/CPLD的集成规模非常大,可利用先进的EDA工具进行电子系统设计和产品开发。2007年2月10日28EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。l它几乎可用于任何型号和规模的FPGA/CPLD中,
24、从而使得产品设计效率大幅度提高。2007年2月10日29EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场最宝贵的特征。美国IT公司认为,一个ASIC 80%的功能可用于IP核等现成逻辑合成。而未来大系统的FPGA/CPLD设计仅仅是各类再应用逻辑与IP核(Core)的拼装,其设计周期将更短。l与ASIC设计相比,FPGA/CPLD显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的VHDL设计迅速实现
25、ASIC投产。2007年2月10日30EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l对于一个开发项目,究竟是选择FPGA还是选择CPLD 呢?主要看开发项目本身的需要。对于普通规模,且产量不是很大的产品项目,通常使用CPLD比较好。对于大规模的逻辑设计ASIC设计,或单片系统设计,则多采用FPGA。另外,FPGA掉电后将丢失原有的逻辑信息,所以在实用中需要为FPGA芯片配置一个专用ROM。2007年2月10日31EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.3.2.硬件描述语言(HDL)l常用的硬件描
26、述语言有VHDL、Verilog、ABEL。lVHDL:作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。2007年2月10日32EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社lVerilog:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。lABEL:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。l有专家认为,在新世纪中,VHDL与Verilog语言将承
27、担几乎全部的数字系统设计任务。2007年2月10日33EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.3.3.软件开发工具l目前比较流行的、主流厂家的EDA的软件工具有Altera的MAX+plus II、Lattice的ispEXPERT、Xilinx的Foundation Series。lMAX+plus II:支持原理图、VHDL和Verilog语言文本文件,以及以波形与EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计。它具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。2007年2月10日34EDA技术及技术
28、及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l在适配之后,MAX+plus II生成供时序仿真用的EDIF、VHDL和Verilog这三种不同格式的网表文件,它界面友好,使用便捷,被誉为业界最易学易用的EDA的软件,并支持主流的第三方EDA工具,支持除APEX20K系列之外的所有Altera公司的FPGA/CPLD大规模逻辑器件。lispEXPERT:ispEXPERT System是ispEXPERT的主要集成环境。通过它可以进行VHDL、Verilog及ABEL语言的设计输入、综合、适配、仿真和在系统下载。2007年2月10日35EDA技术及技术及CPLD/F
29、PGA应用简明教程应用简明教程 清华大学出版社清华大学出版社lispEXPERT System是目前流行的EDA软件中最容量掌握的设计工具之一,它界面友好,操作方便,功能强大,并与第三方EDA工具兼容良好。lFoundation Series:Xilinx公司最新集成开发的EDA工具。它采用自动化的、完整的集成设计环境。Foundation项目管理器集成了Xilinx实现工具,并包含了强大的Synopsys FPGA Express综合系统,是业界最强大的EDA设计工具之一。2007年2月10日36EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.3
30、.4.实验开发系统l提供芯片下载电路及EDA实验/开发的外围资源(类似于用于单片机开发的仿真器),供硬件验证用。一般包括:实验或开发所需的各类基本信号发生模块,包括时钟、脉冲、高低电平等;FPGA/CPLD输出信息显示模块,包括数码显示、发光管显示、声响指示等;2007年2月10日37EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l 监控程序模块,提供“电路重构软配置”;目标芯片适配座以及上面的FPGA/CPLD目标芯片和编程下载电路。l目前从事EDA实验开发系统研究的院校有:清华大学,北京理工大学,复旦大学,西安电子科技大学,东南大学,浙江天煌科技
31、实业有限公司等。2007年2月10日38EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.3.5关于EDA技术的学习重点及学习方法 lEDA技术作为一门发展迅速、有着广阔应用前景的新技术,涉及面广,内容丰富。作者结合自己的学习及教学体会,就EDA技术学习的有关问题提出一些指导意见,供读者参考。2007年2月10日39EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1)EDA技术的学习重点技术的学习重点 l从实用和教学的角度讲,作者认为,EDA技术的学习主要应掌握四个方面的内容:大规模可编程逻辑器件;硬件描述语
32、言;软件开发工具;实验开发系统。其中,硬件描述语言是重点。2007年2月10日40EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。l对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解VHDL的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了VHDL语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。20
33、07年2月10日41EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。l对于实验开发系统,主要能够根据自己所拥有的设备,熟练地进行硬件验证或变通地进行硬件验证。2007年2月10日42EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社2)EDA技术的学习方法技术的学习方法 l抓住一个重点:VHDL的编程;掌握两个工具:FPGA/CPLD开发软件和EDA实验开发系统的使用;运用三种手段:案例分析、应用设计、上机实践;采
34、用四个结合:边学边用相结合,边用边学相结合,理论与实践相结合,课内与课外相结合。2007年2月10日43EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.4 EDA软件系统的构成lEDA技术研究的对象是电子设计的全过程,有系统级、电路级和物理级3个层次的设计。其涉及的电子系统从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子系统,因此EDA技术研究的范畴相当广泛。如果从专用集成电路ASIC开发与应用角度看,EDA软件系统应当包含以下子模块:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线
35、子模块等 2007年2月10日44EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l1.4.1 设计输入子模块:l 该模块接受用户的设计描述,并进行语义正确性、语法规则的检查,检查通过后,将用户的设计描述数据转换为EDA软件系统的内部数据格式,存入设计数据库被其他子模块调用。设计输入子模块不仅能接受图形描述输入、硬件描述语言(HDL)描述输入,还能接受图文混合描述输入。该子模块一般包含针对不同描述方式的编辑器,如图形编辑器、文本编辑器等,同时包含对应的分析器。2007年2月10日45EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学
36、出版社清华大学出版社l1.4.2 设计数据库子模块:该模块存放系统提供的库单元以及用户的设计描述和中间设计结果。l1.4.3 分析验证子模块:该模块包括各个层次的模拟验证、设计规则的检查、故障诊断等。l1.4.4 综合仿真子模块:该模块包括各个层次的综合工具,理想的情况是:从高层次到低层次的综合仿真全部由EDA工具自动实现。2007年2月10日46EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l1.4.5 布局布线子模块:该模块实现由逻辑设计到物理实现的映射,因此与物理实现的方式密切相关。例如,最终的物理实现可以是门阵列、可编程逻辑器件等,由于对应的
37、器件不同,因此各自的布局布线工具会有很大的差异。l近些年,许多生产可编程逻辑器件的公司都相继推出适于开发自己公司器件的EDA工具,这些工具一般都具有上面提到的各个模块,操作简单,对硬件环境要求低,运行平台是PC机和Windows或Windows NT操作系统。如Xilinx、Altera、Lattice、Actel、AMD等器件公司都有自己的EDA工具。2007年2月10日47EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社lEDA工具不只面向ASIC的应用与开发,还有涉及电子设计各个方面的EDA工具,包括数字电路设计、模拟电路设计、数模混合设计、系统
38、设计、仿真验证等电子设计的许多领域。这些工具对硬件环境要求高,一般运行平台要求是工作站和UNIX操作系统,功能齐全、性能优良,l一般由专门开发EDA软件工具的软件公司提供,如Cadence、Mentel Graphics、Viewlogic、Synopsys等软件公司都有其特色工具。2007年2月10日48EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社lViewlogic公司的EDA工具就有基本工具、系统设计工具和ASIC/FPGA设计工具三大类20多个工具。l其中,基本工具包括:原理图输入工具ViewDraw,数字仿真器VeiwSim,波形编辑与显
39、示器ViewTrace,静态时序分析工具Motive,设计流程管理工具ViewFlow。l系统设计工具包括:模拟电路仿真器ViewSpice,PLD开发工具包ViewPLD,库开发工具ViewLibrarian,2007年2月10日49EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社lPCB信号串扰分析工具XTK,PCB布线前信号分析工具PDQ,电磁兼容设计工具QUIET,PCB版面规划工具ViewFloorplanner。lASIC/FPGA设计工具包括:VHDL仿真器SpeedWave,SpeedWave Verilog仿真器VCS,逻辑综合工具V
40、iewSynthesis,自动测试向量生成工具Test Gen/Sunrise,原理图自动生成工具ViewGen,有限状态机设计工具ViewFSM,Datapath设计工具ViewDatapath,VHDL与Verilog混合仿真环境FusionHDL。2007年2月10日50EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.5 EDA的工程设计流程l假设我们需要建造一栋楼房假设我们需要建造一栋楼房,第一第一,我们需要进行我们需要进行”建筑设建筑设计计”-用各种设计图纸把我们的建筑设想表示出来用各种设计图纸把我们的建筑设想表示出来;第二第二,我们要进
41、行建筑预算我们要进行建筑预算;第三第三,根据建筑设计和建筑预算进行根据建筑设计和建筑预算进行”施工设计施工设计”;第四第四,根据施工图进行根据施工图进行”建筑施工建筑施工”;最后最后还要进行还要进行”建筑验收建筑验收”-检验所建筑房屋是否符合设计检验所建筑房屋是否符合设计要求。那么,对于目标器件为要求。那么,对于目标器件为FPGA和和CPLD的的VHDL设计,设计,其工程设计步骤如何哪?其工程设计步骤如何哪?EDA的工程设计流程与建筑设计的工程设计流程与建筑设计流程相似:流程相似:l第一,需要进行第一,需要进行“源程序的编辑和编译源程序的编辑和编译”用一定的逻辑用一定的逻辑表达手段将设计表达出
42、来表达手段将设计表达出来;2007年2月10日51EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l第二第二,要进行要进行“逻辑综合逻辑综合”-将用一定的逻辑表达手将用一定的逻辑表达手段将表达出来的设计经过一系列的操作,分解成一系段将表达出来的设计经过一系列的操作,分解成一系列的逻辑电路及对应的关系(电路分解);第三,要列的逻辑电路及对应的关系(电路分解);第三,要进行目标器件的进行目标器件的“布线布线/适配适配”-在选用的目标器件在选用的目标器件中建立这些基本逻辑电路的对应关系(逻辑实现)第中建立这些基本逻辑电路的对应关系(逻辑实现)第四,目标器件的
43、编程下载四,目标器件的编程下载-将前面的软件设计经过编将前面的软件设计经过编程变成具体的设计系统(物理实现);最后要进行硬程变成具体的设计系统(物理实现);最后要进行硬件仿真件仿真/硬件测试硬件测试-验证所设计的系统是否符合要求。验证所设计的系统是否符合要求。同时,在设计过程中要进行有关同时,在设计过程中要进行有关“仿真仿真”-模拟有关模拟有关设计结果与设计构想是否相符。综上所述,设计结果与设计构想是否相符。综上所述,EDAEDA的工程的工程设计基本流程如图设计基本流程如图1 1所示,现具体阐述如下。所示,现具体阐述如下。2007年2月10日52EDA技术及技术及CPLD/FPGA应用简明教程
44、应用简明教程 清华大学出版社清华大学出版社图图-EDA的工程设计基本流程2007年2月10日53EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.源程序的编辑和编译l利用EDA技术进行一项工程设计,首先需利用EDA工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来,进行排错编译,变成VHDL文件格式,为进一步的逻辑综合作准备。l2.常用的源程序输入方式有三种2007年2月10日54EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l(1)原理图输入方式:利用EDA工具提供的图形编辑器以原理图的方式进行
45、输入。原理图输入方式比较容易掌握,直观且方便,所画的电路原理图(请注意,这种原理图与利用Protel画的原理图有本质的区别)与传统的器件连接方式完全一样,很容易被人接受,而且编辑器中有许多现成的单元器件可以利用,自己也可以根据需要设计元件。然而原理图输入法的优点同时也是它的缺点:2007年2月10日55EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l 随着设计规模增大,设计的易读性迅速下降,对于图中密密麻麻的电路连线,极难搞清电路的实际功能;一旦完成,电路结构的改变将十分困难,因而几乎没有可再利用的设计模块;移植困难、入档困难、交流困难、设计交付困难
46、,因为不可能存在一个标准化的原理图编辑器。2007年2月10日56EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l(2)状态图输入方式:以图形的方式表示状态图进行输入。当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成VHDL程序。这种设计方式简化了状态机的设计,比较流行。l(3)VHDL软件程序的文本方式:最一般化、最具普遍性的输入方法,任何支持VHDL的EDA工具都支持文本方式的编辑和编译。2007年2月10日57EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.5.2.逻辑综合和优化
47、l欲把VHDL的软件设计与硬件的可实现性挂钩,需要利用EDA软件系统的综合器进行逻辑综合。l综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形的描述,针对给定硬件结构组件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。2007年2月10日58EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l由此可见,综合器工作前,必须给定最后实现的硬件由此可见,综合器工作前,必须给定最后实现的硬件结构参数,它的功能就是将软件描述与给定硬件结构结构参数,它的功能就是将软件描述与给定硬件结构用某种网表文件的方式联系
48、起来。显然,综合器是软用某种网表文件的方式联系起来。显然,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换成低级的,可与的高级语言描述转换成低级的,可与FPGA/CPLDFPGA/CPLD或构成或构成ASICASIC的门阵列基本结构相映射的网表文件。的门阵列基本结构相映射的网表文件。2007年2月10日59EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l由于VHDL仿真器的行为仿真功能是面向高层次的系统仿真,只能对VHDL的系统描述作可行性的评估测试,不针对任何硬件系统,因此基于
49、这一仿真层次的许多VHDL语句不能被综合器所接受。这就是说,这类语句的描述无法在硬件系统中实现(至少是现阶段),这时,综合器不支持的语句在综合过程中将忽略掉。综合器对源VHDL文件的综合是针对某一PLD供应商的产品系列的,因此,综合后的结果是可以为硬件系统所接受,具有硬件可实现性。2007年2月10日60EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社1.5.3 目标器件的布线/适配l逻辑综合通过后必须利用适配器将综合后的网表文件针对某一具体的目标器进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作,适配完成后可以利用适配所产生的仿
50、真文件作精确的时序仿真。2007年2月10日61EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社l适配器的功能是将由综合器产生的网表文件配置于指定的目标器件中,产生最终的下载文件,如JEDEC格式的文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目标器件系列。对于一般的可编程模拟器件所对应的EDA软件来说,一般仅需包含一个适配器就可以了,如Lattice的PAC-DESIGNER。通常,EDA软件中的综合器可由专业的第三方EDA公司提供,而适配器则需由FPGA/CPLD供应商自己提供,因为适配器的适配对象直接与器件结构相对应。