Presentation is loading. Please wait.

Presentation is loading. Please wait.

EDA 原理及应用 何宾 2008.09 E - mail: hebin@mail.buct.edu.cn.

Similar presentations


Presentation on theme: "EDA 原理及应用 何宾 2008.09 E - mail: hebin@mail.buct.edu.cn."— Presentation transcript:

1 EDA 原理及应用 何宾 E - mail:

2 课程进度安排: 56学时(课堂教学40学时,上机实验16学时) 课堂教学内容: 第1章-EDA设计导论 第2章-可编程逻辑器件设计方法 第3章-VHDL语言基础 第4章-数字逻辑单元设计 第5章-VHDL高级设计技术 第6章-基于HDL和原理图的设计输入 第7章-设计综合和行为仿真 第8章-设计实现和时序仿真 第9章-设计下载和调试 第10章-设计示例(数字钟、UART、数字电压表)

3 课程教材 《EDA原理及应用》何宾编著 清华大学出版社,

4 EDA设计导论-主要内容 一、EDA技术综述; 二、 PLD设计方法学; 三、HDL硬件描述语言; 第 1章
EDA技术发展历史、EDA技术涵义、EDA技术主要内容; 二、 PLD设计方法学; 在PLD设计方法学部分,介绍了PLD设计概论、PLD设计流程、SOPC设计流程; 三、HDL硬件描述语言; 介绍了HDL硬件描述语言概念、HDL语言特点和比较、HDL语言最新发展。

5 EDA设计导论- EDA技术综述 第一章 1、计算机辅助设计(CAD) 2、计算机辅助工程设计(CAE) 3、电子设计自动化(EDA)

6 EDA设计导论- EDA技术综述 第一章 计算机辅助设计(CAD)
随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。初级阶段的硬件设计大量选用中小规模标准集成电路。 在此阶段,人们开始将产品设计过程中高度重复性的繁杂劳动,如布图布线工作,用二维图形编辑与分析的CAD工具替代,最具代表性的产品就是美国ACCEL公司开发的Tango布线软件。 20世纪70年代,是EDA技术发展初期,由于PCB布图布线工具受到计算机工作平台的制约,其支持的设计工作有限且性能比较差。

7 EDA设计导论- EDA技术综述 第一章 计算机辅助工程(CAE)
随着微电子工艺的发展,相继出现了集成上万只晶体管的微处理器、集成几十万直到上百万储存单元的随机存储器和只读存储器。 此外,支持定制单元电路设计的硅编辑、掩膜编程的门阵列,如标准单元的半定制设计方法以及可编程逻辑器件(PAL和GAL)等一系列微结构和微电子学的研究成果都为电子系统的设计提供了新天地。 因此,可以用少数几种通用的标准芯片实现电子系统的设计。

8 EDA设计导论- EDA技术综述 第一章 计算机辅助工程(CAE)
计算机辅助工程(CAE) 20世纪80年代初,推出的EDA工具则以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电路设计没有完成之前的功能检测等问题。 到了20世纪80年代后期,EDA工具已经可以进行设计描述、综合与优化和设计结果验证,CAE阶段的EDA工具不仅为成功开发电子产品创造了有利条件,而且为高级设计人员的创造性劳动提供了方便。但是,大部分从原理图出发的EDA工具仍然不能适应复杂电子系统的设计要求,而具体化的元件图形制约着优化设计。

9 EDA设计导论- EDA技术综述 第一章 电子系统设计自动化阶段
微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,设计者通过设计芯片实现电子系统功能。EDA工具的发展,又为设计师提供了全线EDA工具。 这个阶段发展起来的EDA工具,目的是在设计前期将设计师从事的许多高层次设计由工具来完成。由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用EDA工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。

10 EDA设计导论- EDA技术综述 第一章 电子系统设计自动化阶段
电子系统设计自动化阶段 硬件描述语言HDL的出现是这个阶段最重要的成果,由于HDL语言的出现使得EDA设计进入到抽象描述的设计层次。 21世纪开始,随着微电子技术的进一步发展,EDA设计进入了更高的阶段,即片上系统设计(SOPC,System On Programmable Chip)阶段,在这个阶段,可编程逻辑器件内集成了数字信号处理器的内核、微处理器的内核等,使得可编程逻辑器件不再只是完成复杂的逻辑功能,而是具有了强大的信号处理和控制功能。SOPC技术的进一步发展必将给电子系统的设计带来一场深刻的变革。

11 EDA设计导论- EDA技术涵义 第一章 ●狭义EDA技术
  狭义EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。

12 EDA设计导论- EDA技术涵义 第一章 ●广义EDA技术
  广义EDA技术,是通过计算机及其电子系统的辅助分析和设计软件,完成电子系统某一部分的设计过程。因此,广义EDA技术除了包含狭义的EDA技术外,还包括计算机辅助分析CAA技术(如PSPICE,EWB,MATLAB等),印刷电路板计算机辅助设计PCB-CAD技术(如PROTEL,ORCAD等)和其它高频和射频设计和分析的工具等。

13 EDA设计导论- EDA技术涵义 第一章 1、通过使用相应的电路分析和设计软件,完成电子系统某部分的设计;
 1、通过使用相应的电路分析和设计软件,完成电子系统某部分的设计;  2、在电子系统设计中所使用的EDA软件基本都符合自顶向下的设计流程的理念;  3、使用EDA软件设计电子系统,都需要分工设计,团体协作;

14 EDA设计导论- EDA技术涵义 第一章 4、使用EDA软件设计电子系统,提高了设计的效率,缩短了设计周期;

15 EDA设计导论- EDA技术涵义 第一章 1、大规模可编程逻辑器件(PLD),PLD是利用EDA 技术进行电子系统设计的载体;
 2、硬件描述语言(HDL),HDL语言是利用EDA技术 进行电子系统设计的主要表达手段;  3、EDA设计软件(EDAS,),EDA设计软件是利用EDA 技术进行电子系统设计的自动化设计工具;  4、相关的硬件平台,硬件平台是利用EDA技术进行电 子系统设计的下载工具及硬件验证工具;

16 EDA设计导论- EDA技术涵义 第一章 现在所说的PLD器件一般包含现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
  由于PLD的集成规模非常大,因此可利用先进的EDA工具进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构无关,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。  与ASIC设计相比,PLD显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的VHDL设计迅速实现ASIC投产。。

17 EDA设计导论- EDA技术涵义 第一章 ● 硬件描述语言   常用硬件描述语言有VHDL、Verilog和ABEL语言。VHDL起源于美国国防部的VHSIC,Verilog起源于集成电路的设计,ABEL则来源于可编程逻辑器件的设计。  下面从使用方面对这三种语言进行简要的对比:  (1)逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。

18 EDA设计导论- EDA技术涵义 第一章 ● 硬件描述语言   (2)设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;Verilog和ABEL语言进行电子系统设计时需了解电路的结构细节,设计者需做大量的工作。  (3)综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,VHDL语言源程序的综合通常要经过行为级→RTL级→门电路级的转化,VHDL几乎不能直接控制门电路的生成。而Verilog语言和ABEL语言源程序的综合过程要稍简单,即经过RTL级→门电路级的转化,易于控制电路资源。  (4)对综合器的要求:VHDL描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高,Verilog和ABEL对综合器的性能要求较低。

19 EDA设计导论- EDA技术涵义 第一章 ● 硬件描述语言   (5)支持的EDA工具:支持VHDL和Verilog的EDA工具很多,但支持ABEL的综合器仅仅Dataio一家。  (6)国际化程度:VHDL和Verilog已成为IEEE标准,而ABEL正朝国际化标准努力。在新世纪中,VHDL与Verilog语言将承担几乎全部的数字系统设计任务。

20 EDA设计导论- EDA技术涵义 第一章 ● 软件开发工具   基于高复杂度PLD器件的开发,在很大程度上要依靠EDA软件完成。PLD的EDA工具以计算机软件为主,将典型的单元电路封装起来形成固定模块并形成标准的硬件开发语言(如HDL语言)供设计人员使用。PLD开发软件需要自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。  综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合。  本书中主要是基于Xilinx的ISE9.2EDA软件工具

21 EDA设计导论- EDA技术涵义 第一章 硬件开发平台提供芯片下载电路及EDA实验/开发的外围资源,以供硬件验证用。硬件开发平台一般包括:
● 硬件开发平台  硬件开发平台提供芯片下载电路及EDA实验/开发的外围资源,以供硬件验证用。硬件开发平台一般包括:   1)实验或开发所需的各类基本信号发生模块,包括时钟、脉冲、高低电平等;   2)PLD输出信息显示模块,包括数码显示、发光管显示、声响指示等;   3)监控程序模块,提供“电路重构软配置”;   4)目标芯片适配座以及上面的FPGA/CPLD目标芯片和编程下载电路。

22 EDA设计导论- PLD设计方法 第一章   设计已经从传统的自下而上的方法,转变成自上而下的设计方法。传统上的设计方法是自下而上的设计方法,是以固定功能元件为基础,基于电路板的设计方法。这种设计方法有下面的缺点: 设计依赖于设计人员的经验。 设计依赖于现有的通用元器件。 设计后期的仿真不易实现,并且调试复杂。 设计实现周期长,灵活性差,耗时耗力,效率低下。 系统调试、测试与性能分析 完整系统构成 电路板设计 固定功能元件 系统功能需求 图1.1 传统设计方法

23 EDA设计导论- PLD设计流程 第一章 设计目标 设计输入 功能级仿真 逻辑综合、优化、布局布线 时序仿真 系统验证 系统产品
原理图输入,文本输入(包括器件选择、元件库的建立、原理图或状态机设计、VHDL语言设计) 1、网表转换 2、映射 3、布局布线 4、产生时序数据 5、产生配置文件 配置文件加载后,用 示波器、逻辑分析仪、 软件程序观察

24 EDA设计导论- PLD设计流程 第一章 ● 设计目标   在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。

25 EDA设计导论- PLD设计流程 第一章 ● 设计输入   设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。   原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率很低,且不易维护。更主要的缺点是可移植性差。   目前,在实际开发中应用最广的就是HDL语言输入法,利用文本描述设计,主要使用行为HDL,其主流语言是Verilog HDL和VHDL。

26 EDA设计导论- PLD设计流程 第一章 ● 功能仿真   功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。   常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。

27 EDA设计导论- PLD设计流程 第一章 ● 综合优化   所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。   综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用FPGA制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。由于门级结构、RTL级的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。   常用的综合工具有Synplicity公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开发工具。

28 EDA设计导论- PLD设计流程 第一章 ● 综合后仿真   综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。

29 EDA设计导论- PLD设计流程 第一章 ● 实现与布局布线   实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。 由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。

30 EDA设计导论- PLD设计流程 第一章 ● 时序仿真   时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。在功能仿真中介绍的软件工具一般都支持综合后仿真。

31 第一章 EDA设计导论- PLD设计流程 ● 板级仿真与验证   板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。 ● 芯片编程与调试   设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件,然后将编程数据下载到FPGA芯片中。   其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪来解决上述矛盾,它们只需要占用芯片少量的逻辑资源,具有很高的实用价值。

32 EDA设计导论- SOPC设计流程 第一章  从图中也可以看出,SOPC的设计流程实际上就是软件和硬件协同设计流程。在这个设计流程中应该重点考虑以下方面的问题: 1、如何选择SOPC芯片,一方面是性能的考虑,另一方面是对于软件的考虑;  2、如何对SOPC的设计进行验证;  3、如何对SOPC的设计提供板极支持包;

33 EDA设计导论- HDL硬件描述语言 第一章 硬件描述语言(Hardware Description Language)是硬
其主要目的是用来编写设计文件,建立电子系统行为级的 仿真模型。即利用计算机的巨大能力对Verilog HDL或 VHDL建模的复杂数字逻辑进行仿真,然后再自动综合, 生成符合要求且在电路结构上可以实现的数字逻辑网表 (Netlist),根据网表和某种工艺的器件自动生成具体电 路,最后生成该工艺条件下这种具体电路的时延模型。仿 真验证无误后,该模型可用于制造ASIC芯片或写入CPLD 和FPGA器件中。

34 EDA设计导论- HDL硬件描述语言 第一章
在HDL语言出现之前,已有了许多程序设计语言,如汇编、C、Pascal、Fortran、Prolog等。它们适合于描述过程和算法,不适合作硬件描述。在使用EDA工具进行电子系统设计时,就需要一种硬件描述语言来作为EDA工具的工作语言。因此,众多的EDA工具软件开发者相继推出了自己的HDL语言。

35 EDA设计导论- HDL语言特点和比较 第一章 HDL语言的特点主要体现在以下几个方面:

36 EDA设计导论- HDL语言特点和比较 第一章

37 算术运算部件、多路选择器、寄存器总线、微定序器、微存储器之间的物理连接方式
EDA设计导论- HDL语言特点和比较 第一章 行为领域 结构领域 物理领域 系统级 性能描述 部件及它们之间的逻辑连接方式 芯片、模块、电路板和物理划分的子系统 算法级 I/O应答算法级 硬件模块数据结构 部件之间的物理连接、电路板、底盘等 寄存器传输级 并行操作寄存器传输、状态表 算术运算部件、多路选择器、寄存器总线、微定序器、微存储器之间的物理连接方式 芯片、宏单元 逻辑级 用布尔方程叙述 门电路、触发器、锁存器 标准单元布图 电路级 微分方程表达 晶体管、电阻、电容、电感元件 晶体管布图

38 EDA设计导论- Verilog和VHDL比较
第一章  总的来说,它们有一下几点不同:  1、从推出的过程来看,VHDL偏重于标准化的考虑,而Verilog HDL则和EDA工具结合得更为紧密。VHDL是为了实现美国国防部VHSIC计划所推出的各个电子部件供应商具有统一数据交换格式标准的要求。相比之下,Verilog HDL的商业气息更浓,它是在全球最大的EDA/ESDA供应商Cadence公司的支持下针对EDA工具专门开发的硬件描述语言。  2、Verilog HDL至今已有20多年的历史了,因此Verilog HDL拥有广泛的设计群体,成熟的资源远比VHDL丰富。同时Verilog HDL是从高级设计语言C语言发展而来的,相比VHDL而言更容易手,其编码风格也更为简洁明了,是一种非常容易掌握的硬件描述语言。

39 EDA设计导论- Verilog和VHDL比较
第一章  总的来说,它们有以下几点不同: 3、目前版本的Verilog HDL和VHDL在行为级抽象建模的覆盖范围方面也有所不同。一般认为Verilog HDL在系统抽象方面比VHDL要强一些,Verilog HDL比较适合算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)以及门级(Gate)的设计,而VHDL更适合特大型系统级(System)的设计。

40 EDA设计导论- HDL语言最新发展 第一章 随着设计规模的进一步扩大,当前超大规模集成电路的设计面临着这样一些问题:
  1、设计重用、知识产权和内核插入;   2、电路综合,特别是高层次的综合和混合模型的综合;   3、验证,包括仿真验证和形式验证等自动验证手段;   4、深亚微米效应。

41 EDA设计导论- HDL语言最新发展 第一章 目前对于一个系统芯片设计项目,可以采用的方案包括以下几种:
  最传统的办法是在系统级采用VHDL,在软件级采用C语言,在实现级采用Verilog。目前,VHDL和Verilog的互操作性已经逐步走向标准化,但软件与硬件的协调设计还是一个很具挑战性的工作,因为软件越来越成为SoC设计的关键。该方案的特点是:风险小,集成难度大,与原有方法完全兼容,有现成的开发工具,但工具集成由开发者自行负责完成。

42 EDA设计导论- HDL语言最新发展 第一章
2、系统级及软件级采用Superlog,硬件级和实现级均采用Verilog HDL描述,这样和原有的硬件设计可以兼容。只要重新采购两个Superlog开发工具STSTEMSIMTM和SYSTEMEXTM即可。   该方案特点是风险较小,易于集成,与原硬件设计兼容性好,有集成开发环境。

43 EDA设计导论- HDL语言最新发展 第一章
3、系统级和软件级采用SystemC,硬件级采用Verilog HDL,SystemC与常规的Verilog HDL互相转换,与原来的软件编译环境完全兼容。开发者只需要一组描述类库和一个包含仿真核的库,就可以在通常ANSI C++编译环境下开发,但硬件描述与原有方法完全不兼容。该方法特点是风险较大,与原软件开发兼容性好,硬件开发有风险。

44 EDA设计导论- HDL语言最新发展 第一章 随着设计规模的进一步扩大,当前超大规模集成电路的设计面临着这样一些问题:
  1、设计重用、知识产权和内核插入;   2、电路综合,特别是高层次的综合和混合模型的综合;   3、验证,包括仿真验证和形式验证等自动验证手段;   4、深亚微米效应。

45 Thank you! 第1章 习 题 1、说明EDA技术的发展阶段和每个阶段的特点。 2、说明EDA技术的含义和内容。
第1章 习 题 1、说明EDA技术的发展阶段和每个阶段的特点。  2、说明EDA技术的含义和内容。  3、比较电子系统传统设计方法和基于EDA技术的设计方法。  4、说明PLD的典型设计流程。  5、说明HDL语言的特点及其分类。  6、说明VHDL语言和Verilog语言的相同点和不同点。 Thank you!


Download ppt "EDA 原理及应用 何宾 2008.09 E - mail: hebin@mail.buct.edu.cn."

Similar presentations


Ads by Google