武汉工程大学计算机科学与工程学院《计算机组成原理》实验报告专业班级XX 实验地点机电大楼302学生学号XX 指导教师XX学生姓名XX 实验时间第10周实验项目运算器实验实验类别操作性(√)验证性()设计性()综合性()其它()实验目的及要求实验目的:1、掌握简单运算器的数据传输方式。
2、验证运算功能发生器(74LS181)及进位控制的组合功能。
实验要求:完成不带进位及带进位算术运算实验、逻辑运算实验,了解算术逻辑运算单元的运用。
成绩评定表类别评分标准分值得分合计上机表现积极出勤、遵守纪律主动完成实验设计任务30分程序代码比较规范、基本正确功能达到实验要求30分实验报告及时递交、填写规范内容完整、体现收获40分评阅教师:日期:年月日实验内容一、实验原理图1-1 运算器原理实验中所用的运算器原理如图1-1所示。
其中运算器由两片74LS181以并/串形式构成8位字长的ALU。
运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由二个锁存器(74LS273)锁存,锁存器的输入已连至数据总线,数据开关(INPUT UNIT)用来给出参与运算的数据,经一三态门(74LS245)和数据总线相连,数据显示灯(BUS UNIT)已和数据总线相连,用来显示数据总线内容。
本实验装置的控制线(CTR-IN UNIT)应与(CTR-OUT UNIT)相连,数据总线、时序电路(TIME UNIT)产生的脉冲信号(T1-T4)、P(1)、P(2)、P(3)本实验装置已作连接,(CLK UNIT)必须选择一档合适的时钟,其余均为电平控制信号(HC-UNIT)。
进行实验时,首先按动位于本实验装置右中则的复位按钮使系统进入初始待令状态,在LED显示器闪动出现“P.”的环境下,按动增址命令键使LED显示器自左向右第一位显示提示符“H”,表示本装置已进入手动单元实验状态,在该状态下按动单步命令键,即可获得实验所需的单脉冲信号,而各电平控制信号用位于LED显示器左方的K25-K0二进制数据开关来模拟。
在进行手动实验时,必须先预置开关电平:/ Load=1,/CE=1,其余开关控制信号电平均置为0,这在以后手动实验时不再说明,敬请注意。
二、实验连接按上图实验线路作以下连接:1、八位运算器控制信号连接:位于实验装置左上方的控制信号(CTR-OUT UNIT)中的(S3、S2、S1、S0、M、/CN、LDDR1、LDDR2、LDCZY、C、B、A)与位于实验装置右中方的(CTR-IN UNIT)、位于实验装置左中方的(UPC UNIT)、位于右上方的(FL- UNIT)作对应连接。
2、完成上述连接,仔细检查无误后方可接通电源进入实验。
三、实验仪器工作状态设定在闪动的“P.”状态下按动"增址”命令键,使LED显示器自左向右第一位显示提示符“H”,表示本装置已进入手动单元实验状态。
四、实验项目(一)算术运算实验拨动二进制数据开关向DR1和DR2寄存器置数(置数灯亮表示它所对应的数据位为‘1’、反之为‘0’)。
具体操作步骤图示如下:[CBA=001] [LDDR1=1] [LDDR1=0][LDDR2=1] [LDDR2=0][“按STEP”] [按“STEP”]检验DR1和DR2中存的数是否正确,具体操作为:关闭数据输入三态门(CBA=000),打开ALU 输出三态门(CBA=010),当置S3、S2、S1、S0、M为11111时,总线指示灯(BUS-DISP UNIT)显示DR1中的数,而置101 01时总线指示灯将显示DR2中的数。
算术运算(不带进位加)的实验方法:置CBA=010,S3、S2、S1、S0、M、/CN状态为100101,LDCZY=0,此时数据总线上的显示灯应为00001100(0CH)。
(二)进位控制实验进位控制运算器的实验原理如图1-1右上下角所示,其中181的进位端进入LS74锁存器D端,该端的状态锁存由T4、/CN和LDCZY信号控制,T4是时序脉冲信号,在T4周期将本次运算的进位结果锁存到进位锁存器中,实验时按动“单步”命令键产生。
/CN、LDCZY是电平控制信号,在/CN=0时实现强制性带进位运算且进位为1,/CN=1、LDCZY=0时实现不带进位控制运算;在/CN=1、LDCZY=1时可实现带进位控制运算。
(1)进位标志清零具体操作方法如下:关闭数据输入三态(CBA=000),S3、S2、S1、S0、M的状态置为00000,/CN状态置为0,LDCZY 状态置为1,(清零时DR1寄存器中的数应不等于FF)按动单步命令键。
注:进位标志指示灯CY亮时表示进位标志为1,有进位;标志指示灯CY灭时表示进位为0,无进位。
(2)用二进制数码开关向DR1和DR2寄存器置数首先关闭ALU输出三态门(CBA=000),开启数据开关输入三态门(CBA=001),设置数据开关。
例如向DR1存入01010101,向DR2存入10101010。
具体操作步骤同上:(3)验证带进位运算及进位锁存功能,使/CN=1,LDCZY=1,来进行带进位算术运算。
例如:做加法运算,首先向DR1、DR2置数,然后关闭数据输入三态(CBA=000)、打开ALU输出三态门(CBA=010),S3、S2、S1、S0、M状态为10010,此时数据总线上显示的数据为DR1加DR2加当前进位标志,这个结果是否产生进位,则要按动单步命令键,若进位标志(CY)灯亮,表示有进位;反之无进位。
在给定DR1=65、DR2=A7的情况下,改变运算器的功能设置,观察运算器的输出,填入下表中,并和理论分析进行比较、验证。
(三)逻辑运算实验拨动二进制数据开关向DR1和DR2寄存器置数分别为65H、A7H(置数灯亮表示它所对应的数据为“1”、反之为零)。
具体操作步骤同上:检验DR1和DR2中存的数是否正确,具体操作为:关闭数据输入三态(CBA=000),打开ALU 输出三态门(CBA=010),当置S3、S2、S1、S0、M为11111时,总线指示灯(BUS-DISP UNIT)显示DR1中的数,而置10101时总线指示灯显示DR2中的数。
逻辑或非运算的方法是置CBA=010,S3、S2、S1、S0、M状态为00011,此时数据总线上的显示灯应为00011000(18H)。
五、实验思考验证74LS181的算术逻辑运算功能。
在给定DR1=65、DR2=A7的情况下,改变运算器的功能设置,观察运算器的输出,填入下表中,并和理论分析进行比较、验证。
74LS181逻辑注:表中“+”表示逻辑或,“/”表示反向,“AB”表示逻辑乘。
六、实验步骤1.按图连线1)关闭ALU的三态门U31(ALU-G=1),打开数据输入电路的三态门(C-G=0);2)向数据暂存器LT2(U27)中送数:(1)设置数据输入电路的数据开关“D7……D0”为想要输入的数值,例如“01010101”。
(2)使数据暂存器LT1的控制信号LDR1有效(LDR1=1),数据暂存器LT2的控制信号LDR2无效(LDR2=0);(3)按一下“单脉冲”按钮,给U27送CLK。
3)向数据暂存器LT2(U28)中送数:(1)设置数据输入电路的数据开关“D7……D0”为想要输入的数值,例如“10101010”,使数据暂存器LT2的控制信号LDR2有效(LDR2=1),数据暂存器LT1的控制信号LDR1无效(LDR1=0);(2)按一下“单脉冲”按钮,给U28送CLK。
4)检验数据暂存器中的数据是否正确:(1)关闭数据输入电路的三态门(C-G=1),打开ALU的三态门U31(ALU-G=0);(2)置“S3S2S1S0M”为“11111”,数据总线显示灯显示数据暂存器LT1(U27)中的数;(3)置“S3S2S1S0M”为“10101”,数据总线显示灯显示数据暂存器LT2(U28)中的数;2.验证74181的算术和逻辑功能:在给定LT1=34H、LT2=B6H的情况下,改变运算器的功能设置,观察运算器的输出。
七、实验过程原始记录(数据、图表、计算等)在给定LT1=65H、LT2=A7H的情况下,改变运算器的功能设置,观察运算器的输出,填入下表中,并和理论分析进行比较和验证:LT1 LT2 S3S2S1S0 M=0(算术运算)M=1(逻辑运算)Cn=1(无进位)Cn=0(有进位)65H A7H 0000 01100100 01100101 100110110001 000011000010001101000101 0101100001100111100010011010 1010011110111100110111101111 01100101 01100110 01100101八、实验结果及分析LT1=65H=01100101LT2=A7H=10100111例如:S3S2S1S0=0101:(1)M=0,Cn=1此时为无进位算术运算,根据74181功能表可知此时输出为:(2)M=0,Cn=0此时为有进位算术运算,根据74181功能表可知此时输出为:(3)M=1,此时为逻辑运算,根据74181功能表可知此时输出为:像以上例子的求法一样,我将所有的S3S2S1S0可能的情况都求出来最后与实验结果对照发现是一致的,说明实验成功。
在实验过程中,我遇到了很多困难,比如线接触不良,导致结果不正确,经过换了几次线才正确,在这期间我也无奈过,但在坚持与细心下终于得到了实验的成功。
下面是74181的功能表:选择M=1 M=0S3 S2 S1 S0 Cn=0 Cn=1 0000 F=/A F=A F=A+10001 F=/(A+B)F=A+B F=(A+B)加10010 F=/A*B F=A+/B F=(A+/B)加10011 F=0 F=减1 F=00100 F=/(A+B) F=A加A*/B F=A加A*/B加10101 F=/B F=(A+B)加A*/B F=(A+B)加A*/B加1 0110 F=/(/A*B+A*/B) F=A减B减1 F=A减B0111 F=A*/B F=A*/B减1 F=A*/B1000 F=/A+B F=A加A*B F=A加A*B加1 F=A 1001 F=/(/A*B+A*/B) F=A F=A+/B B 加B加1F=A+/B加1010 F=B F=A+/B加A*B A*B加11011 F=A*B F=A*B减1 F=A*B1100 F=1 F=A加A F=A加A加11101 F=A+/B F=(A+B)加A F=(A+B)加A加1 1110 F=A+B F=(A+/B)加A F=(A+/B)加A加1 1111 F=A F=A加1 F=A九、结论(1) SW-B和ALU-B是低电平有效。