四位并行加法器设计.docx
《四位并行加法器设计.docx》由会员分享,可在线阅读,更多相关《四位并行加法器设计.docx(9页珍藏版)》请在冰豆网上搜索。
四位并行加法器设计
安徽大学计算机科学与技术学院
《计算机组成原理》
课程设计、实践设计报告
学生学号:
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相加称为半加,如下图为半加其功能表:
Xn
Yn
Hn
0
0
0
1
0
1
0
1
1
1
1
0
(a)半加器功能表
(b)半加器逻辑图
(2)将XnYn以及进位输入Cn-1相加称为全价,其功能表如下图:
Xn
Yn
Cn-1
Fn
Cn
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
a.(全加器功能表)
(b)全加器的逻辑图
由功能表可得全加和Fn和进位输出Cn表达式:
Fn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-1
Cn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-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周的课程设计,我对计算机组成原理有了更深一层的理解,并且也深刻地认识到实践的重要性,只有理论与实践相结合才能更深地理解与运用知识。