实验一 实验由运算器组成
- 一、实验目的
- 二、实验电路
- 三、实验设备
- 四、实验任务
- 五、实验步骤和结果
-
- 接线与测试
-
- 观察数据指示灯状态是否与数据开关状态一致
- 向DR1存入01010101,向DR2存入10101010
- 简单的操作和测试
- 验证算术操作和逻辑操作功能
-
- DR1 = 01100011B,DR2 = 10110100B
- DR1 = 10110100B,DR2 = 01100011B
- DR1 = 01100011B,DR2 = 01100011B
- DR1 = 01001100B,DR2 = 10110011B
- DR1 = 11111111B,DR2 = 11111111B
- M1、M控制信号的作用
一、实验目的
(1)掌握算术逻辑操作和算术逻辑操作的工作原理。 (2)熟悉简单操作员的数据传输通路。 (3)验证实验台运算器的8位加、减、和、直通功能。 (4)根据给定数据完成几个指定的算术和逻辑操作。
二、实验电路
图6显示了本实验中使用的计算器数据通路图。ALU由1片ispLSI1024构成。四片四位二选一输入寄存器74HC298构成两个操作数字寄存器DR1和DR2.保存参与操作的数据。DR1接ALUB数据输入端口,DR2接ALUA数据输入端口,ALU的输出在ispLSI1024通过三态门发送到数据总线DBUS7—DBUS进位信号C保存在0上ispLSI1024内的D寄存器。当实验台下部的IR/DBUS开关拨到DBUS在数据总线上连接8个红色发光二极管指示灯DBUS可显示运算结果或输入数据。另一个指示灯C显示计算器进位信号状态。由ispLSI由1024组成的8位运算器的运算类型由选择端组成S2、S1、S0选择,功能如表3所示: 进位C只产生在加减操作中,与、乘、直接操作不影响进位C的状态,即进位C保持不变。减法操作由加减反码1实现。在加法操作中,C代表进位;C代表借位。计算产生的进位在T上升沿4ispLSIC寄存器保存在1024内。 在SW_BUS#信号为0时,参与运算的数据通过三态门74HC244(SW_BUS)送到DBUS总线,然后送到DR1或DR2操作数字寄存器。实验台上的8个二进制数据开关可以输入数据SW0—SW7设置,其中SW0是最低位,SW7是最高位置。开关向上1,开关向下0。 图中尾部粗短线标记的信号为控制信号,控制信号为电位信号。T3、T4是脉冲信号,印刷板上连接到实验台的时间电路T3、T4信号上。S2、S1、S0、ALU_BUS、LD_DR2、LDDR1、M1、M2、SW_BUS#各电位控制信号用电平开关K0—K15来模拟。K0—K15是一组模拟各控制电平信号的开关。开关向上时为1,开关向下时为0,每个开关无固定用途,可根据实验具体情况选择。S2、S1、S0、ALU_BUS、LDDR2、LDDR一是高电平有效,SW_BUS#低电平有效。M1=1时,DR1选择D1—A1作为数据输入端;M1=0时,DR1选择D0—A0作为数据输入端。当LDDR1=1时,在T3在下降边,选定的数据被输入DR1寄存器。M2=1时,DR2选择D1—A1作为数据输入端;M2=0时,DR2选择D0—A0作为数据输入端。当LD_DR2=1时,在T3在下降边,选定的数据被输入DR2寄存器。 数据总线DBUS运算器有五个数据源:ALU,寄存器堆RF,控制台开关SW0—SW七、双端口存储器IDT7132中断地址寄存器IAR。在任何时候,两个或两个以上的数据源都不允许同时进入数据总线DBUS只允许一个(或不)数据源向数据总线输送数据DBUS输送数据。在本实验中,请令确保数据的正确设置和观察RS_BUS# = 1,LRW = 0,IAR_BUS# = 1。 在实验中,每次只产生一组T1、T2、T3、T4脉冲需要在实验台上脉冲DP、DB、DZ正确设置开关。DP开关置1,将DB、DZ每次按下0个开关QD按钮,顺序生成T1、T2、T3、T每个单脉冲。本实验采用单脉冲输出。
三、实验设备
TEC-4计算机组成原理模拟实验系统。
四、实验任务
(1)正确连接运算器模块和实验台上的电平开关,如图6所示K0—K15。由于计算器的C和C指示灯,8位数据开关SW0—SW7、T3、T4的连接已由印刷电路板连接,因此接线任务仅完成相关控制信号和电平开关K0—K15的连线。正确设置开关DZ、DB、DP。用数据开关SW0—SW7向DR1和DR2寄存器置数。 1.置ALU_BUS = 0,关闭ALU向数据总线DBUS的输出;置SW_BUS# = 打开数据开关SW0—SW7向数据总线DBUS的输出。注意数据总线DBUS(或任何其他总线),任何时候只能有一个数据源输出。置IR/DBUS开关于DBUS位置,数据开关SW0—SW在7上设置各种数据,观察数据指示灯状态是否与数据开关状态一致。 2.置M1=1,选择DBUS作为DR1数据源;置LDDR1=1,按QD按钮,则将DBUS的数据打入DR1。置M2=1,选择DBUS作为DR2数据源;置LDDR2=1,按QD按钮,则将DBUS的数据打入DR2。向DR1存入01010101,向DR2存入10101010。 3.置SW_BUS# = 关闭数据开关SW0—SW7对数据总线DBUS的输出;置ALU_BUS = 1,开启ALU 对DBUS的输出。选择S2 = 0、S1 = 0、S1 = 1.通过直接操作计算器DBUS指示灯验证DR2中的内容是否为第二步设定的值。令S2 = 0、S1 = 1、S0 = 0,使运算器进行加运算,通过DBUS指示灯验证DR1中的内容是否为第二步设定的值。在表4中填入控制信号状态与DBUS显示状态。 (2)验证运算器的算术操作和逻辑操作功能。 1.令DR1 = 01100011B,DR2 = 10110100B,正确选择S2、S1、S0、依次加、减、与、直通,乘实验 ,写下实验结果(数据和进位)并分析结果。 2. 令DR1 = 10110100B,DR2 = 01100011B,正确选择S2、S1、S0、依次加、减、与、直通,乘实验 ,写下实验结果(数据和进位)并分析结果。 3. 令 DR1 = 01100011B,DR2 = 01100011B,正确选择S2、S1、S0,依次进行加、减、与、直通,乘实验 ,写下实验结果(数据和进位)并分析结果。 4. 令 DR1 = 01001100B,DR2 = 10110011B,正确选择S2、S1、S0、依次加、减、与、直通,乘实验 ,写下实验结果(数据和进位)并分析结果。 5.令DR1=11111111B,DR2 = 11111111B,正确选择S2、S1、S0、依次加、减、与、直通,乘实验 ,写下实验结果(数据和进位)并分析结果。
(3)M1、M控制信号的作用是什么?M1、M2高低电平,重复第(2)步,观察有什么问题?
五、实验步骤和结果
分析:本实验主要从总线输入数据,并使用计算器进行简单的操作。首先手动将数据输入数据总线,然后分别存在DR1和DR2.将数据发送到运算器ALU在运算将运算结果输出到数据总线。具体步骤如下:
接线与测试
在模拟面板中完成接线。 将IAR_BUS#接VCC,RS_BUS#接VCC,LRW接GND,禁止中断地址寄存器IAR、寄存器堆RF、双端口存储器向数据总线DBUS送数。也可以通过将军CEL#接VCC禁止双端口存储器向数据总线DBUS送数。 将SW_BUS#接K0,将ALU_BUS接K1,S0接K2,S1接K3,S2接K4,LDDR1接K5,LDDR2接K6,M1接VCC,M2接VCC。 置开关DB = 0,DZ = 0,DP = 1.使实验系统处于单拍状态。 关闭实验台电源。按复位按钮CLR#,使实验系统处于初始状态。
按右侧提示连接 按复位按钮 CLR#,使实验系统处于初始状态。
观察数据指示灯状态是否与数据开关状态一致
置K0(SW_BUS#) = 0,K1(ALU_BUS)= 0。置开关SW7—SW0为10101001B。数据指示灯显示101010B。它指示数据总线DBUS的值。打勾表1,不打勾代表0
向DR1存入01010101,向DR2存入10101010
置K5(LDDR1) = 1,K6(LDDR2) = 0。按一次QD按钮,将01010101B置入DR1。 置K5(LDDR1) = 0,K6(LDDR2) = 1。将数据开关SW7—SW0置为10101010B,数据指示灯应显示10101010B。按一次QD按钮,将10101010B置入DR2。
进行简单运算和测试
置K0(SW_BUS#) = 1,关闭数据开关SW0—SW7对数据总线DBUS的输出;置K1(ALU_BUS) = 1,开启ALU 对DBUS的输出。置K4(S2) = 0、K3(S1) = 0、K2(S0) = 1,使运算器进行直通运算。数据指示灯应显示10101010B。这表示DR2置数正确。置K4(S2) = 0、 K3(S1) = 1、K2(S0) = 0,使运算器进行加运算,数据指示灯应显示11111111B。这表示DR1中的数确实是01010101B。 S2 = 0、S1 = 0、S0 = 1时,DBUS指示灯验证DR2中的内容为第2步设置的值。 S2 = 0、S1 = 1、S0 = 0时,DBUS指示灯验证DR1中的内容为第2步设置的值。
验证运算器的算术运算和逻辑运算功能
DR1 = 01100011B,DR2 = 10110100B
令DR1= 01100011B,DR2 = 10110100B,加的结果是00010111B,C = 1;减的结果是01010001B,C = 0;与的结果是00100000B,C不变;直通的结果是10110100B,C不变;乘的结果是00001100B,C不变。
DR1 = 10110100B,DR2 = 01100011B
2.令DR1=10110100B,DR2 = 01100011B,加的结果是00010111B,C = 1;减的结果是10101111B,C = 1;与的结果是00100000B,C不变;直通的结果是01100011B,C不变;乘的结果是00001100B,C不变。
DR1 = 01100011B,DR2 = 01100011B
令 DR1 = 01100011B,DR2 = 01100011B,加的结果是11000110B,C = 0;减的结果是00000000B,C = 0;与的结果是01100011B,C不变;直通的结果是01100011B,C不变;乘的结果是00001001B,C不变。
DR1 = 01001100B,DR2 = 10110011B
4.令 DR1 = 01001100,DR2 = 10110011,加的结果是11111111B,C = 0;减的结果是01100111B,C = 0;与的结果是00000000B,C不变;直通的结果是10110011B,C不变;乘的结果是00100100B,C不变。
DR1 = 11111111B,DR2 = 11111111B
5.令DR1=11111111B,DR2 = 11111111B,加的结果是11111110B,C = 1;减的结果是00000000B,C不变;与的结果是11111111B,C不变;直通的结果是11111111B,C不变;乘的结果是11100001B,C不变。
M1、M2控制信号的作用
M1用于选择DR1的数据输入源。M1=1时,DR1选择D1—A1作为数据输入端;M1=0时,DR1选择D0—A0作为数据输入端。M2用于选择DR2的数据输入源。M2=1时,DR2选择D1—A1作为数据输入端;M2=0时,DR2选择D0—A0作为数据输入端。在做实验内容(2)时,如果将M1或者M2由接VCC改为接GND,则DR1或者DR2选择寄存器堆作为数据输入源。由于没有给寄存器堆中的寄存器置数,因此寄存器的内容处于不可知状态。因此在M1 = 0或者M2 = 0时,进行实验内容(2),结果将是无法预知的。