《4位全加器设计解析.docx》由会员分享,可在线阅读,更多相关《4位全加器设计解析.docx(13页珍藏版)》请在课桌文档上搜索。
1、可编程逻辑器件设计大作业题目学院班级姓名学号四位全加器设计自动化与电气工程学院2104年12月30日书目摘要O1 .设计目的12 .设计要求13 .设计原理13.1. 四位全加器132四位全加器的原理图34 .设计方案34.1. 仿真软件34.2. 全加器原理44.2.1 一位全加器的设计与原理44.2.2 四位全加器的原理及程序设计45 .程序设计66 .仿真及结果7总结与体会9参考文献10摘要VHD1.主要用于描述数字系统的结构,行为,功能和接口。除了含有很多具有硬件特征的语句外,VHD1.的语言形式、描述风格以及语法是非常类似于一般的计算机高级语言。VHD1.的程序结构特点是将一项工程设
2、计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不行视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以干脆调用这个实体。这种将设计实体分成内外部分的概念是VHD1.系统设计的基本点。本次设计是用VHD1.语言设计四位全加器,并用QuartusII仿真。关键词:VHD1.四位全加器QuartusII四位全加器设计1 .设计目的复习加法器的原理,驾驭加法器的设计实现方法,设计实现数字系统设计中常用的4位全加器,在此基础上进一步熟识MAX+P1.USII或QUartUSH软件的运
3、用方法,娴熟驾驭EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。2 .设计要求D复习EDA的相关技术与方法;2)驾驭VHD1.或者VerilOg语言,并要求能编写程序。3 )QUamIS软件的运用:驾驭程序编辑、编译、调试、仿真方法。4 )设计相关简洁的电路,完成既定的功能。3 .设计原理3.1. 四位全加器加法器是数字系统中的基本逻辑器件。例如:为了节约资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中须要留意资源的利用率和进位速度等两方面的问题。多位加法器的构成有两种方式:并行进位和串行进位方式。并
4、行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。四位全加器可对两个多位二进制数进行加法运算,同时产生进位。当两个二进制数相加时,较高位相加时必需加入较低位的进位项(Ci),以得到输出为和(三)和进位(Co)。其中CIN表示输入进位位,COUT表示输出进位位,输入A和B分别表示加数和被加数。输出SUM=A+B+CIN,当SUM大于255时,COUT置其管脚图如下:CINIA1IB1IA2IB2IA3IB3IA4IB4I1SUM1|
5、SUM2|SUM3ISUM41SUM51SUM6|SUM7|SUM8|COUT图3-1四位全加器管脚图全加器是能进行加数、被加数和低位来的进位信号相加,并依据求和结果给出该位的进位信号的加法电路。其真值表如表1所示:表1全加器真值表输入输出abcinSCOUt0000001010100101100100110011011010111111依据真值表可得出下列表达式:s=ahcin+abcin+abcin+ahcin(cb+abjcin+cib+ab)cin(ab)cm+(b)cin=abcincout=abcin+abcin+abcin+abcin=ah+(ch+ab)cin=ab+(ab)c
6、in依据以上表达式,可以用数据流方式设计出1位全加器。要设计的是4位全加器,这里采纳串行进位来设计。先设计4个1位的全加器,然后将低位的进位输出与高位的进位输入相连,将要进行加法运算的两个4位数的每一位分别作为每一个1位全加器的输入,进行加法运算,全部的1位全加器的输出组成一个4位数,即输入的两个4位数之和,最高位的全加器产生的进位输出即两个4位数求和的进位输出。3.2. 四位全加器的原理图4位全加器的原理图如图3-2所示:图3-2四位全加器原理图依据图3-2所示,可以采纳结构化描述方式设计4位全加器。4 .设计方案5 .1.仿真软件QuartusII是AItera公司的综合性P1.D开发软件
7、,支持原理图、VHD1.VerilogHD1.以及AHD1.(AlteraHardwareDescription1.anguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整P1.D设计流程。QuartusII除了可以运用TCI脚本完成设计流程外,供应了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。4.2.全加器原理4.2.1一位全加器的设计与原理一位全加器的原理图如下:一位全加器的程序设计:ENTITYadderlIS1位全加器设计PoRT(a,b,cin:INSTD_1.0GIC;s,cout:OUTSTD_1.0G
8、IC);ENDadderl;ARCHITECTUREdataflowOFadderlIS一用数据流方式设计1位全加器SIGNA1.tmp:STD_1.OGIC;一用tmp表示abBEGINtmp=aXORbAFTER10ns;s=tmpXORcinAFTER10ns;cout=(aANDb)OR(tmpANDcin)AFTER20ns;ENDdataflow;4 .2.2四位全加器的原理及程序设计要设计的是4位全加器是采纳串行进位来设计的。首先依据已经设计好的一位的全加器通过将低位的进位输出与高位的进位输入相连的方法,组成所须要的四位全加器。其程序如下:ENTITYadder4IS4位全加器设
9、计PORT(a,b:INSTD_1.OGIC_VECTOR(3DOWNTO0);cin:INSTD_1.OGIC;s:OUTSTD_1.OGIC_VECTOR(3DOWNTO0);cout:OUTSTD.1.OGIC);ENDadder4;ARCHITECTUREstructuralOFadder4IS一用结构化描述风格设计4位全加器COMPONENTadder1PORT(a,b,cin:lNSTD_1.OGIC;s,cout:OUTSTD_1.OGIC);ENDCOMPONENT;SIGNA1.x,y,z:STD_1.OGIC;FORul,u2,u3,u4:adderlUSEENTITYWO
10、RK.adder1(dataflow);BEGINUkadderlPORTMAP(a(O),b(O),cin,s(O),x);u2:adderlPORTMAP(a(l),b(l),x,s(l),y);u3:adderlPORTMAP(a(2),b(2),y,s(2),z);u4:adderlPORTMAP(a(3),b(3),z,s(3),cout);ENDstructural;四位全加器的原理图:s1cll图4-2四位全加器原理图5 .程序设计1.IBRARYIEEE;USEIEEE.STD_1.OGIC_1164.A1.1.;USEIEEE.STD_1.OGIC_ARITH.A1.1.;U
11、SEIEEE.STD_1.OGIC_UNSIGNED.A1.1.;ENTITYadder1IS1位全加器设计P0RT(a,b,cin:lNSTD_1.OGIC;s,cout:OUTSTD_1.0GIC);ENDadder1;ARCHITECTUREdataflowOFadder1IS一用数据流方式设计1位全加器SIGNA1.tmp:STD_1.OGIC;一用tmp表示abBEGINtmp=aXORbAFTER10ns;s=tmpXORcinAFTER10ns;cout=(aANDb)OR(tmpANDcin)AFTER20ns;ENDdataflow;1.IBRARYIEEE;USEIEEE.
12、STD_1.OGIC_1164.A1.1.;USEIEEE.STD_1.OGIC_ARITH.A1.1.;USEIEEE.STD_1.OGIC_UNSIGNED.A1.1.;ENTITYadder4IS4位全加器设计PORT(a,b:INSTD_1.OGIC_VECTOR(3DOWNTO0);cin:INSTD_1.OGIC;cout:OUTSTD,1.0GIC);ENDadder4;ARCHITECTUREstructuralOFadder4IS一用结构化描述风格设计4位全加器COMPONENTadder1PORT(a,b,cin:lNSTD_1.OGIC;s,cout:OUTSTD_1.O
13、GIC);ENDCOMPONENT;SIGNA1.x,y,z:STD_1.OGIC;FORul,u2,u3,u4:adderlUSEENTITYWORK.adder1(dataflow);BEGINUkadderlPORTMAP(a(O),b(O),cin,s(O),x);u2:adderlPORTMAP(a(1),b(1),x,s(l),y);u3ladder1PORTMAP(a(2),b(2),y,s(2),z);u4:adderlPORTMAP(a(3),b(3),z,s(3),cout);ENDstructural;6 .仿真及结果依据上面的程序我进行了仿真,首先是对1位全加器进行仿真
14、,结果如图6-1所示:图6-11位全加器仿真图由图6-1可以看出,1位全加器的仿真结果与表1相符,说明1位全加器设计胜利。然后我又对4位全加器进行仿真,结果如图6-2所示:Ref200OnsITime48nsInterval:-1952000ns100.0ns2-cinCOUt图6-24位全加器仿真图由图6-2可以看出,对设计的全加器进行了2组数据的仿真,由于4位全加器最低位的进位为0,因此将Cin置0,仿真的结果与实际的运算结果是相同的。由仿真结果可知,设计的程序完成了全加器的功能,因此该程序正确。总结与体会时间飞逝,一转瞬,一个学期又进尾声了,本学期的实力拓展强化训练也完成了。俗话说“好的
15、起先是胜利的一半二说起课程设计,我认为最重要的就是做好设计的预习,仔细的探讨老师给的题目,选一个自己有爱好的题目。其次,老师对试验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,假如没弄明白,就模模糊糊的去选题目做设计,到头来一点收获也没有。最终,要重视程序的模块化,修改的便利,也要留意程序的调试,驾驭其方法。当然,这其中也有很多问题,第一、不够细心比如由于马虎大意,由于对课本理论的不熟识导致编程出现错误。其次,是在学习看法上,这次课设是对我的学习看法的一次检验。对于这次课程设计,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素养肯定应当是严谨。我们这次课程设计
16、所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我相识到,无论做什么事情,只要你足够坚毅,有足够的毅力与决心,有足够的挑战困难的志气,就没有什么办不到的。从起先得到老师给定课题时的一脸茫然到老师讲解后内容的初步了解再到自己通过查资料、与同学共同探讨、经过老师指导后,自己设计并写出这份课程报告,心中充溢了成就感。通过课程设计还拓宽了学问面,学到了很多课本上没有的学问,报告只有自己去做能加深对学问的理解,任何困难只有自己通过努力去克服才能收获胜利的喜悦。本次课程设计还让我明白了理论联系实际的重要性,只有通过实际的动手才能加深对于理论学问的理解。在做课程设计的过程中我发觉自己对课本学问的理
17、解不够深刻,驾驭的不太牢靠,以后肯定会努力地温习以前的学问。再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的相识,无论是学习还是生活,生活是实在的,要踏实走路。通过这次课程设计我学习了很多的东西,使我眼界打开,感受颇深。参考文献1王永军,李景华,数字逻辑与数字系统(第3版),电子工业出版社.2陈书开,王毅等,计算机组成与系统结构,武汉高校出版社,2005.8.3王毓银,陈鸽,杨静,赵亦松,数字电路逻辑设计,高等教化出版社,2006.4罗克露,单立军,刘辉,俸志刚,计算机组成原理,电子工业出版社.5曾繁泰.EAD工程概论.北京:清华高校出版社,20046潘松.VHD1.好用教程M.成都:电子科技高校出版社,2000