安徽大学计科院
《计算机组成原理》课程设计
实验设计报告
设计题目:四位并行加法器设计
班级:08软件二班
小组成员:黄德宏(E20814116)
胡从建(E20814110)
指导老师:周勇
完成日期:20##-3-15
一.任务概述
1.1设计题目概述:
四位并行加法器采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。超前进位产生电路是根据各位进位的形成条件来实现的。它不需要依靠低位进位来到后在进行高位进位,而是根据各位输入同时产生进位,改变了进位逐位传送的方式,明显提高了加法器的工作速度。
1.2设计任务:
通过小组合作讨论,利用MuxPlus2软件设计画出四位并行加法器原理图,在实验箱上连线,实现4位二进制数相加并得到正确的结果.
1.3设计目的:
1掌握MaxPlus2软件的使用方法,并以此为工具进行设计电路原理图.
2了解加法器的工作原理,掌握超前进位产生电路的设计方法.
3正确将电路原理图下载到试验箱中.
4正确通过实验箱连线实现4位二进制数的相加并得到正确结果.
5增强小组协作的能力以及对知识探求的兴趣。
6完成设计实验报告.
1.4设计思路:
加法器是计算机的基本运算部件之一。
若不考虑进位输入,两数码Xn,Yn相加称为半加,如下图为半加其功能表:
(a) 半加器功能表
(b)半加器逻辑图
(c)用异或门实现半加器
将Xn Yn以及进位输入Cn-1相加称为全价,其功能表如下图:
a.(全加器功能表)
(b) 全加器的逻辑图
(c)全加器的全加和Fn也可用异或门表示
由功能表可得全加和Fn和进位输出Cn表达式:
Fn=Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1
Cn= Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1
Fn还可以用两个半加器来形成:
Fn=Xn+Yn+Cn-1
如此,将n个全加器相连可得n位加法器,如图:
但加法时间较长,只是因为其位间进位使串行的传送的,本位全加和Fi必须等低位进位Ci-1来到后才能进行,加法时间与位数有关,只有改变进位逐位传送,才能提高加法器的工作速度。因此,只要使各位的进位不需依赖上一个进位即可。
二.设计实现
2.1 设计原理:
设定四位输入数据为A3A2A1A0和B3B2B1B0以及进位输入C0,四位输出S3S2S1S0和一位进位输出。
根据超前进位产生电路的形成条件可得出,只要满足以下两条件中的任一个,就可形成进位C1,(1)A0,B0均为1;(2)A0,B0任一一个为1,且进位C0为1,。
由此可得:C1=A0B0+(A0+B0)C0
只要满足下述条件中的任一个即可形成C2,(1)A1,B1均为1;(2)A1,B1任一一个为1,且A0,B0均为1;(3)A1,B1任一一个为1,同时且A0,B0任意一个为1,且C0为1
由此可得:C2=A1B1+(A1+B1)A0B0+(A1+B1)(A0+B0)C0
同理可得到C3,C4的表达式:
C3=A2B2+(A2+B2)A1B1+(A2+B2)(A1+B1)A0B0+(A2+B2)(A1+B1)(A0+B0)C0
C4=A3B3+(A3+B3)A2B2+(A3+B3)(A2+B2)A1B1+(A3+B3)(A2+B2)(A1+B1)A0B0+(A3+B3)(A2+B2)(A1+B1)(A0+B0)C0
引入进位传递函数Pi和进位产生函数Gi.其定义如下:
Pi=Xi+Yi.
Gi=XiYi
Pi的意义是:当Xi,Yi中有一个为1时,若有进位输入,则本位向高位传送此进位,这个进位可看成是低位进位越过本位直接向高位传递的.
Gi的意义是:当Xi,Yi均为1时,不管有无进位输入,本位定会产生向高位产生的进位.
将Pi,Gi代入C1~C4式,便可得:
C1=G0+P0C0
C2=G1+P1G0+P1P0C0
C3=G2+P2G1+P2P1G0+P2P1P0C0
C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0
由以上分析可得出在输入项为A3A2A1A0和B3B2B1B0以及进位输入C0时,各个输出项S3S2S1S0和进位输出C4分别为:
S3=A3+B3+C3
S2=A2+B2+C2
S1=A1+B1+C1
S0=A0+B0+C0
C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0
根据以上公式得到其电路原理图如下所示):
2.2连线实验,按如下图连接线路:
预期结果:
输入:0010 0011
结果:0101
2.3实验中遇到的问题:
电路原理图可以在Muxplus2软件上通过编译,证明设计图没有问题,在实验连线中会遇到结果不对的情况,通过与老师交流和同学间的讨论,最后得出的是电路的输入输出引脚绑定出现问题,由于没有参考,这方面就需要自己不断的测试比较才能得出正确的引脚绑定方案.
通过测试,引脚绑定为:
进位输入C0绑定为14
A0~A3绑定为15~18
B0~B3绑定为20,21,22,24
S0~S3绑定为25 27 28 29
进位输出C4绑定为30
三.实验心得
首先我们必须确定实验题目,因为只有这样,我们才能够继续下一阶段的学习、实验阶段。为此,我们通过讨论决定选择四位并行加法器设计这个实验(毕竟以前有上过数字逻辑之类的课程,所以学习起来会相对容易一点)。
正所谓,磨刀不误砍柴工,所以在实验前期,准备工作是很重要的。我们花了一部分时间去了解何谓四位并行加法器以及它的工作原理。这一部分我们是参考《计算机组成与结构》和《计算机组成原理与系统结构实验教程》这两本书中的介绍来完成的。因为有完全相同的例子供我们参考,所以说这部分任务比较容易的就完成了。接下来,我们又花了一部分时间来了解Muxplus2以及如何联机操作。
在所有的前期工作都完成的情况下我们才开始着手做这个实验(如画图),这样避免了我们在实验时走过多的弯路。
由于对试验箱的工作原理等不了解,在接下来的连线阶段就比较困难了。此时,我们几乎是两眼一抹黑,完全不知该如何连线。我们不得不去和其他选择做相同实验的同学一起讨论关于如何连线的问题。通过大家在一起讨论和老师的建议,我们把它和乘法器实验作了比较(发现连线可以参考乘法器),发现了我们都没有做相关的引脚绑定。就如同摸着石头过河一样,我们慢慢的接近正确的结果。
经过5周课程设计实验的学习,让我们对计算机组成原理有了更深层次的理解,并且也深刻地认识到实践的重要性。很多东西我们都不能够仅凭理论就觉得我们理解它了,就比如说这次实验,在事先做好充足准备的情况下还是没有如理想中那样顺利完成。由此,我们明白只有理论与实践相结合才能更深地理解与运用知识,这不就是实践中出真知吗?
第二篇:四位并行加法器设计
安徽大学计算机科学与技术学院
《计算机组成原理》
课程设计、实践设计报告
学生学号: E20814108、E20814098
学生姓名: 蒋 信、许 东
年级专业: 08软件工程二班
授课教师: 周 勇 老 师
完成时间: 2011/03/20
4位并行加法器设计实验
1 课程设计概述
1.1 课程设计的教学目的
掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握数据信息流和控制信息流的流动过程,进一步加深计算机系统各模块间相互关系的认识和整机的概念,培养开发和调试计算机的技能。在设计实验中提供应用所学专业知识分析问题和解决问题的能力。
1.2 课程设计的内容
通过MuxPlus2软件,下载加法程序到实验箱,然后在其上连线,输入两个二进制数,观察结果并与理论值进行比较,实现4位二进制数相加并得到正确的结果。
1.3 课程设计的任务
1、掌握MaxPlus2软件的使用方法。
2、掌握4位并行加法器的设计原理,掌握超前进位产生电路的设计方法.
3、正确将电路原理图下载到试验箱中.
4、正确通过实验箱连线实现4位二进制数的相加并得到正确结果.
5、完成设计实验报告.
1.4 课程设计的题目及其思想
题目:设计一个四位并行加法器,并能在试验箱上编译通过,且连线后可以具体实现加法
设计思想:由于本次课程设计的目的是在学完计算机组成原理课程后通过课程设计理解计算机各个功能器件的工作原理,计算机是如何实现这些功能的,所以我们选择了四位并行加法器这个简单的题目,用到了一些逻辑运算部件,并采用超前进位加法器的设计方法提高运算速度。实验最后下载到试验箱上并连线参照了课程实验中乘法器的设计。
2 课程设计的实现
2.1 设计基础
加法器是计算机的基本运算部件之一。
(1)若不考虑进位输入,两数码Xn,Yn相加称为半加,如下图为半加其功能表:
(a) 半加器功能表
(b)半加器逻辑图
(2)将Xn Yn以及进位输入Cn-1相加称为全价,其功能表如下图:
a.(全加器功能表)
(b) 全加器的逻辑图
由功能表可得全加和Fn和进位输出Cn表达式:
Fn=Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1
Cn= Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1+ Xn Yn Cn-1
Fn还可以用两个半加器来形成:
Fn=Xn+Yn+Cn-1
如此,将n个全加器相连可得n位加法器,如图:
但加法时间较长,只是因为其位间进位使串行的传送的,本位全加和Fi必须等低位进位Ci-1来到后才能进行,加法时间与位数有关,只有改变进位逐位传送,才能提高加法器的工作速度。因此,只要使各位的进位不需依赖上一个进位即可。所以我们采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法,这就是超前进位加法器的设计思想来源。
2.2 设计原理
超前进位产生电路是根据各位进位的形成条件来实现的。只要满足下列二条件中任一个,就可以形成C1,(1)X1,Y1均为1(2)X1,Y1任一个位1,且进位C0位1。
可以写出C1的表达式为
C1=X1Y1+(X1+Y1)C0
只要满足下述条件中任一个即可形成C2,(1)X2,Y2均为1;(2)X2,Y2任一为1,且X1,Y1均为1;(3)X2,Y2任一为1,同时X1,Y1任一为1,且C0为1。
可以写出C2的表达式为
C2=X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0
由上,同理可得到
C3=X3Y3+(X3+Y3)X2Y2+(X3+Y3)(X2+Y2)X1Y1+(X3+Y3)(X2+Y2)(X1+Y1)C0
C4=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4) (X3+Y3)(X2+Y2)X1Y1+(X4+Y4) (X3+Y3)(X2+Y2)(X1+Y1)C0
由上面的式子可知:
C1=X1Y1+(X1+Y1)C0
C2=X2Y2+(X2+Y2)C1
C3=X3Y3+(X3+Y3)C2
C4=X4Y4+(X4+Y4)C3
引入进位传递函数Pi和进位产生函数Gi.其定义如下:
Pi=Xi+Yi.
Gi=XiYi
Pi的意义是:当Xi,Yi中有一个为1时,若有进位输入,则本位向高位传送此进位,这个进位可看成是低位进位越过本位直接向高位传递的.
Gi的意义是:当Xi,Yi均为1时,不管有无进位输入,本位定会产生向高位产生的进位.
将Pi,Gi代入C1~C4式,便可得:
C1=G0+P0C0
C2=G1+P1G0+P1P0C0
C3=G2+P2G1+P2P1G0+P2P1P0C0
C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0
由以上分析可得出在输入项为A3A2A1A0和B3B2B1B0以及进位输入C0时,各个输出项S3S2S1S0和进位输出C4分别为:
S3=A3+B3+C3
S2=A2+B2+C2
S1=A1+B1+C1
S0=A0+B0+C0
C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0
由此我们可以画出如下电路原理路:
参照乘法器的连线方法,可以画出下面的实验连线图,如下图:
2.3结果及问题
预计结果当输入0001和0010是结果应是0011
实验中多次连线多没有得出最后正确的结果,后来和几个同样做加法器的同学一起讨论,并在老师的指导下发现时引脚没有绑定,导致没有结果,最后在改正了错误的而前提下,读出结果完成实验。
3 课程设计的心的和体会
通过本课程设计,自己学会了很多,以前只是完全按照书上的模式来连接电路图,现在学会了如何自己动手去构造实验原理图,并且大致能解决实验过程中出现的一些基本问题。
在做此次实验之前,我们做的主要工作是看书,感觉书都没弄懂的话要去做好实验那是不可能的。我们先是参考《计算机组成与结构》和《计算机组成原理与系统结构实验教程》这两本书,了解了何谓四位并行加法器以及它的工作原理。然后我们又花了一些时间来认识和熟悉Muxplus2以及如何联机操作。前后我们共花了两周的时间来完成实验原理图,中间感觉不怎么明白的地方就问同学,同学也没明白的话,我们就一些人在一起讨论。
在接下来的实际连线阶段,由于缺乏对实验箱的深入了解,跟搭档探索讨论了许久也没有搞出来,时间又有限,可把我们急坏了。在跟同学们的商量以及老师的提点下,终于知道,要把相关引脚绑定,然后参照乘法器连线图就基本可以完成最终实验了。
通过和组员的分工合作,以及讨论,更加学会怎么团队合作完成一个工作。还有,通过和组员的交流可以发现彼此对整个实验的思考和理解的差异,互相促进更好地理解这个实验。
经过这5周的课程设计,我对计算机组成原理有了更深一层的理解,并且也深刻地认识到实践的重要性,只有理论与实践相结合才能更深地理解与运用知识。