EDA原理及应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《EDA原理及应用课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 原理 应用 课件
- 资源描述:
-
1、马冬梅2019.1.17 内容:内容:一、EDA设计导论 二、可编程逻辑器件设计方法 三、Verilog HDL语言基础 EDA技术综述;EDA技术发展历史EDA技术涵义EDA技术主要内容PLD设计方法学;PLD设计概论PLD设计流程SOPC设计流程HDL硬件描述语言HDL硬件描述语言概念HDL语言特点和比较HDL语言最新发展 EDA技术随着计算机、集成电路、电子系统设计的发展,经历了三个发展阶段:1、计算机辅助设计(CAD)2、计算机辅助工程设计(CAE)3、电子设计自动化(EDA)1、计算机辅助设计(CAD)硬件设计发展的初级阶段。在此阶段,大量选用中小规模标准集成电路,将产品设计过程中高
2、度重复性的布图布线工作,采用二维图形编辑与分析的CAD工具。由于PCB布图布线工具受到计算机工作平台的制约,其支持的设计工作有限且性能比较差。2、计算机辅助工程(CAE)采用少数几种通用的标准芯片实现电子系统的设计。CAE阶段的EDA工具已经可以进行设计描述、综合与优化和设计结果验证。但是,大部分从原理图出发的EDA工具仍然不能适应复杂电子系统的设计要求,而具体化的元件图形制约着优化设计。3、电子系统设计自动化阶段各种规模的可编程逻辑器件和EDA工具的发展,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。在此阶段,硬件描述语言HDL的出现使得
3、EDA设计进入到抽象描述的设计层次。现在,EDA设计进入了片上系统设计SOPC(System On Programmable Chip)阶段,可编程逻辑器件内集成了数字信号处理器的内核、微处理器的内核等,使得可编程逻辑器件不再只是完成复杂的逻辑功能,而是具有了强大的信号处理和控制功能。EDA技术包括狭义EDA技术和广义EDA技术。狭义EDA技术指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化
4、、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的技术,或称为IES/ASIC自动设计技术。广义EDA技术,是通过计算机及其电子系统的辅助分析和设计软件,完成电子系统某一部分的设计过程。因此,广义EDA技术除了包含狭义的EDA技术外,还包括计算机辅助分析CAA技术(如PSPICE,EWB,MATLAB等),印刷电路板计算机辅助设计PCB-CAD技术(如PROTEL,ORCAD等)和其它高频和射频设计和分析的工具等。EDA技术的共同特点:1、通过使用相应的电路分析和设计软件,完成电子系统各部分的设计;2、在电子系统设计中所使用
5、的EDA软件基本都符合自顶向下的设计流程的理念;3、使用EDA软件设计电子系统,都需要分工设计,团体协作;4、使用EDA软件设计电子系统,提高了设计的效率,缩短了设计周期;5、使用EDA软件设计电子系统,采用了模块化和层次化的设计方法;6、大多数EDA软件都具有仿真和模拟功能;基于狭义EDA技术进行可编程逻辑器件的设计应掌握以下几个方面的内容:、大规模可编程逻辑器件PLD,是利用EDA技术进行电子系统设计的载体;、硬件描述语言HDL,是利用EDA技术进行电子系统设计的主要表达手段;、EDA设计软件EDAS:是利用EDA技术进行电子系统设计的自动化设计工具;、相关的硬件平台,是利用EDA技术进行
6、电子系统设计的下载工具及硬件验证工具;、大规模可编程逻辑器件PLDPLD器件一般包含现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。由于EDA开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构无关,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。与ASIC设计相比,PLD显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的VHDL设计迅速实现ASIC投产。2、硬件描述语言常用硬件描述语言有VHDL、Verilog和ABEL语言。下面从使用方面对这三种语言进行
7、简要的对比:(1)逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、寄存器传输级RTL和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。(2)设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节,Verilog和ABEL语言进行电子系统设计时需了解电路的结构细节。(3)综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,VHDL语言源程序的综合要经过行为级R
8、TL级门电路级的转化,VHDL几乎不能直接控制门电路的生成。而Verilog语言和ABEL语言源程序的综合过程只经过RTL级门电路级的转化,易于控制电路资源。(4)对综合器的要求:VHDL描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高,Verilog和ABEL对综合器的性能要求较低。(5)支持的EDA工具:支持VHDL和Verilog的EDA工具很多,但支持ABEL的综合器仅仅Dataio一家。(6)国际化程度:VHDL和Verilog已成为IEEE标准,而ABEL正朝国际化标准努力。现在,VHDL与Verilog语言将承担几乎全部的数字系统设计任务。3、软件开发工具基于高复杂
9、度PLD器件的开发,在很大程度上依靠EDA软件完成。PLD的EDA工具以计算机软件为主,将典型的单元电路封装起来形成固定模块并形成标准的硬件开发语言(如HDL语言)供设计人员使用。PLD开发软件需要自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合。、硬件开发平台硬件开发平台提供芯片下载电路及EDA实验/开发的外围资源,以供硬件验证。硬件
10、开发平台一般包括:)实验或开发所需的各类基本信号发生模块,包括时钟、脉冲、高低电平等;)PLD输出信息显示模块,包括数码显示、发光管显示、声响指示等;)监控程序模块,提供“电路重构软配置”;)目标芯片适配座以及上面的FPGA/CPLD目标芯片和编程下载电路。传统上的设计方法是自下而上的设计方法,是以固定功能元件为基础,基于电路板的设计方法。这种设计方法有下面的缺点:设计依赖于设计人员的经验。设计依赖于通用元器件。设计后期的仿真不易实现,并且调试复杂。设计实现周期长,灵活性差,耗时耗力,效率低下。系统调试、测试与性能分析完整系统构成电路板设计固定功能元件系统功能需求传统设计方法设计目标设计目标设
11、计输入设计输入功能级仿真功能级仿真网表转换、映射、布局布线(网表转换、映射、布局布线(CPLDCPLD为适配)为适配)时序仿真时序仿真系统验证系统验证系统产品系统产品原理图输入,文本输入(包括器件选择、元件库的建立、原理图或状态机设计、VHDL语言设计)网表转换、映射、布局布线、产生时序数据、产生配置文件配置文件加载后,用示波器、逻辑分析仪、软件程序观察FPGA开发的一般流程开发的一般流程综合优化综合优化行为仿真行为仿真生成网表文件1、设计目标在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备工作。根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等
12、方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,直到可以直接使用EDA元件库为止。2、设计输入 设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用较广,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率低,且不易维护。更主要的缺点是可移植性差。HDL语言输入法利用文本描述设计,主要使用行为级HDL,其主流语言是
13、Verilog HDL和VHDL。3、功能仿真 功能仿真也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog,以及NC-VHDL等软件。4、综合优化 所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综
14、合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。综合优化是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用FPGA制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。由于门级结构、RTL级的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有Synplicity公司Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开发工具。5、综合后仿真 综合后仿真检查综合结果是否和原设计一致。在仿真时,把
15、综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。6、实现与布局布线 将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线
16、资源,合理正确地连接各个元件。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。7、时序仿真也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非
17、常有必要的。在功能仿真中介绍的软件工具一般都支持综合后仿真。8、板级仿真与验证 板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。9、芯片编程与调试 设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件,然后将编程数据下载到FPGA芯片中。其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪来解决上述矛盾,它们只需要占用芯片少量的逻辑资源,具有很高的实用价值。硬件描述语言(Hardware Description Language)是硬件设
18、计人员和电子设计自动化(EDA)工具之间的界面,其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。即利用计算机的巨大能力对Verilog HDL或VHDL建模的复杂数字逻辑进行仿真,然后再自动综合,生成符合要求且在电路结构上可以实现的数字逻辑网表(Netlist),根据网表和某种工艺的器件自动生成具体电路,最后生成该工艺条件下这种具体电路的时延模型。仿真验证无误后,该模型可用于制造ASIC芯片或写入CPLD和FPGA器件中。在HDL语言出现之前,已有了许多程序设计语言,如汇编、C、Pascal、Fortran、Prolog等。它们适合于描述过程和算法,不适合作硬件描述。在使用EDA工
19、具进行电子系统设计时,就需要一种硬件描述语言来作为EDA工具的工作语言。因此,众多的EDA工具软件开发者相继推出了自己的HDL语言。在HDL语言的发展过程中,美国国防部起了非常重要的作用。美国国防部电子系统项目有众多的承包公司,他们使用各自的HDL语言,造成了信息交换困难和维护困难。美国政府为了降低开发费用,避免重复设计,国防部为他们的超高速集成电路提供了一种硬件描述语言,以期望VHDL功能强大、严格、可读性好。政府要求各公司的合同都用它来描述,以避免产生歧义。HDL语言的特点主要体现在以下几个方面:1、HDL语言既包含一些高层程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体构件。、H
20、DL语言是并发的,即具有在同一时刻执行多任务的能力。一般来讲编程语言是非并行的,但在实际硬件中许多操作都是在同一时刻发生的,所以HDL语言具有并发的特征。、HDL语言有时序的概念。一般来讲,编程语言是没有时序概念的,但在硬件电路中从输入到输出总是有延迟存在的,为描述这些特征,HDL语言需要建立时序的概念。因此,使用HDL除了可以描述硬件电路的功能外,还可以描述其时序要求。、通过使用结构级或行为级描述可以在不同的抽象层次描述设计,HDL语言采用自顶向下的数字电路设计方法,主要包括3个领域5个抽象层次,如下表所示:行为领域结构领域物理领域系统级性能描述部件及它们之间的逻辑连接方式芯片、模块、电路板
21、和物理划分的子系统算法级I/O应答算法级硬件模块数据结构部件之间的物理连接、电路板、底盘等寄存器传输级并行操作寄存器传输、状态表算术运算部件、多路选择器、寄存器总线、微定序器、微存储器之间的物理连接方式芯片、宏单元逻辑级用布尔方程叙述门电路、触发器、锁存器标准单元布图电路级微分方程表达晶体管、电阻、电容、电感元件晶体管布图总的来说,它们有以下几点不同:、VHDL偏重于标准化的考虑,Verilog HDL则和EDA工具结合得更为紧密。VHDL是为了实现美国国防部VHSIC计划所推出的各个电子部件供应商具有统一数据交换格式标准的要求。Verilog HDL是在全球最大的EDA/ESDA供应商Cad
22、ence公司的支持下针对EDA工具专门开发的硬件描述语言。、Verilog HDL拥有广泛的设计群体,成熟的资源远比VHDL丰富。同时Verilog HDL是从高级设计语言C语言发展而来的,比VHDL而言更容易上手,其编码风格也更为简洁明了,是一种非常容易掌握的硬件描述语言。、Verilog HDL和VHDL在行为级抽象建模的覆盖范围方面也有所不同。一般认为Verilog HDL在系统抽象方面比VHDL要强一些,Verilog HDL比较适合算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)以及门级(Gate)的设计,而VHDL更适合特大型系统级(System)的设计。
23、目前对于一个系统芯片设计项目,可以采用的方案包括以下几种:1、在系统级采用VHDL,在软件级采用C语言,在实现级采用Verilog。目前,软件与硬件的协调设计还是一个很具挑战性的工作,因为软件越来越成为SoC设计的关键。该方案的特点是:风险小,集成难度大,与原有方法完全兼容,有现成的开发工具,但工具集成由开发者自行负责完成。、系统级及软件级采用Superlog,硬件级和实现级均采用Verilog HDL描述,这样和原有的硬件设计可以兼容。该方案特点是风险较小,易于集成,与原硬件设计兼容性好,有集成开发环境。3、系统级和软件级采用SystemC,硬件级采用Verilog HDL,SystemC与
24、常规的Verilog HDL互相转换,与原来的软件编译环境完全兼容。开发者只需要一组描述类库和一个包含仿真核的库,就可以在通常ANSI C+编译环境下开发,但硬件描述与原有方法完全不兼容。该方法特点是风险较大,与原软件开发兼容性好,硬件开发有风险。IC(Integrated Circuit)设计方法一般分为6类:1、全定制法:如ROM,RAM或PLA等;2、定制法:通常包括标准单元和通用单元;3、半定制法:通常包括数字电路门阵列和线性阵列;4、模块编译法:对设计模块进行描述,然后通过编译直接得到电路掩膜版图;5、可编程逻辑器件法:通常是指PAL、PLA、GAL器件和CPLD器件;6、逻辑单元阵
25、列法:通常是指现场可编程门阵列FPGA器件。可编程逻辑器件(Programmable Logic Device,PLD)起源于20世纪70年代,是在专用集成电路(ASIC)的基础上发展起来的一种数字系统设计的主要硬件平台。其主要特点:1、由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写;2、在修改和升级PLD时,不需额外地改变PCB电路板,只是在计算机上修改和更新程序,使硬件设工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本。PLD器件包括4种基本类型:编程只读存储器(Programmable Read Only Memory,PROM);现场可编
展开阅读全文