基于EDA技术的加法器设计毕业论文_第1页
基于EDA技术的加法器设计毕业论文_第2页
基于EDA技术的加法器设计毕业论文_第3页
基于EDA技术的加法器设计毕业论文_第4页
基于EDA技术的加法器设计毕业论文_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、黑龙江东方学院毕 业 论 文 (设 计)题目:基于eda技术的加法器设计学生姓名 学 号09103225专 业电子信息工程班 级2009级2班指导教师 学 部计算机科学与电气工程答辩日期2013年5月18日黑龙江东方学院本科生毕业论文(设计)评语(一)姓名 学号09103225专业班级电子信息工程2班总成绩毕业论文(设计)题目: 基于eda技术的加法器设计答辩委员会评语答辩成绩主任签字: 年 月 日答辩委员会成员签字学部毕业论文(设计)领导小组意见组长签字: 年 月 日 学部公章黑龙江东方学院本科生毕业论文(设计)评语(二)姓名 学号09103225专业班级电子信息工程2班毕业论文(设计)题目

2、:基于eda技术的加法器设计指导教师评语指导教师成绩在整个毕业论文设计过程中,该同学能在老师的要求下顺利完成毕业设计和论文的撰写工作。论文结构完整,各部分符合论文的写作规范,论述比较充分,条理也很清晰。该生查阅大量文献资料,全面收集相关材料。已能熟练使用eda软件,并完成了加法器的设计、编程和仿真过程,仿真结果符合论文的要求。完成了任务书中所要求全部内容,编程调试能力有了较大程度提高。本论文达到了本科毕业生的基本要求,同意参加答辩。指导教师签字: 年 月 日黑龙江东方学院本科生毕业论文(设计)评语(三)姓名 学号09103225专业班级电子信息工程2班毕业论文(设计)题目: 基于eda技术的加

3、法器设计评阅教师评语评阅教师成绩评阅教师签字: 年 月 日黑龙江东方学院本科生毕业论文(设计)任务书姓名 学号09103225专业班级电子信息工程09级2班毕业论文(设计)题目:基于eda技术的加法器毕业论文(设计)的立题依据加法器在科技迅猛发展的今天在人们日常生活中起到有为重要的角色,它涉及到许多集成电路,应用在很多计算机和设备当中,不可或缺。本次毕业设计确立乘法器为论文立题可以进一步掌握eda技术,更好的研究eda的功能和实际作用,具有很大的现实意义。主要内容及要求本毕业设计的主要内容是对eda平台进行了简要概述,对加法器的研究背景简单的进行介绍。随后进行加法器设计,描述了设计的基本方法,

4、讲解了加法器的工作原理。介绍了加法器的种类,每个种类的特质,并通过原理图进行原理只管直观讲解。在一定的理论和资料基础上进行了仿真和调试,通过波形体现实验结果。最后对仿真和调试过程中遇到的问题进行总结和分析。总结心得体会,编写了实验结论。罗列出文章中借鉴的参考文献。在论文最后提供出程序和对在毕业设计中给与我帮助的人致以深深的谢意。了解eda基本知识,学习相关应用软件,进行课题设计。在静态数码管显示加数、被加数和结果。用拨码开关设置和被加数。进度安排9 月20日选题9 月21日10月31日接受指导老师的指导11月1 日11月17日拟定论文大纲11月18日12月20日搜集、查阅、整理相关资料12月2

5、1日3 月31日初稿形成4 月1 日4 月7 日初稿审定4 月8 日4 月14日第一次修改4 月15日4 月21日第一次审定4 月22日4 月28 日第二次修改4 月29日5 月12日定稿5 月13日5 月17日论文评阅小组评审论文(设计)5 月18日毕业论文(设计)答辩学生签字:指导教师签字:年 月 日基于eda技术的加法器设计 摘要随着电子技术和计算机技术的飞速发展,电子线路的设计工作也日益显得重要。经过人工设计、制作实验板、调试再修改的多次循环才定型的传统产品设计方法必然被计算机辅助设计所取代,因为这种费时费力又费资源的设计调试方法既增加了产品开发的成本,又受到实验工作场地及仪器设备的限

6、制。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如cpld、fpga)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了eda技术的迅速发展。 利用eda工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计

7、、性能分析到设计出ic版图或pcb版图的整个过程的计算机上自动处理完成。现在对eda的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有eda的应用。目前eda技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到eda技术。关键词:eda技术;pcb;计算机;电路设计adder design based on eda technologyabstractwith the rapid development of electronic technology and compu

8、ter technology, electronic circuit design work is increasingly more important. artificial design, production experiment board, debug and modify the traditional approach to product design cycle many times before stereotypes must be computer-aided design replaced, because this time-consuming and expen

9、sive resources design debugging method not only increasing the cost of product development, also subject to the restrictions of the the experimental workplace and equipment.in the 1990s, the international electronics and computer technology more advanced countries, has been actively explore new elec

10、tronic circuit design, and design methods, tools and other radical changes, and was a great success. in the field of electronic technology design, the application of programmable logic devices (such as cpld, fpga), has been widely popular, these devices have brought a great deal of flexibility for t

11、he design of digital systems. these devices can be programmed by software and its hardware structure and ways of working to reconstruct, so that the design of the hardware as convenient as software design. all this has greatly changed the traditional digital system design methods, the design process

12、 and design concepts, and promote the rapid development of eda technology.eda tools, electronics designers can start designing concepts, algorithms, protocols and other electronic systems, a lot of work can be done by computer and electronic products to ic layout design or pcb layout of the whole pr

13、ocess from the circuit design, performance analysis processing is completed automatically on your computer.eda concept or scope is very wide. including machinery, electronics, communications, aerospace, chemical, mineral, biological, medical, military and other fields, there is eda applications. eda

14、 technology in major companies, enterprises and scientific research and teaching departments widely used. for example, in the aircraft manufacturing process, from design, performance testing and characterization analysis until the flight simulation, may be involved in the eda technology. keywords: e

15、da technology;pcb;computer;circuit design此行不会被打印千万不要删除行尾的分节符,此行不会被打印。(在word菜单-工具-选项-视图标签中,格式标记部分请全部打对号,这样就可以看到隐藏的分节符和空格等信息了)目录摘要iabstractii第1章 绪论11.1 eda软件发展11.1.1 eda技术21.1.2 加法器的研究背景31.2 加法器41.2.1 加法器基本方法51.2.2 加法器工作原理61.2.3 加法器类型71.3 全加器8第2章 加法器基本原理102.1 加法器原理图102.1.1 原理介绍102.2 全加器原理图132.3 四位全加器原

16、理图132.4 本章小结14第3章 设计环境与程序153.1 设计环境153.2 一位全加器153.2.1 一位全加器设计总程序及解释163.3 四位加法器193.4 本章小结20第4章 仿真与调试214.1 一位全加器仿真与调试214.2 四位加法器仿真224.3 本章小结25第5章 加法器延伸设计265.1 传播进位加法器程序265.1.1 传播进位加法器仿真275.2 线形进位加法器设计285.2.1 设计原理285.2.2 线形进位加法器程序285.2.3 线形进位加法器仿真295.3 本章小结30第6章 心得体会316.1 心得体会31结论32参考文献33附录34致谢35千万不要删除

17、行尾的分节符,此行不会被打印。在目录上点右键“更新域”,然后“更新整个目录”基于eda技术的加法器设计第1章 绪论1.1 eda软件发展 在电子设计自动化(英语:electronic design automation,缩写:eda)出现之前,设计人员必须手工完成集成电路的设计、布线等工作,这是因为当时所谓集成电路的复杂程度远不及现在。工业界开始使用几何学方法来制造用于电路光绘(photo plotter)的胶带。到了1970年代中期,开发人应尝试将整个设计过程自动化,而不仅仅满足于自动完成掩膜草图。第一个电路布线、布局工具研发成功。设计自动化会议(design automation conf

18、erence)在这一时期被创立,旨在促进电子设计自动化的发展。电子设计自动化发展的下一个重要阶段以卡弗尔米德(carver mead)和琳康维于1980年发表的论文超大规模集成电路系统导论(introduction to vlsi systems)为标志。这一篇具有重大意义的论文提出了通过编程语言来进行芯片设计的新思想。如果这一想法得到实现,芯片设计的复杂程度可以得到显著提升。这主要得益于用来进行集成电路逻辑仿真、功能验证的工具的性能得到相当的改善。随着计算机仿真技术的发展,设计项目可以在构建实际硬件电路之前进行仿真,芯片布线布局对人工设计的要求降低,而且软件错误率不断降低。直至今日,尽管所用

19、的语言和工具仍然不断在发展,但是通过编程语言来设计、验证电路预期行为,利用工具软件综合得到低抽象级物理设计的这种途径,仍然是数字集成电路设计的基础。从1981年开始,电子设计自动化逐渐开始商业化。1984年的设计自动化会议(design automation conference)上还举办了第一个以电子设计自动化为主题的销售展览。gateway设计自动化在1986年推出了一种硬件描述语言verilog,这种语言在现在是最流行的高级抽象设计语言。1987年,在美国国防部的资助下,另一种硬件描述语言vhdl被创造出来。现代的电子设计自动化设计工具可以识别、读取不同类型的硬件描述。根据这些语言规范产

20、生的各种仿真系统迅速被推出,使得设计人员可对设计的芯片进行直接仿真。后来,技术的发展更侧重于逻辑综合。目前的数字集成电路的设计都比较模块化(参见集成电路设计、设计收敛(design closure)和设计流(design flow (eda))。半导体器件制造工艺需要标准化的设计描述,高抽象级的描述将被编译为信息单元(cell)的形式。设计人员在进行逻辑设计时尚无需考虑信息单元的具体硬件工艺。利用特定的集成电路制造工艺来实现硬件电路,信息单元就会实施预定义的逻辑或其他电子功能。半导体硬件厂商大多会为它们制造的元件提供“元件库”,并提供相应的标准化仿真模型。相比数字的电子设计自动化工具,模拟系统

21、的电子设计自动化工具大多并非模块化的,这是因为模拟电路的功能更加复杂,而且不同部分的相互影响较强,而且作用规律复杂,电子元件大多没有那么理想。verilog ams就是一种用于模拟电子设计的硬件描述语言。此文,设计人员可以使用硬件验证语言来完成项目的验证工作目前最新的发展趋势是将集描述语言、验证语言集成为一体,典型的例子有systemverilog。随着集成电路规模的扩大、半导体技术的发展,电子设计自动化的重要性急剧增加。这些工具的使用者包括半导体器件制造中心的硬件技术人员,他们的工作是操作半导体器件制造设备并管理整个工作车间。一些以设计为主要业务的公司,也会使用电子设计自动化软件来评估制造部

22、门是否能够适应新的设计任务。电子设计自动化工具还被用来将设计的功能导入到类似现场可编程逻辑门阵列的半定制可编程逻辑器件,或者生产全定制的专用集成电路。1.1.1 eda技术eda技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用eda工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出ic版图或pcb版图的整个过程的计算机上自动处理完成。20世纪90年代,国际上电子和计算机技术较为先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等

23、方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如cpld、fpga)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了eda技术的迅速发展。eda技术就是以计算机为工具,设计者在eda软件平台上,用硬件描述语言vhdl完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。eda技术的出

24、现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。eda技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用eda工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出ic版图或pcb版图的整个过程的计算机上自动处理完成。现在对eda的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有eda的应用。目前eda技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、

25、性能测试及特性分析直到飞行模拟,都可能涉及到eda技术。本文所指的eda技术,主要针对电子电路设计、pcb设计和ic设计。eda设计可分为系统级、电路级和物理实现级。1.1.2 加法器的研究背景人类社会的发展已经进入了信息时代,各种信息技术构成了信息时代的基础。目前,与信息相关的计算机、微电子及通讯技术己经成为推动社会进步和国家发展的关键技术,而微电子技术又是信息技术的基础,因此集成电路产业己经成为整个电子信息产业的命脉。到目前为止我国已经成为世界电子信息产品的主要生产国,对集成电路需求的增长是非常惊人的,而我们国内在这方面的供应能力显示出明显不足。发展中国的集成电路,成了中国政府产业政策的主

26、导方向。2000 年 6 月,国务院下发了鼓励软件产业和集成电路产业发展的若干政策,引导、鼓励资金、技术和人才等资源投向集成电路产业。加法器作为各类集成电路模块的核心部件,其重要性不可忽略。加法运算是最重要最基本的运算,所有的其他基本算术运算,如减法、乘法、除法运算等最终都能归结为加法运算。当今,加法器的设计面临两大课题,首先是如何降低功耗。随着便携式 ic 产品例如 mp3 播放器,手机和掌上电脑等的广泛使用,要求ic 工程师对现有运算模块的性能作进一步改进,尤其是在电路的功耗和尺寸方面。由于现在相应的电池技术难以和微电子技术的发展速度匹敌,这使得 ic 设计师遇到了许多限制因素,比如高速,

27、大吞吐量,小尺寸,低功耗等。因此,这使得研究低功耗高性能加法单元持续升温。另一方面就是如何提高加法器的运算速度。因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于它的位相关。因此,为了减少进位传输所耗的时间,提高计算速度,人们设计了多种类型的加法器,如超前进位加法器(carry lookahead adders, cla)、曼彻斯特加法器(manchester adder)、进位旁路加法器(carry skip adders, cska)、进位选择加法器(carry select adders,csla)等。它们都是利用各位之间的状态来预先产生高位的进位信号,从而减少进位从低位向高位

28、传递的时间。1.2 加法器加法器是为了实现加法的。即是产生数的和的装置。加数和被加数为输入,和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。对于1位的二进制加法,相关的有五个的量:1,被加数a,2,被加数b,3,前一位的进位cin,4,此位二数相加的和s,5,此位二数相加产生的进位cout。前三个量为输入量,后两个量为输出量,五个量均为1位。对于32位的二进制加法,相关的也有五个量:1,被加数a(32位),2,被加数b(32位),3,前一位的进位cin(1位),4,此位二数相加的和s(32

29、位),5,此位二数相加产生的进位cout(1位)。要实现32位的二进制加法,一种自然的想法就是将1位的二进制加法重复32次(即逐位进位加法器)。这样做无疑是可行且易行的,但由于每一位的cin都是由前一位的cout提供的,所以第2位必须在第1位计算出结果后,才能开始计算;第3位必须在第2位计算出结果后,才能开始计算,等等。而最后的第32位必须在前31位全部计算出结果后,才能开始计算。这样的方法,使得实现32位的二进制加法所需的时间是实现1位的二进制加法的时间的32倍。1.2.1 加法器基本方法可以看出,上法是将32位的加法1位1位串行进行的,要缩短进行的时间,就应设法使上叙进行过程并行化。逐位进

30、位加法器,在每一位的计算时,都在等待前一位的进位。那么不妨预先考虑进位输入的所有可能,对于二进制加法来说,就是0与1两种可能,并提前计算出若干位针对这两种可能性的结果。等到前一位的进位来到时,可以通过一个双路开关选出输出结果。这就是进位选择加法器的思想。 加法器提前计算多少位的数据为宜?同为32位的情况:线形进位选择加法器,方法是分n级,每级计算32/n位;平方根进位选择加法器,考虑到使两个路径(1,提前计算出若干位针对这两种可能性的结果的路径,2,上一位的进位通过前面的结构的路径)的延时达到相等或是近似。方法,或是2345666即第一级相加2位,第二级3位,第三级4位,第四级5位,第五级6位

31、,第六级6位,第七级6位;或是345677即第一级相加3位,第二级4位,第三级5位,第四级6位,第五级7位,第六级7位。进一步分析加法进行的机制,可以使加法器的结构进一步并行化。令g = ab,p = ab,则cout(g,p) = g + pcin,s(g,p)=pcin。由此,a,b,cin,s,cout五者的关系,变为了g,p,cin,s,cout五者的关系。再定义点运算(),(g,p)(g,p)=(g + pg,pp),可以分解(g 3:2,p3:2) =(g3,p3)(g2,p2)。点运算服从结合律,但不符合交换律。点运算只与g,p有关而与cin无关,也就是可以通过只对前面若干位g,

32、p进行点运算计算,就能得到第n位的gn:m,pn:m值,当取m为0时,获得的gn:0,pn:0即可与初使的cin一起代入cout(g,p) = g + pcin,s(g,p)=pcin,得到此位的cout,s;而每一位的g,p值又只与该位的a,b值即输入值有关,所以在开始进行运算后,就能并行的得到每一位的g,p值。以上分析产生了超前进位加法器的思想:三步运算,1,由输入的a,b算出每一位的g,p;2,由各位的g,p算出每一位的gn:0,pn:0;3,由每一位的gn:0,pn:0与cin算出每一位的cout,s。其中第1,3步显然是可以并行处理的,计算的主要复杂度集中在了第2步。第2步的并行化,

33、也就是实现gn:0,pn:0的点运算分解的并行化。图 1-1 加法器连接图1.2.2 加法器工作原理加法器是数字系统中的基本逻辑器件,例如为了节省逻辑资源减法器和硬件乘法器都可由加法器来构成。宽位的加法器的设计是十分耗费硬件资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度两方面的问题。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生,逻辑运算速度较快;串行进位方式是将全加器级联构成多位加法器并行进位。实验表明,4 位二进制并行加法器和串行级联加法器占用几乎相同的资源。设一个n位的加法器的第i位输入为ai、bi、ci,输出si和ci+1,

34、其中ci是低位来的进位,ci+1(i=n-1,n-2,1,0)是向高位的进位,c0是整个加法器的进位输入,而cn是整个加法器的进位输出。则和si=aiii+ibii+iici+aibici ,(1) 加法器进位ci+1=aibi+aici+bici ,(2)令 gi=aibi, (3)pi=ai+bi, (4)则 ci+1= gi+pici, (5) 只要aibi=1,就会产生向i+1位的进位,称g为进位产生函数;同样,只要ai+bi=1,就会把ci传递到i+1位,所以称p为进位传递函数。把式(5)展开,得到:ci+1= gi+ pigi-1+pipi-1gi-2+ pipi-1p1g0+ p

35、ipi-1p0c0(6) 。随着位数的增加式(6)会加长,但总保持三个逻辑级的深度,因此形成进位的延迟是与位数无关的常数。一旦进位(c1cn-1)算出以后,和也就可由式(1)得出。使用上述公式来并行产生所有进位的加法器就是超前进位加法器。产生gi和pi需要一级门延迟,ci 需要两级,si需要两级,总共需要五级门延迟。与串联加法器(一般要2n级门延迟)相比,(特别是n比较大的时候)超前进位加法器的延迟时间大大缩短了。图1-2 加法器工作原理图1.2.3 加法器类型以单位元的加法器来说,有两种基本的类型:半加器和全加器 加法器半加器有两个输入和两个输出,输入可以标识为 a、b 或 x、y,输出通常

36、标识为合 s 和进制 c。a 和 b 经 xor 运算后即为 s,经 and 运算后即为 c。全加器引入了进制值的输入,以计算较大的数。为区分全加器的两个进制线,在输入端的记作 ci 或 cin,在输出端的则记作 co 或 cout。半加器简写为 h.a.,全加器简写为 f.a.。半加器:半加器的电路图半加器有两个二进制的输入,其将输入的值相加,并输出结果到和(sum)和进制(carry)。半加器虽能产生进制值,但半加器本身并不能处理进制值。全加器:全加器三个二进制的输入,其中一个是进制值的输入,所以全加器可以处理进制值。全加器可以用两个半加器组合而成。注意,进制输出端的最末个or闸,也可用x

37、or闸来代替,且无需更改其余的部分。因为 or 闸和 xor 闸只有当输入皆为 1 时才有差别,而这个可能性已不存在。1.3 全加器用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。全加器是能够计算低位进位的二进制加法电路。 一位全加器(fa)的逻辑表达式为:s=abcinco=ab+bcin+acin其中a,b为要相加的数,cin为进位输入;s为和,co是进位输出;如果要实现多位加法可以进行级联,就是串起来使用;比如32位+32位,就需要32个全加器;这种级联就是串行结构速度慢,如果要并行

38、快速相加可以用超前进位加法,超前进位加法前查阅相关资料;如果将全加器的输入置换成a和b的组合函数xi和y(s0s3控制),然后再将x,y和进位数通过全加器进行全加,就是alu的逻辑结构结构。即 x=f(a,b)y=f(a,b)不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。第2章 加法器基本原理2.1 加法器原理图图 2-1 加法器原理图2.1.1 原理介绍考虑两个二进制数字 x 和 y。他们的二进制“和”用“x+y”表示如下:0+0=00+1=11+0=11+1=10这里最后一行的结果是二进制数 10(即是十进制中的 2)。这一简单的例子说明了有关加法的问题。如果取

39、两个 r 进制的数字,其范围为 0,1,(r-1),那么这两个数的和可能超出这一组数字本身的范围。自然这就是“进位输出”概念的来源。在“二进制”和“1+1”中,其结果 10 被看成是一个 0 以及一个左移的 1,后者即为“进位输出 1”。一个半加器电路有两个输入(x 和 y)以及两个输出(和 s 与进位输出 c)。半输出由以下的基本逻辑方程给出:s = x y式(2-1)c = x i y式(2-2)它们可以直接从表中推导出来。这个单元的 verilog 高层行为描述可以写成:module half_adder (sum, c_out, x, y);input x, y;output sum,

40、 c_out;assign c_out, sum=x+y;endmodule4低功耗超高速 cmos 加法器设计研究这里的 x 和 y 定义为单个二进制位,然后运用连接算子 得到两位的结果。这一算子按列出的顺序“连接”两个二进制部分以形成单一的结果。另一方面,也可构成如图所示的门级电路。以下是由如下的门级电路结构模型描述的:module half_adder_gate(sum, c_out, x, y);input x, y;output sum, c_out;and (c_out, x, y);xor (sum, x, y);endmodule图 2-2 半加器图 2-3 为全加器的符号,三

41、个输入 ai, bi, ci相加产生两个输出:“和”si与“进位”ci+1。图 2-3 全加器符号图2-5 一位全加器真值表由此可知,一个全加器可以由两个半加器模块来构成,如图所示。图 2-4 全加器逻辑电路2.2 全加器原理图图 2-5 全加器原理图2.3 四位全加器原理图图 2-6 四位全加器原理图2.4 本章小结本章主要介绍个逻辑电路:加法器,半加法器,全加器,四位全加器。并且对每种逻辑电路进行介绍,罗列出半加法器真值表,各逻辑电路。这些逻辑电路都是组成毕业设计需要掌握的逻辑电路。通过对其原理及电路图的收集。使我对整体毕业设计的全貌有了更进一步的深刻认识。第3章 设计环境与程序3.1 设

42、计环境本次eda加法器设计主要使用软件quartusii9.0。下面就此软件做以下介绍。quartusii是altera公司推出的cpld/fpga开发工具,quartusii提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、veriloghdl、ahdl、和vhdl我们完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;logiclock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块。quartusii的基本特点:功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时、时序分析与

43、关键路径延时分析;可使用signaltapii逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;实用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的edif网表文件、vhdl网表文件和verilog网表文件;能生成第三方eda软件使用的vhdl网表文件和verilog网表文件;3.2 一位全加器基于quartus进行eda设计开发一个用门电路实现两个二进数相加并求出和的组合线路,即全加器。图 4-1 1位全加器逻辑原理图1位全加器可由两个半加器组成,在半加器的基础上,采用元件调用和例化语句,将件连接起来,而实

44、现全加器的vhdl编程和整体功能。全加器包含了两个半加器和一个或门。1 位半加器的端口信号a和b 分别是两位相加的二进制输入信号,so 是相加和的输出信号,co 是进位输出信号,左边的门电路结构构成了右边的半加器h_adder 。而在硬件上可以利用半加器构成如图1 所示的全加器,当然还可以将一组这样的全加器级联起来构成一个串行进位的加法器。图1中,全加器f_adder 内部的功能结构是由3 个逻辑器件构成的即由两个半加器u1、u2 和一个或门u3 连接而成。图2 是利用vhdl 对图1中全加器的逻辑原理图的完整描述,可以在任何一个支持vhdl的eda平台上进行编译、综合、时序仿真,直至编程配置

45、于选定的目标器件中。图 4-2 1位全加器逻辑原理图3.2.1 一位全加器设计总程序及解释-或门逻辑描述library ieee ;use ieee.std_logic_1164.all;entity or2 isport (a,b :in std_logic; c : out std_logic );end entity or2architecture fu1 of or2 isbeginc = a or b ;end architecture fu1;-半加器描述library ieee;use ieee.std_logic_1164.all;entity h_adder isport (

46、a b : in std_logic; co, so : out std_logic);end entity h_adderarchitecture fh1 of h_adder isbeginso = (a or b)and(a nand b);co ain b =bin co=d so =e); u2 : h_adder port map( a =e b =cin co =f so =sum); u3 : or2 port map(a =d b =f c =cout);end architecture fd1 ;对于对数综合器来说,程序所列的全部程序可以同时输入相应的eda 软件进行编译,

47、也能以单独的元件模块分别进行编辑、文件存档、编译和综合。程序中共有3 个独立的vhdl 设计模块即2 个元件模块和一个顶层设计模块f_adder 存档的文件名最好与对应的vhdl 程序的实体一致如可分别将它们取名为or2.vhd h_adder.vhd和f_adder.vhd。 程序的解析如下:(1) 作为文件说明部分由双横线“-” 引导了一段注释语句在vhdl 程序的任何一行中双横线“-”后的文字都不参加编译和综合(2) 实体or2 语句段定义了或门or2 的引脚信号a b (输入)和c (输出) 其结构体语句段描述了输入与输出信号间的逻辑关系,即将输入信号a b 相或后传给输出信号端c。由

48、此实体和结构体描述了一个完整的或门元件,这一描述可以进行独立编译、独立综合与存档,或被其它的电路系统所调用。(3) 实体h_adder 和结构体fh1 描述了一个如图2 所示的半加器,由其结构体的描述可以看到,它是由一个与非门、一个非门、一个或门和一个与门连接而成的,其逻辑关系来自于半加器真值表(表1)。 在vhdl中,逻辑算符nand、not、or 和and分别代表与非非或和与四种逻辑运算关系(4) 在全加器接口逻辑即顶层文件的vhdl 描述中,根据图1右侧的1位二进全加器f_adder 的原理图,其实体定义了引脚的端口信号属性和数据类型。其中,ain 和bin 分别为两个输入的相加位,ci

49、n 为低位进位输入,cout 为进位输出,sum为1位和输出。结构体fd1的功能是利用component 和component 例化语句将上面由两个实体or2 和h_adder 描述的独立器件,按照图1全加器内部逻辑原理图中的接线方式连接起来。(5) 在结构体fd1中,component end component 语句结构对所要调用的或门和半加器两个元件作了声明(component declaration),并由signal 语句定义了三个信号d、e和f作为中间信号转存点,以利于几个器件间的信号连接。接下去的port map( ) 语句称为元件例化语句(component instantia

50、tion)。所谓例化,在电路板上,相当于往上装配元器件;在逻辑原理图上,相当于从元件库中取了一个元件符号放在电路原理图上,并对此符号的各引脚进行连线。例化也可理解为元件映射或元件连接,map 是映射的意思。例如由u2指示的语句表示将实体h_adder 描述的元件的引脚信号a、b、co和so分别连向外部信号e、cin、f、和sum符号=表示信号连接。(6) 由图1可见,实体f_adder 引导的逻辑描述也是由三个主要部分构成的,即库、实体和结构体。从表面上看来,库的部分仅包含了一个ieee 标准库和打开的ieee.std_logic_1164.all 程序包但实际上从结构体的描述中可以看出,对外

51、部的逻辑有调用的操作,这类似于对库或程序包中的内容作了调用。因此,库结构部分还应将上面的或门和半加器的vhdl描述包括进去,作为工作库中的两个待调用的元件。由此可见,库结构也是vhdl 程序的重要组成部分。3.3 四位加法器设置三个信号变量:signal c0,c1,c2 : std_logic;使s的每一位都为a、b对应位上以及低进位的异或:(每一位都类似一位全加器,如0+1=1,0与1取异或结果也是1)s(0) = a(0) xor b(0) xor ci;使信号变量代表的中间低进位为a、b以及低进位两两取并再取或:(如若低进位ci=0,a、b都等于1,a+b=1+1=0,进位是1,则1与

52、1取并为1,1与0取并为0,1与0取并为0,1、0、0取或为1,及得到进位结果也是1)c0 = (a(0) and b(0) or (a(0) and ci) or (b(0) and ci);同上,高进位取a、b最高位之和的进位即可:co = (a(3) and b(3) or (a(3) and c2) or (b(3) and c2);举例:ci=0,a=0101(=5),b=1001(=9),s=1110(=14),从最低位看起,,s(0)=0xor1xor1=0,c0=(0and 1) or(0and1)or(1and 1)=1,以此类推,即可得到s的值。使用quartusii软件编

53、写程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder4b isport(c4:in std_logic;a4:in std_logic_vector(3 downto 0);b4:in std_logic_vector(3 downto 0);s4: out std_logic_vector(3 downto 0);co4: out std_logic);end entity adder4b;architecture art of adder4b issignal s5:std_logic_vector(4 downto 0);signal a5,b5:std_logic_vector(4 downto 0);begina5=0&a4;b5=0&b4;s5=a5+b5+c4;s4=s5(3 downto 0);co4=s5(4);end architecture art;3.4 本章小结本章主要介绍各个加法器对于eda的而编写的程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论