EDA原理及VHDL实现-电子创新网赛灵思中文社区.ppt

上传人:ga****84 文档编号:345126 上传时间:2018-09-24 格式:PPT 页数:68 大小:1.29MB
下载 相关 举报
EDA原理及VHDL实现-电子创新网赛灵思中文社区.ppt_第1页
第1页 / 共68页
EDA原理及VHDL实现-电子创新网赛灵思中文社区.ppt_第2页
第2页 / 共68页
EDA原理及VHDL实现-电子创新网赛灵思中文社区.ppt_第3页
第3页 / 共68页
EDA原理及VHDL实现-电子创新网赛灵思中文社区.ppt_第4页
第4页 / 共68页
EDA原理及VHDL实现-电子创新网赛灵思中文社区.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、EDA原理及VHDL实现(该课程为校级精品课程),何宾2011.09,课程内容,第1章 数字系统EDA设计概论第2章 可编程逻辑器件设计方法第3章 VHDL语言基础第4章 数字逻辑单元设计第5章 数字系统高级设计技术(*)第6章 基于HDL设计输入第7章 基于原理图设计输入第8章 设计综合和行为仿真第9章 设计实现和时序仿真,课程内容,第10章 设计下载和调试第11章 数字时钟设计及实现(*)第12章 通用异步接收发送器设计及实现(*)第13章 数字电压表设计及实现(*)第14章 软核处理器PicoBlaze原理及应用(*)注:带*的内容可根据课时的安排选讲,课程授课时间安排,该课程计划总学时

2、:56 其中: 理论教授课时:40 实验课时:16(大约安排实验6-7个),课程教学用书,理论教学参考用书: 1.何宾编著,清华大学出版社。2011.09。实验教学参考用书: 1. 何宾编著,,清华大学出版社。2009.07 2. 何宾编著,清华大学出版社 课程网络资源: http:/,课程所要解决的问题?,回忆大二所学数字电路课程,还留在你们心中的回忆:烦琐的卡诺图的化简(令你们和我一样抓狂) 如果让你手工化简多变量呢?估计你要崩溃想想在做电子课程设计中,你们要花大量的时间和精力把区区几个74LSXX的门电路,用大量的导线连接在一起。这个过程估计你们谁也头疼。你们也一定也知道在你们教科书的末

3、尾好象提到了一个称为硬件描述语言HDL的东西。老师没讲,忽略了,为什么啊?(这门课将要揭密),课程所要解决的问题?,当你们经历了以上的痛苦后,不知道你们想过下面的问题没有?能不能让计算机帮助化简卡诺图?而且是多个 变量? 能不能用一种芯片实现多个分离小规模数字IC的功能,并且在芯片内部将这些功能连接?设计数字系统能不能象C语言那样,只关心“如何描述”一个数字系统,而不是“如何具体实现”数字系统。,课程的重要性,该课程的学习对后续多门课程的学习起着重要的作用,比如微机原理、单片机、数字信号处理 、通信原理等和“数字”0和1有关课程。 该课程是从事电子系统设计相关专业学生必须掌握的内容。 大学生电

4、子设计竞赛也把该课程内容作为参赛学生应该掌握的内容之一。 你们慢慢体会吧,数字系统EDA技术发展概述,电子设计自动化(Electronics Design Automation, EDA)技术是一门迅速发展的新技术。 EDA设计就是在计算机上通过特定功能的软件开发工具,协助设计人员以全自动或半自动化方式完成所要求电子系统的设计。,数字系统EDA技术发展概述,EDA技术所涉及的领域相当广泛,业界一般将EDA技术分成: 狭义EDA技术 广义EDA技术,数字系统EDA技术发展概述,狭义EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编

5、程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的: 逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作 最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。,数字系统EDA技术发展概述,广义EDA技术,是通过计算机及其电子系统的辅助分析和设计软件,完成电子系统某一部分的设计过程。因此,广义EDA技术除了包含狭义的EDA技术外,还包括:计算机辅助分析CAA技术(如PSPICE,EWB,MATLAB等),印刷电路板计算机辅助设计P

6、CB-CAD技术(如PROTEL,ORCAD等)其它高频和射频设计和分析的工具等,数字系统设计技术发展历史,在过去的60年中,数字逻辑改变了整个世界,整个世界朝着数字化方向发展。今天我们所熟悉的计算机在第二次世界大战后才出现在人类世界中。 表1.1给出了在计算机和数字逻辑发展历史上的重大事件。 从该表可以看出数字逻辑设计技术经过了近400年的逐步进化的过程。,数字系统设计技术发展历史,数字系统设计技术发展历史,数字系统设计技术发展历史,数字系统设计技术发展历史,摩尔定律-“统治半导体世界的法则”,在1965年戈登.摩尔给出了世界上著名的“摩尔定律”,并且于1975年进行了修正,在过去的35年以

7、来,被证明是非常正确的。 该定律的内容是:集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍,当价格不变时;或者说,每一美元所能买到的电脑性能,将每隔18个月翻两倍以上。这一定律成为半导体工艺不断发展的指南。,摩尔定律-“统治半导体世界的法则”,图1.1 摩尔定律与集成电路的发展趋势,数字系统设计技术发展历史,今天你们每个人都离不开一样东西-“电脑”,也就是“微处理器”,但是以后在坐的各位,你们会发现你们也离不开另一样东西-“可编程逻辑器件”,我这门课程所介绍的东西。 你们也一定很好奇,别着急,听我后面慢慢介绍。,现代数字系统设计发展阶段,现在数字系统设计的发展是随着计

8、算机的出现、集成电路制造水平和电子系统设计方法的发展而不断发展的,主要经历了:计算机辅助设计(CAD,Computer Assist Design)计算机辅助工程设计(CAE,Computer Assist Engineering) 电子设计自动化(EDA,Electronic Design Automation)这几个阶段的特点和标志是什么?,集成电路芯片的发展历史,集成电路的发展分为了四个主要的阶段: 1)在上世纪六十年代早期出现了第一片集成电路,其集成的晶体管数量少于100个,该集成电路称为小规模集成电路(Small-Scale Integrated Circuit, SSI)。 2)在

9、上世纪六十年代后期出现了中规模集成电路(Medium-Scale Integrated Circuit, MSI),其集成的晶体管数量达到几百个。 3)在上世纪70年代中期,出现了大规模集成电路(Large-Scale Integrated Circuit, LSI),其集成的晶体管数量达到几千个。,集成电路芯片的发展历史,4)在上世纪80年代早期,出现了超大规模集成电路(Very-large-scale-integrated, VLSI),其集成的晶体管的数量超过了100,000个。 到上世纪80年代后期,集成的晶体管数量超过了1,000,000个。 到上世纪90年代,集成的晶体管数量超过了

10、10,000,000, 而到了2004年,这一数量已经超过了100,000,000个。现在这一数量突破1,000,000,000个。,可编程逻辑器件的发展历史,1第1阶段 上世纪70年代,可编程器件只有简单的可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦只读存储器(EEPROM)3种,由于结构的限制,它们只能完成简单的数字逻辑功能。,可编程逻辑器件的发展历史,2第2阶段 上世纪80年代,出现了结构上稍微复杂的可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)器件,正式被称为PLD,能够完成各种逻辑运算功能。,可编程逻辑器件的发展历史,3第3阶段 上世纪90年代,Xil

11、inx和Altera分别推出了与标准门阵列类似的FPGA和类似于PAL结构的扩展性CPLD。 4.第4阶段 本世纪初,在该阶段出现了SOPC技术,是PLD和ASIC技术融合的结果。可编程逻辑器件厂商也提供了SOPC解决方案。 典型的,Xilinx和Altera也推出了相应SOPC FPGA产品,制造工艺达到65nm/40nm/28nm工艺水平,系统门数也超过百万门。,数字系统设计方法概论,传统的数字系统的设计方法是画出逻辑图,这个图包含SSI的门和MSI的逻辑功能,然后人工通过真值表和通过卡诺图进行化简,得到最小的表达式,然后在基于TTL的LSI芯片上实现数字逻辑的功能。,数字系统设计方法概论

12、,然而从图1.1可以看出,到了上世纪80年代后期和90年代早期,这种设计方法遭遇了阻力。为什么呢? 问题就是如何能画一个原理图,这个原理图包含成千上万个门。正如在新的设计中可编程逻辑设备取代TTL芯片那样,需要一种新的设计方法来设计数字电路。 今天,计算机辅助设计工具(Computer-aided Tools, CAD),也称为EDA工具在当今的数字电路设计中是必须的。,数字系统设计方法概论,在过去数十年越来越清楚的表明,今天的数字系统的设计人员是通过写软件来设计数字电路的。这是最重要的例子,说明了从传统数字系统设计方法向现代的基于EDA工具的设计方法的转变。,数字系统设计方法概论,今天的数字

13、系统设计工程师使用硬件描述语言(Hardware Description Language, HDL)来设计数字系统。 最广泛使用的HDL语言是VHDL和Verilog HDL。这些语言允许设计人员通过写程序描述逻辑电路的行为来设计数字系统。 程序能用来仿真电路的操作和在CPLD、FPGA或者专用集成电路ASIC上综合出一个真正的实现。,SOP和POS表达式,术语“乘积”和“和”来自数学,用来描述与(AND)和或(OR)逻辑操作。 “乘积”定义为多个变量之间的AND关系。 “和”定义为任意数量逻辑变量的OR关系。 任何逻辑系统能用两种逻辑等效的方法表示,即积之和(Sum of Product,

14、 SOP)形式和和之积(Product of Sum, POS)形式。,SOP表达式,对于真值表的每一列,能生成一个乘积项,称为最小项。 最小项通过对输入变量相关的值“相与”AND得到。如果真值表特定的一行的变量值为1,则包含变量的名字,比如x。如果真值表特定的一行的变量值为0,则包含变量名字的取反,比如x,SOP表达式,SOP表达式,如果关心输出为1的行,可以发现当m1或者m2为真时,输出z为真。因此,可以写z,通过简单的OR上最小项(这些最小项输出为1)。 输出z可以表示为: z=m1|m2=(x&y) | (x&y),SOP表达式,POS表达式,现在关注的不是真值表输出为1的行,而是关注

15、的是真值表输出为0的行。如图1.4所示。,POS表达式,注意在这种情况下z是非NOT最小项 m0和非最小项m3,从前面的最小项的定义,使用德摩根De Morgan定理,得到: NOT m0=m0=(x & y)=(x|y)=x|y 称NOT m0为最大项M0。,POS表达式,得到z的POS表达式为: z=M0 & M3=(x | y) & ( x | y),POS表达式,传统数字系统设计流程,传统的数字系统设计基于传统的“人工”方式完成,当设计目标给定后,给出设计目标的真值表描述,然后使用卡诺图对真值表进行化简,得到最小的表达式,然后使用TTL的LSI电路实现最小的表达式,最后使用调试工具和仪

16、器,对系统进行调试。,传统数字系统设计流程,下面将通过一个例子来说明这个传统的设计过程。 1)设计目标:在一个共阳极的7段数码管上显示相对应的0-F的值。 2)设计目标的真值表描述:图1.2首先给出了七段数码管的符号表示,当其是共阳极时,只有相应的段给低电平0时,该段亮,否则灭。,传统数字系统设计流程,传统数字系统设计流程,3)使用卡诺图对真值表进行化简,图 1.3给出对于7段数码管e段的卡诺图化 简过程。 得到e段的最简单的逻辑表达式:e=x3& x0 | x3&x2&x1 | x2&x1&x0。 按照步骤3的过程分别得到a,b,c,d,f,g的最简逻辑表达式,这些最简表达式使用积之和(Su

17、m of Product, SOP)和和之积(Product of Sum, POS)表示。,传统数字系统设计流程,4)使用相应的TTL门电路来实现各段的最小表达式。 5)将这些门电路连接到7段数码管的各段,并进行调试。,传统数字系统设计流程,从上面的流程可以看出,所有的过程都需要人工完成,试想对于一个包含上百个逻辑门的多输入变量的结构,根本无法使用人工化简卡诺图实现。同时后续的电路调试和设计也需要很高的电路布局和布线的技巧,总而言之,这样的设计对于复杂数字系统来讲效率太低了。 我们需要进一步考虑的问题是,如何使用计算机帮助设计者简化设计过程,自动地化简卡诺图,并且在芯片内部自动实现布局布线。

18、要实现这些要求,就必须使用基于可编程逻辑器件的现代数字系统设计流程。,计算机最小化技术,从前面的数字系统设计流程中,可以看出使用卡诺图很容易在不超过4个逻辑变量的布尔函数中找到最少数目的乘积项。 然而许多的实际问题是,多于4个逻辑变量,并且卡诺图并不能帮助进行逻辑表达式的化简。 计算机软件程序能够帮助对多于4个逻辑变量的布尔函数进行简化。这些计算机方法使用基于表格的技术。这些方法能自动的用机器进行计算。了解这些方法的工作原理,将提供额外的智慧来简化布尔函数。 在本节所介绍的方法叫做“奎因-麦克斯基(Quine-McCluskey)”方法。还有其它算法比这个算法的化简速度更快,但是不能保证生成最

19、优化的化简。,计算机最小化技术 -表格表示,以乘积和形式出现的乘积项,这个乘积项用于表示布尔函数,称之为蕴含项。这是由于它暗示,如果任何乘积项为1时,函数将为1。比如,对于这个函数: f=x & y & z | x & z | x & y 其中:x & y & z,x & z和x & y三个乘积项称为蕴含项。在这种情况下,第一个乘积项是最小项m5。如果最小项5用二进制数表示为101,这三个二进制数字分别对应三个变量xyz(其中1对应的是变量的真值,0()对应的是变量的假值)。这样101是x & y & z的另一种描述方式。,计算机最小化技术 -表格表示,如果在一个乘积项中不包含一些变量时,插入

20、一个破折号“-”表示该变量,比如对于x & z表示为0-0,x & y表示为01-。 因此称这这些为表格表示或者表格形式的乘积项。,计算机最小化技术 -表格表示,下面例子对图1.4的卡罗图用表格表示。该例子中在4个圈起来输出为1的每个乘积项使用了表格进行表示。这样很容易对每个圈起来的集合的卡罗图符号得到表格的表示。表格中最开始的两位是行标号,后两位是列标号。如果圈起来的集合覆盖一个特殊位位置的0和1,该位位置变成-。,计算机最小化技术 -表格表示,通过扩展卡诺图中所圈1的集合来产生乘积项是可能的。比如,任意扩展它将覆盖图中的0,然后产生乘积项或者蕴含项,叫做本源蕴含项。这样的本源蕴含项中不能从

21、乘积项中去除变量,并且暗含着逻辑功能。下面将研究如何通过计算机找到这些本源蕴含项的方法。,计算机最小化技术 -本源蕴含项,该图中包含两个本源蕴含项x和y & z,其表格表示为1-和-10。下面将给出找到本源蕴含项的方法。,计算机最小化技术 -本源蕴含项,1. 如表1.3所示下面首先列出函数中所有的最小项。这些最小项以递增的顺序排列。在第一栏中划了一条线用来区分最小项里有1个1,两个1和3个1 .,计算机最小化技术 -本源蕴含项,下一步将比较第一栏中的每个最小项,方法是每个最小项和该栏中其它最小项进行比较,这个最小项和其它最小项只相差一个数字位。由于以递增的顺序排列最小项,因此比较相邻区域的最小

22、项(用线分割)。,计算机最小化技术 -本源蕴含项,在这个例子中,所有的找到的本源蕴含项用来产生最小项函数。但并不总是这种情况。有时存在冗余的本源蕴含项,这些蕴含项不需要覆盖函数中的所有最小项。下面将给出一个例子来说明不需要使用所有的本源蕴含项来生成最小项函数。,计算机最小化技术 -必要的本源蕴含项,考虑图1.6表示的布尔函数。下面通过Quine-McCluskey方法来化简这个函数。,计算机最小化技术 -必要的本源蕴含项,计算机最小化技术 -必要的本源蕴含项,表1.5 找到必要本源蕴含项的步骤,计算机最小化技术 -必要的本源蕴含项,只有那些有一个X的特殊的蕴含项,用于作为最终函数的一部分。称这

23、些本源蕴含项称为必要的本源蕴含项。 注意在表1.5中只有两个最小项5和8,只有一个X。这些X对应于两个本源蕴含项0-1和-0-0,这两个蕴含项画“”,表示其作为必要的本源蕴含项 . 注意,覆盖了除14和15外的所有最小项,表中清楚表明了,本源蕴含项111-将覆盖最小项14和15,因此将这个本源蕴含项添加到两个本源蕴含项中,得到最终的简化函数。,计算机最小化技术 -必要的本源蕴含项,该最简函数表示为: f=x & z | w & z | w & x & y,现代数字系统设计流程,如图1.7所示,其设计流程包括:设计目标、设计输入、功能仿真、综合优化、综合后仿真、实现(FPGA设计)或适配(CPL

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

25、HDL硬件描述语言概念,在HDL语言出现之前,已有了许多程序设计语言,如汇编、C、Pascal、Fortran、Prolog等。 它们适合于描述过程和算法,不适合作硬件描述。 这些高级语言和HDL语言的一个最重要的本质区别: C语言是在CPU上运行的, CPU的运行是靠程序计数器推动的,当然也是串行执行的。 HDL语言最终是要在芯片内生成数字电路, 数字电路的工作是靠信号流推动的, 信号流是可以并行存在的, 当然也是并行执行的. 所以, HDL生成的数字电路工作速度比C代码快几十倍甚至上百倍.(移位寄存器的C语言实现和HDL实现是最好的例子),HDL硬件描述语言概念,传统的用原理图设计电路的方

26、法已逐渐消失,取而代之,HDL语言正被人们广泛接受,出现这种情况有以下几点原因: (1)电路设计将继续保持向大规模和高复杂度发展的趋势。 (2)电子领域的竞争越来越激烈,刚刚涉入电子市场的成员要面对巨大的压力:提高逻辑设计的效率,降低设计成本,更重要的是缩短设计周期。 (3)使用硬件语言描述将使检测各种设计方案变成一件很容易、很方便的事情,因为对方案的修改只需要修改HDL程序就行了,这比修改原理图要方便得多。,HDL语言特点,1. HDL语言既包含一些高层程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体构件。 2. HDL语言是并发的,即具有在同一时刻执行多任务的能力。一般来讲编程语言

27、是非并行的,但在实际硬件中许多操作都是在同一时刻发生的,所以HDL语言具有并发的特征。 3. HDL语言有时序的概念。一般来讲,编程语言是没有时序概念的,但在硬件电路中从输入到输出总是有延迟存在的,HDL语言需要建立时序的概念。 4. 通过使用结构级或行为级描述可以在不同的抽象层次描述设计,HDL语言采用自顶向下的数字电路设计方法,主要包括3个领域5个抽象层次.,HDL语言特点 -Verilog和VHDL比较,Verilog HDL和VHDL是目前两种最常用的硬件描述语言,同时也都是IEEE标准化的HDL语言。总的来说,它们有一下几点不同: 1. 从推出的过程来看,VHDL偏重于标准化的考虑,

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

29、容易掌握的硬件描述语言。,HDL语言特点 -Verilog和VHDL比较,3. 目前版本的Verilog HDL和VHDL在行为级抽象建模的覆盖范围方面也有所不同。 一般认为Verilog HDL在系统抽象方面比VHDL要强一些. Verilog HDL比较适合算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)以及门级(Gate)的设计; VHDL更适合特大型系统级(System)的设计。,习题,1、了解数字逻辑发展历史上的重大事件。 2、说明现代数字系统设计的发展阶段。 3、说明半导体集成电路和可编程逻辑器件的发展阶 段。 4、说明SOP和POS表达式的定义。 5、说明传统数字系统设计流程-麦克斯基算法进 行最小化化简的步骤。 6、说明现代数字系统设计流程。 7、说明VHDL和Verilog语言的特点。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。