华中科技大学组原第一次实验报告运算器Word格式.docx
《华中科技大学组原第一次实验报告运算器Word格式.docx》由会员分享,可在线阅读,更多相关《华中科技大学组原第一次实验报告运算器Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
1实验名称3
2实验目的3
3实验设备3
4实验任务3
5实验设计方案、电路实现与电路分析4
5.1基本芯片介绍4
5.2设计方案4
5.3电路实现与分析6
6实验结果与分析10
6.1基本运算的实现10
6.2加法器实现减法运算11
6.3溢出检测11
7实验中碰到的问题及解决办法13
8收获与体会13
9思考题14
10参考书目14
1实验名称
实验名称:
运算器组成实验
2实验目的
1、熟悉算术逻辑运算单元74LS181的逻辑功能与基本使用方法
2、掌握有符号数和无符号数的溢出检测原理及实现方法
3、通过实验理解有符号数和无符号数运算的区别
4、理解基于补码的加/减运算实现原理
5、熟悉运算器的数据传输通路
6、锻炼动手能力,和分析解决实际问题的能力
3实验设备
JZYL—Ⅱ型计算机组成原理实验仪一台
芯片:
1:
用作运算器和暂存器部件(第5部分会有相应分析)
74LS181运算器芯片2片
74LS3738D锁存器3片
2:
用作溢出检测部件(第5部分会有相应分析)
74LS04六输入反门1片
74LS86二输入四异或门1片
74LS10三输入三与非门1片
74LS32二输入四或门1片
74LS08二输入四与门1片
4实验任务
自己设计一个电路和利用实验参考电路进行实验,实验要求先将多个运算数据事先存入存储器中,再由地址选中,选择不同的运算指令,进行运算,并将结果显示,还可以进行连续运算和移位,最后将最终结果写入到存储器中。
并且能对输出的结果进行溢出检测。
图1.实验前预习给出的电路图
5实验设计方案、电路实现与电路分析
5.1基本芯片介绍
74LS181和74LS373的介绍(功能简介,管脚图,功能表等)详见参考文献:
...\组成实验(给学生)\整理后常用的芯片资料。
5.2设计方案
(1)主要目的:
熟悉算术逻辑运算单元74LS181的逻辑功能和有、无符号数的溢出检测。
(2)基本思路:
根据实验的主要目的及老师的相关要求,我们知道在实现只有八位数据位输入的情况下要能在181中实现两个八位数据位的相关运算,还要外加电路做溢出检测,所以需要用到两个181芯片作为基本运算部件,还有锁存器部件和溢出检测部件。
设计方案的基本思路如下:
用2片181实现基本运算功能;
将181的输出值存入锁存器部件中,锁存器还要实现累加的功能;
再外加溢出检测电路实现溢出检测功能。
(3)电路各部件架构:
A基本运算部件:
用两片74LS181串行连接实现数据的基本运算(这两片181的输入为两个8位二进制数,输出为一个8位二进制数);
B锁存器部件:
对于锁存器的选择,我们用74LS373。
因为较其他锁存器而言,373用在本实验中位数兼容(都是八位);
操作简单(只有LE和OE两个控制端);
基本状态符合本实验对锁存器的要求(有直传,锁存,高阻三种基本状态);
故综合考虑选用373作为本实验的锁存器部件。
基本连接如下:
将1片373的输入连到2片181的输出A(有8位)上,这片373的高四位和低四位的值再分别存入两片373中,并通过这2片373的输出端输入到181中再次参与运算,实现累加/减功能;
C溢出检测部件:
无符号:
我们注意到181中有一位输出端是进/借位的反:
,所以我们可以利用这一个输出端求反后就可判断无符号的加/减法是否溢出;
有符号:
有符号加法的溢出检测,利用书上的公式
;
当是有符号减法的时候,不能直接用上面的公式,如对于有符号数减法运算x-y,是要将[y]补的最高位求反后带入式中参与运算而不是将[-y]补的最高位代入式中。
因此我们设计一个求补的控制信号P,P与输入的加数/减数的最高位Y异或后作为上式的Yf,P置为高电平是做有符号减法溢出检测,P置为低电平是做有符号数加法溢出检测。
即有符号数的加/减法的溢出检测公式:
。
再连接一个二路选择器选择有无符号的溢出检测。
(4)电路基本结构图示
图2.电路基本结构图
5.3电路实现与分析
(1)基本运算部件:
由2片181组成。
这两片181分别接入了两个数据的低4位和高4位的输入信号(不妨将接低位的181芯片称为1号181,接高位的181芯片称为2号181,以下均同)。
具体实现如下:
1号181的
、
分别连接两个数据低4位的输入信号,2号181的
连接这两个数据高4位的输入信号;
1号181的
连到连接2号181的
接在加减选择开关上(开关打至1进行减法运算,否则进行加法运算);
两片181相应的M端,
端两两连接并接到开关上作为运算控制端,共4个开关;
两片181的输出
分别依次接到373的输入端D。
图3.74LS181在实验中的电路连接
(2)锁存器部件:
将1片373的输入连到2片181的输出上(不妨将这片373称为1号373,以下均同);
1号373的低四位和高四位的值再分别存入两片373中(将存放低位值的373称为2号373,将存放高位值的373称为3号373,以下均同),并通过这2片373的输出端输入到181中再次参与运算,具体实现如下:
1号373的
接到1号181的
,
接到2号181的
连接指示灯,OE和LE端作为控制端分别连接开关;
2号373的
接到1号373的
,3号373的
,2号373的
,将两个373相应的OE和LE端两两连接并接到开关上作为控制端,此处有两个开关。
图4.74LS373中的电路连接
(3)溢出检测部件:
由5.2设计方案的分析,溢出检测部件需要用到74LS04六输入反门,74LS86二输入四异或门,74LS10三输入三与非门,74LS32二输入四或门,74LS08二输入四与门。
无符号运算直接将2号181芯片的进/借位
经过反门后连接到二路选择器上;
有符号运算则需要修正后的公式
,即
(
均来自2号181,P接开关作为有符号数的加/减法溢出检测选择端),依式子连接电路之后再将结果送入二路选择器中。
此处的二路选择器是将与门和或门的组合来达到二路选择器的效果,其原理公式为
为无符号数溢出检测信号,
为有符号数溢出检测信号,C接开关作为有/无符号数溢出检测信号选择端,当C拨到0时,选择无符号数检测信号,当C拨到1时,选择有符号数检测信号)。
图5.溢出检测部分的电路逻辑图示
图6.溢出检测部分的电路连接
图7..总电路图
说明:
本电路图由三部分构成,分别是基本运算部件,锁存器部件和溢出检测部件,可实现算术逻辑运算单元74LS181的逻辑功能和有、无符号数的溢出检测。
6实验结果与分析
6.1基本运算的实现
(1)直传10到AC。
其操作过程是:
先将数据开关拨为10,再设置好181的一个适当的运算方式,然后存入暂存器,最后存入AC:
检测记录表
S3S2S1S0
数据A
数据B
运算结果
M
1010
----------
00001010
1
------
该记录表明:
锁存器以及逻辑运算结果正确。
(2)直传5到送AC。
先将数据开关拨为5,再存入暂存器,最后存入AC,会看到AC的内容由10直接变成5:
00000101
(3)AC算术加1100,得结果00010001,送回AC:
1001
00001100
00010001
算数运算结果正确。
(4)用181的求反功能将AC求反,得结果11101110,送回AC:
0000
---------
11101110
逻辑运算结果正确。
(5)AC算术减01001111,得结果10011111,送回AC:
0110
01001111
10011111
6.2加法器实现减法运算
关于加法实现,由于电路没有设置求补器,故此处手动求补。
送00110111到AC,实现AC减00010101,得结果00100010:
--------
00110111
1001(算数加)
11101011
00100010
此处运算结果是正确的,溢出检测也是如此。
6.3溢出检测
(1)加法的检测:
①送10100110到AC,送10110101到数据开关,将181置为算术加,得结果01011011,可以观察到无符号数运算时有溢出,补码运算时也有溢出;
②送01010110到AC,送01100010到数据开关,得结果10111000,可以观察到无符号数运算时无溢出,补码运算时有溢出;
③送10110001到AC,送01101010到数据开关,得结果00011011,可以观察到无符号数运算时有溢出,补码运算时无溢出;
④送01001001到AC,送00100100到数据开关,得结果01101101,可以观察到无符号数运算时无溢出,补码运算时无溢出。
检测记录表
项目
有符号溢出
无符号溢出
①
10100110
---
----
10110101
01011011
②
01100010
10111000
③
01010110
01101010
00011011
④
01001001
00100100
01101101
注:
将有符号数的加/减法溢出检测选择端P一直置为低电平(即选择加法的检测);
当溢出检测电路是检测有符号数时,将有/无符号数溢出检测信号选择端C置为高电平,而溢出检测电路是检测无符号数时,将有/无符号数溢出检测信号选择端C置为低电平。
除了第一次无符号溢出检测失败,有符号溢出检测成功以外,其余三次均是无符号溢出检测成功,有符号溢出检测成功。
达到预期效果。
(2)减法的检测
由于无符号数的减法不会产生溢出,故此处只讨论有符号数的减法的溢出。
①送01011011到AC,送10010011到数据开关,得结果11001000,可以观察到补码运算时有溢出;
②送01001001到AC,送00100100到数据开关,得结果00100101,可以观察到补码运算时无溢出。
0110(算数减)
10010011
11001000
00100101
将有符号数的加/减法溢出检测选择端P一直置为高电平(即选择减法的检测);
将有/无符号数溢出检测信号选择端C一直置为高电平(即选择有符号的检测)。
无符号溢出检测成功,有符号溢出检测成功。
7实验中碰到的问题及解决办法
由于本次实验是组成原理的第一次实验,所以遇到了很多的问题。
具体如下:
1.无符号数溢出检测的原理:
我们最开始选取的《计算机组成原理》上67页的有符号数的溢出检测公式:
但我们注意到此公式只适用于加法。
于是我们就开始推算有符号数减法的溢出检测公式,但都不宜实现。
受此页书图3.1的启发,我们设计了一个对减数的最高位
与加/减法检测选择端P的异或电路,与原电路整合后即得
,这样通过加/减法溢出选择选择端就可以直接对两种计算进行检测,无需针对加法和减法各自设计一个检测电路;
2.二路选择器的实现:
在设计溢出检测电路的最后,要用到二路选择器。
但是当时找不到二路选择器。
我们注意到只需要再增加一个74LS08二输入四与门,并使用公式
就可以实现与二路选择器一样的功能,C接开关作为有/无符号数溢出检测信号选择端;
3.实验前的预习和准备工作不够,并且对试验台的了解不够,因此在展开实验的前期,对试验台和181,373芯片的连接和使用耗费了一段时间;
4.无符号的溢出检测出现了问题,检测结果时而对时而错。
我们在对电路测试,检查了多次以后仍然如此,最后没有能解决这个问题,留下了一个很大的遗憾。
8收获与体会
1.这次试验虽然说是第一次实验,但是老师给了我们充分的时间去做准备,而我们的预习工作还没有做到位,以至于试验中浪费了一定时间,下次应该做好充分的准备;
2.我们的电路是按照几大部件的顺序来连接的,在每一个模块完成以后我们都对电路进行了简单的检测,这是一个好的方法,下次一定要保持好模块设计的思路;
在具体连接电路时,我们注意到每一个芯片插座总是少了两个引脚,后来才发现是少了Vcc和GND端,对此连接芯片时也要做相应的调整;
3.其实2号和3号373芯片的功能只用一个373就可以完全实现,只是老师给的基本电路是如此,所以我们没怎么考虑就一起用了三片373,以后应该在保证功能的前提下尽量简化电路;
4.有一次检测溢出检测电路时,结果总是不对,我们后来请来了实验室老师帮我们检查,才发现是一根导线坏了,当时我们是每一根导线都检查过了才用在电路上,可能是由于没有认真检查的原因,下一次对于细小的地方我们也应该认真对待。
总结:
本次实验有很多收获,也有很多不足。
不足之处总结来说,就是对电路的整体把握不够,对细节不够认真,还不会静下心来认真思考问题所在。
有了不足,我们才知道自己错在哪儿,反思自己的不足,我们才能更好地在实验中积累经验。
通过这一次的实验,我学会了很多,吸取了很多经验教训。
在下一次的实验之前一定做好充分的准备,为实验的成功奠定坚实的基础!
9思考题
问:
为什么要在电路中增加溢出检测部分?
答:
因为溢出检测部分是作为181和373组成的基本运算部件的必要补充部分,有了这个部分,从小的方面来看,可以检查出基本运算部件的每一次有/无符号数的加/减法运算结果是否正确;
从大的方面来看,提高了整个电路的健全性和适用范围。
10参考书目
《计算机组成原理》秦磊华吴非莫正坤编著
《计算机组成原理实验及课程设计》秦磊华王小兰编著