实验一 脱机运算器实验
一、实验目的
1、深入了解位片结构运算器AM2901的功能与用法;
2、学习4片AM2901组成一个16位运算器的级连方式,深化运算器部件的组成、设计、控制和使用等方面的知识。
二、实验原理
运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑运算,以及传送、移位、比较等操作。运算器的组成除了ALU单元外,还包括必要的寄存器和移位器等部件。寄存器用于存放操作数和运算结果,以节省访问存储器的时间;移位器实现数据的移位功能,以扩展ALU的运算功能,增加数据传送的灵活性。
AM2901是一个4位的位片结构运算器,主要由ALU、输入多路选择器、输出选择器、寄存器组和移位器等组成,如图1-1所示。
图1-1 AM2901芯片的内部组成结构
1)算术逻辑ALU
ALU为4位算术逻辑单元,共有8种运算功能,由输入端I5I4I3的编码值决定执行哪一种功能。
2)通用寄存器组
AM2901内部有一个通用寄存器组,共有16个4位的寄存器。寄存器组有A和B两个端口,其中端口A只有读出数据功能,端口B具有读出和写入两种功能。即数据可以从A口和B口输出,但只能从B口输入。
3)Q寄存器
Q寄存器位4位,在乘除运算中可用来存放乘数或商,故又称为乘商寄存器。Q寄存器本身具有移位功能,可对数据进行左移一位或右移一位的处理。
4)ALU输入多路选择器
AM2901具有两个输入多路选择器R和S,为ALU提供两个操作数。R可选择来自数据线的数据D(来自外部)或寄存器组端口A的数据;S可从寄存器组端口A、B和Q寄存器3个来源选取数据。两个操作数的组合由控制信号I2I1I0的编码确定。
5)移位器
4位,用于对ALU的输出实现直送、左移或右移处理。
6)输出选择器
选择AM2901输出数据Y的来源。输出数据Y有两个来源:一个是ALU的运算结果F,另一个是直接来自寄存器组端口A。输出数据Y的选择,以及ALU的运算结果F如何传送给寄存器组端口B的输入或Q寄存器,由控制信号I8I7I6的编码值确定。
表1-1、表1-2和表1-3为ALU操作运算、数据来源以及运算结果处理的选择情况。
表1-1 选择8种运算 表1-2 选择ALU的8种输入数据组合 表1-3 选择运算器的8种结果的处置方案
注:[1] 0表示数值恒为0;[2]D表示外部数据。
7)Am2901需要用一个CLK(CP)时钟信号作为内部通用寄存器、锁存器和Q寄存器的打入(锁存)信号,如图1-2所示。CLK为高电平时A、B锁存器即输入端的数据直通输出端,CLK的下降沿将输入端的数据锁存。CLK为低电平时通用寄存器从B口接收数据,CLK的上升沿将输入端的数据锁存,Q寄存器接收数据的情况与通用寄存器组相同。
图1-2 Am2901时钟CLK信号作用图
三、实验内容与步骤
1、实验说明
脱机运算器实验,是指把运算器部件完全脱离与计算机主机和其他部件正常的连接关系,在完全孤立出来的运算器上进行的实验。此时,只能通过微型拨动开关和按键控制教学机的运算器完成指定的运算功能,并通过信号指示灯观察运算结果。
除I8~I0 的9个拨动开关之外,其余的拨动开关功能和作用如下:
1)A口、B口地址(各4位):输入从A口、B口对内部寄存器组的寄存器进行读、写操作的地址。
2)SCI(2位):选择最低位进位输入信号C0的形成,可取0、1,也可取进位标志C的值(用于带进位的加、减运算)。
3)SSH(2位):选择移位器左移、右移操作时最高位或最低位的移入信号。
4)SST(3位):选择运算器的操作结果对状态标志寄存器的影响,即选择某个操作结果将对状态寄存器的标志有什么影响。
2、实验内容
在运算器脱机环境下,以手工方式,通过拨动开关向运算器提供运算操作所需的控制信号和数据,完成运算器的运算操作。
3、实验步骤
1)打开电源开关后,将教学机左下方的5个拨动开关置为1XX00(单步、16位、脱机方式);先按一下“RESET”按键,再按一下“START”键(每按一下“START”键,时钟电路发出一个负脉冲),进行初始化。
2)将SST 设置为“001”,通过拨动开关向运算器提供控制信号。
3)按下表所列的操作进行脱机运算器实验,将结果填入表中。其中D1取为0101H,D2取为1010H;D1、D2通过16位数据开关向运算器提供数据;通过指示灯观察运算结果及状态标志。
4)特别说明:下表的运算实际上分两步完成:第一步完成数值运算,第二步完成赋值以及将标志状态送到标志寄存器。当设置好I8-I0、SCI、SSH的值以及A口和B口的地址后,运算器进行运算,按下START键后进行赋值(包括标志寄存器)操作。
注:用*标记的运算,表示D1、D2的数据来自外部,由拨动开关SW给出。
四、实验要求
1、认真写出预习报告,包括实验用的全部数据,实验操作步骤等。
2、实验之后写出实验报告,包括实验过程中遇到的问题,解决方法,实验后的心得体会及对该次实验的建议与意见。
五、思考题
1、请举例说明,为何有的运算在按下START键之前和按下START键之后运算器的输出F相同,有的运算在按下START键之前和按下START键之后运算器的输出F不同?
在进行运算器脱机实验时,若通过指示灯检查运算器的每次运算结果,得到运算结果是在START之前,而得到状态寄存器中存入的状态标志结果是在START键之后。
参照ALU的操作周期的时序知A、B口数据锁存是在时钟下降沿,而寄存器的接收是在低电平,按START能得到低电平。所以按START前后结果不同,它们得到的是不同的东西。
六、实验心得
本次实验是第一次了解位片结构运算器AM2901的功能与用法,一开始对实验的仪器毫无了解,后来经过老师讲解与介绍逐渐的了解了工作原理与实验内容。
本次实验最大的收获就是基本理解Am2901的工作原理。对于Am2901,认识到它是用来实现算数和逻辑运算的,结合这次实验设计4位ALU,明白ALU只是一个组合逻辑电路,它能直接对输入的数据进行运算,不会受到时钟信号的影响。
芯片有16个4位通用寄存器,通过A、B地址的选择,可以选择其中的两个寄存器参与当前的运算,但这两个寄存器的内容在传入ALU前,还必须经过对应的A、B锁存器才能进入ALU的两个输入端口,这是用来确保运算过程中数据一致性的问题的。而锁存器只有在脉冲信号的边沿端才会起作用,因此实验中会涉及到按压STEP手动产生脉冲信号,使数据锁存。另外,对于ALU的运算结果,它可以输出到Y,同时又可以将结果保存在B通用寄存器或Q寄存器中。立即数数据不可以经过寄存器传入ALU,它必须直接通过R输入端进入ALU。
第二篇:实验一 运算器实验(1)
实 验 报 告
__级__班
学号____
姓名____
实验一 运算器实验
一、实验目的:
1、掌握简单运算器的数据传送通路;
2、验证运算功能发生器(74LS181)的组合功能;
3、验证带进位控制的算术运算功能发生器的功能;
4、按指定数据完成几种指定的算术运算。
二、实验设备
DVCC-C5JH计算机组成原理教学实验系统一台,排线若干。
三、实验原理
1、实验中所用的运算器数据通路图如附A图1-3所示。其中运算器由两片74LS181以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由二个锁存器(74LS373)锁存,锁存器的输入连至数据总线,数据开关(“INPUT DEVICE”)用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连,数据显示灯(“BUS UNIT”)已和数据总线相连,用来显示数据总线内容。
2、控制信号说明:
T4:脉冲信号;实验时,将W/R UNIT的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲。
S3~S0、M:运算器的功能控制信号;可参见74181芯片的功能表P64。
Cn:进位控制信号,低电平有效。
LDDR1、LDDR2:数据寄存器DR1和DR2的数据装载控制信号,高电平有效。
ALU-B:该控制信号控制是否将ALU的结果送到总线上,低电平有效。
SW-B:三态门开关信号,控制是否打开三态门,低电平有效。
四、实验内容
1、算术逻辑运算实验:
实验步骤:
①按图1-2连接路线,仔细检查无误后,接通电源;
②用二进制数码开关向DR1和DR2寄存器置数。
A)数据开关置01100101;
B)设置switch unit:ALU-B=1 SW-B=0 LDDR1=1 LDDR2=0
C)按动KK2给出一个单脉冲信号,即T4=┎┒
D)数据开关置10100111;
E)设置switch unit:LDDR1=0 LDDR2=1
F)按动KK2给出一个单脉冲信号。
③检验DR1和DR2中存的数是否正确:
A)设置switch unit:SW-B=1 ALU-B=0
B)设置switch unit:当S3S2S1S0M=00000,总线显示灯显示DR1中的数,而置为S3S2S1S0M=01010,总线显示灯显示DR2中的数。
④验证74LS181的算术运算和逻辑运算功能:[给定A=(DR1)=65 H,B=(DR2)=A7 H]
A)改变运算器的功能设置,观察运算器的输出,填入下表:
B)根据得出的数据进行分析,验证74LS181的功能。关闭实验箱电源。
分析结果:(1)SW-B=0时有效,SW-B=1时无效,因其是低电平有效,
ALU-B=0时有效,ALU-B=1时无效,因其是低电平有效,
S3、S2、S1、S0高电平有效。
(2)输入三态门控制端SW-B和输出三态门控制端ALU-B不能同时为“0”状态,否则存在寄存器中的数据无法准确输出。
(3)S3、S2、S1、S0是运算选择控制端,有它们决定运算器执行哪一种运算;M是算术逻辑运算选择,M=0时,执行算术运算,M=1时,执行逻辑运算;Cn是算术运算的进位控制端,Cn=0(低电平),表示有进位,运算时相当于在最低位上加进位1,Cn=1(高电平),表示无进位。逻辑运算与进位无关;、ALU-B是输出三态门控制端,控制运算器的运算结果是否送到数据总线BUS上。低电平有效。SW-B是输入三态门的控制端,控制“INPUT DEVICE”中的8位数据开关D7~D0的数据是否送到数据总线BUS上,低电平有效。
2、进位控制实验:
实验步骤:
①在前面实验的基础上,对照图1-4连接好线路,并检查无误后,接通电源;
②分别向DR1和DR2置下表的一组数值,然后设置SW-B=1。
③验证带进位运算及进位锁存功能:
a)进位标志清零:在switch unit中设置:S3S2S1S0=0000 M=0 AR=0 LDDR1=0 LDDR2=0,然后按动KK2,使CY灯亮;(注意:清0时DR1寄存器中的数不等于FF)
b)运算:在switch unit中设置:M=0 AR=0 S3S2S1S0=1001 LDDR1=0 LDDR2=0;当按动KK2时,可以查看运算结果有无进位,当CY灯亮时无进位,否则有进位。
c)分别设置Cn的状态,查看运算的结果。(Cn=0有进位;Cn=1,无进位)
d)填写结果于下表中。
④回到②做下一组数的运算。(你可以用其他的数据进行验证,把验证的结果写在空行中)
实验思考题:
1、在“1、算术逻辑运算实验”中,根据实验的结果进行分析:⑴当S3S2S1S0=1110 M=1时运算器得到的结果与S3S2S1S0=0001 M=0时得到的结果有无不同;⑵当S3S2S1S0=0110 M=0 Cn=1时与S3S2S1S0=0110 M=0 Cn=0时有什么不同,分别表示什么运算,运算中采用的是原码运算还是补码运算?
答:(1)得到的结果相同
(2)两者之间差1当M=0,Gn=0时,无进位,F=A-B-1,当Gn=1时有进位,F=A-B;运 算中采用的是补码运算
2、⑴在“2、进位控制实验”中,AR信号的作用是什么,试根据运算器数据通路图进行解释。⑵试试:如果在步骤③的b)中不把LDDR1和LDDR2同设置为0,而将其中之一设置为0,另一设置为1,当S3S2S1S0=1001 M=0时会有什么情况发生。是什么数在进行运算?
答AR的作用是控制将进位信号送到运算器的末位进行运算;不把LDDR1和LDDR2同设置为0,而将其中之一设置为0,另一设置为1,当S3S2S1S0=1001 M=0时,数据显示的将会是设置为0的数,最终运算的是设置为0的数,由于另一个数没有参与运算,最后输出的还是那个数。
实验总结:通过这次实验我理解了运算功能发生器(74LS181)的组合功能和简单运算器的数据传送通路,同时明白了逻辑与运算的区别,提高了动手能力
附A: