第一次组原实验报告Word格式文档下载.docx
《第一次组原实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第一次组原实验报告Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
74LSl81:
运算器芯片2片
74LS373:
八D锁存器2片
其它基本器件若干
四、实验任务
1.概述
自己设计一个以74LSl81运算器芯片为核心的电路,能够实现多种运算,并能使用历史结果数据进行累计运算,运算结果可以使用灯和数码管来显示。
在功能方面要求支持有符号数和无符号数运算、支持补码加/减运算以及支持有符号数溢出检测等;
在数据来源方面包括一个累加器和一组开关。
通过手动操作,首先能够通过运算数据存入累加器中,再选择不同的运算控制信号,实现不同功能的运算,最后将结果存入到累加器中。
2.参考电路
图1
3.技术要点
1)利用74181设计8位运算器;
2)设计基于单符号位的溢出检测方法和实现电路。
要求能支持有符号数和无符号数加法运算的溢出检测。
选择适当的数据验证你所设计的电路的功能。
3)利用373芯片增加累加器功能
4)对上述电路进行综合集成,利用多路选择器设计电路,实现对有符号数(用补码进行计算)和无符号数运算、加/减运算的支持;
五、预备知识
1、运算器的相关知识
运算器是对数据进行加工处理的部件,它具体实现数据的算术运算和逻辑运算,所以又称算术逻辑运算部件,简称ALU,它是中央处理器的重要组成部分。
计算机中的运算器结构一般都包含如下几个部分:
加法器、一组通用寄存器、输入数据选择电路和输出数据控制电路等。
74LS181能执行16种算术运算和16种逻辑运算,当工作方式控制端(M)为低电平时执行算术运算,当工作方式控制端(M)为高电平时执行逻辑运算,运算功能由功能选择端(S0-S3)决定。
对74LS181的说明:
引出端符号:
运算数输入端(低电平有效)
运算器输入端(低电平有效)
进位输入端
进位输出端
运算输出端(低电平有效)
工作方式控制
功能选择
2、注意事项:
1)74LS181的输入和输出应按顺序,不能接乱或接反。
2)实验中的开关较多,实验时若记不清楚就容易因混乱而发生错误,因此对于用不到的引脚就不用接开关了。
六、设计思路、电路实现与电路分析说明
1、任务分析
方案选择:
这个实验既可以自己设计电路,也可以参考老师所给的电路。
我们选择了参考老师所给的参考电路。
芯片选择与分析:
根据方案的示意图,方案需要用到两片74LS181芯片和两片74LS373芯片。
其中74LS181做数据运算器,74LS373做数据锁存器。
各芯片介绍如下:
1)74LS373:
74LS373是一个8D锁存器。
当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
D0~D7数据输入端
OE三态允许控制端(低电平有效)
LE锁存允许端
O0~O7输出端
图274LS373管脚图
Dn
LE
OE
On
H
L
X
Q0
高阻态
表174LS373真值表
2)74LS181:
74LS181是一个四位运算器。
实验中要用多个如下图所示的异或门来实现数据的奇偶校验。
图374LS181管脚图
表274LS181的功能表
2、设计思路
1)将两片74LS181通过373连在一起,通过373的锁存功能实现八位运算
2)溢出检测的设计:
无符号:
无符号运算中,若最高位存在进位,则表示有溢出,否则则表示无溢出,所以只需直接将最高进位位(即Cn+4)与灯相接,高电位表示有溢出,低电位表示无溢出(电路图略)
有符号:
根据操作数和运算结果的符号是否一致进行溢出检测。
设
,
为参加运算数的符号位,
为结果的符号位,
为溢出标志符,当
取1时表示发生溢出。
基于该方法的公式为:
3、电路实现与详细分析说明
1)74LS181模块:
第一个cn接开关,第一个的cn+4接第二个的cn;
第二个181的cn+4接入溢出检测模块;
两个芯片的M接在一起,接到开关上;
S3至S0依次接到控制开关上;
A0至A3分别依次接到两个373的输出端Q上;
B0至B3分别依次和开关相连;
F3至F0分别依次接到373的输入端D,同时接到指示灯上。
图474LS181在实验中的电路连接
2)74LS373模块:
373(U1)的8D至1D依次接到两个181的F3至F0上;
另外的那个373(U2)的8Q至5Q依次接到181的A0至A3上;
373(U1)的8Q至1Q接到373(U2)的输入端D上。
图574LS373中的电路连接
3)求补电路模块:
按照上课时老师所讲授的对四位数的硬件求补电路图(如图6)所示,只是这里我们要对8位数进行求补运算,我们只需将位数在往前扩展4位就可以了。
求补电路搭建好之后,就将之前的要输入的数据k7-k0再经过求补电路后在输入到181芯片中,连接电路图如图7所示。
图6求补电路图
图7求补电路与其他模块的连接
4)溢出检测模块:
运算数的符号位与求反后的运算结果符号位相与,与运算数符号位求反并与运算结果符号位相与的结果求或,结果输出至溢出检测灯。
图6溢出检测部分的电路连接
实验总电路图:
图7运算器实验电路图
七、实验结果的记录与分析
1、实验过程1构造八位运算器检测记录:
构造八位运算器检测记录表
S3S2S1S0
数据A
数据B
运算结果
M
Cn
1001
00000001
00000010
1
00000011
10000000
00000000
1110
10101010
01010101
11111111
该记录表明:
8位运算器运算结果成功
2、实验过程2添加溢出检测检测记录
添加溢出检测检测记录表
溢出
011111111
01111111
溢出检测失败,没有达到预期效果
3、实验过程3添加373芯片后检测记录
添加373芯片后检测记录表
脉冲A
脉冲B
S3S2S1S0
数据
结果A
结果B
00000100
00000110
可实现累计和数据传送
4、实验过程4添加求补电路后检测记录
添加求补电路后检测记录表
0/1
00000101
10000011
可实现求补功能并完成负数运算和减法运算
八、实验中碰到的问题及解决办法
在这次实验中,我们遇到的最大问题就是求补电路的搭建,一开始完全不知道该怎么下手,之后想起老师在课堂上讲授过关于实验中求补电路的原理以及实验电路图,我们于是就开始从老师讲的电路图进行稍微的修改和扩展之后就开始连接电路。
经过一个多小时的挣扎,终于在晚上7点左后完成了求补电路与181和373模块的组合连接,并且进行测试结果符合预期。
之后遇到的大问题就是有符号数的溢出检测的实现问题,最初采用的检测方案,连接后发现不能达到预期效果,经过向老师请教之后,发现之前的溢出检测设计方案中难以取出最高有效数据位,而且在只用两片LS74181芯片的前提下也难以实现符号位的相加,所以也难以取出符号位的进位。
所以决定换一种溢出检测方案,改为根据操作数和运算结果的符号位是否一致来进行溢出检测。
只有两个符号相同的数相加才有可能产生溢出检测,因此,可根据操作数和运算结果的符号位是否一致进行检测。
设Xf,Yf为参加运算数的符号位,Sf为结果的符号位,V为溢出标识符,则该方法可用公式
来实现。
九、收获与体会
这次试验计算机组成原理的第一次实验,因为上学期做过数字逻辑实验的缘故,加上老师详细的介绍与说明,对实验台有了初步了解,所以虽然这是第一次接触该实验台,但是对仪器还是相对熟悉的。
实验前,老师在讲解的过程中就给出了整个实验的思路并将实验分为了四大步,每一步都是递进处理,所以上手还是比较快的,按照老师给出的思路,很快完成了第一步,做出了8位计算器,并且进行算数运算与逻辑运算测试均得到了预期效果。
本次实验经过了我们三个人将近10个小时的努力,虽然最终没有达到完全一样的理想效果,但基本上的实验步骤以及功能我们都实现了,可以说是收获了很多。
当然实验最后有点瑕疵而且好时较长,我总结了一下有以下几点原因:
(1)没有在实验前仔细地检查实验设备,虽然也进行了一些检查,但不够仔细,所以在实验过程中数次因为电线的接触不好或者信号灯以及开关的接触不良而纠结很久,这很大程度上消磨我们的信心而拖延了实验时长
(2)实验过程中不够冷静,头脑比较紊乱,没有认真思考,原因有课本的知识还学得不够扎实,当然实验中吵杂和闷热的环境也会在一定程度上时我们头脑不够清醒。
其中在溢出检测问题上,没有经过冷静分析便盲目动手,造成了本实验中最大的失误;
(3)对基础知识的掌握不够牢固,在实验过程中分析错误时存在困难,从而造成因为求补电路的搭建以及溢出电路的搭建的错误而花费了很多时间检查线路。
总的来说,这次试验加深了我对运算器基本原理的了解,学会了如何利用4位运算器来构造8位运算器并实现累加,以及怎样实现硬件求补逻辑,实验过程中也锻炼了我对实验认真仔细,沉着冷静的良好习惯,为以后的学习奠定了基础。