一、实验内容与目的
实验要求:
利用 CP226 实验仪的 K16..K23开关做为DBUS数据,其它开关做为控制信号,将数据写累加器A和工作寄存器W,并用开关控制ALU的运算方式,实现运算器的功能,将结果送入OUT寄存器。
实验目的:
了解模型机中算术、逻辑运算单元的控制方法。
二、实验步骤
2.1 实验一::A,W 寄存器实验
将 55H 写入 A 寄存器
二进制开关 K23-K16 用于 DBUS[7:0]的数据输入,置数据 55 H。
K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
---|---|---|---|---|---|---|---|
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
置控制信号为(未给出的控制信号置为“1”):
X2 | X1 | X0 | AEN |
---|---|---|---|
0 | 0 | 0 | 0 |
按住 STEP 脉冲键,按键按下时,输入端口 IN 的红色选择指示灯亮,表明数据源端是 IN,寄存器 A 的黄色选择指示灯亮,表明数据的目标端是 A 寄存器。放开 STEP 键,电路产生一个上升沿,数据 55H 被写入 A 寄存器。
X2X1X0=000,输入端口 IN 打开,二进制开关 K23-K16 的数据输出到 DBUS 上
AEN=0,使得累加器 A 的写使能有效,数据写入 A,一次数据通路完成。注意:一次操作完成后,所有的控制信号复位至无效状态“1”。
将66H 写入 W 寄存器
二进制开关 K23-K16 用于 DBUS[7:0]的数据输入,置数据 66H
K23 | K22 | K21 | K20 | K19 | K18 | K17 | K16 |
---|---|---|---|---|---|---|---|
0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
置控制信号为(未给出的控制信号置为“1”):
X2 | X1 | X0 | WEN |
---|---|---|---|
0 | 0 | 0 | 0 |
按住 STEP 脉冲键,按键按下时,输入端口 IN 的红色选择指示灯亮,表明数据源端是 IN,寄存器 W 的黄色选择指示灯亮,表明选择 W 寄存器。放开 STEP 键,电路产生一个上升沿,数据 66H 被写入 W 寄存器。
2.2 实验二:ALU 实验
模型机中的 ALU 由一片 CPLD 实现,有8种运算,通过 S2,S1,S0 来选择,运算数据由寄存器 A 及寄存器 W 给出,运算结果输出到直通门 D。运算功能表如下:
S2 | S1 | S0 | 功能 | |
---|---|---|---|---|
0 | 0 | 0 | A+W | 加 |
0 | 0 | 1 | A-W | 减 |
0 | 1 | 0 | A|W | 或 |
0 | 1 | 1 | A&W | 与 |
1 | 0 | 0 | A+W+C | 带进位加 |
1 | 0 | 1 | A-W-C | 带进位减 |
1 | 1 | 0 | ~A | A 取反 |
1 | 1 | 1 | A | 输出 A |
将 55H 写入A 寄存器,将 33H 写入W 寄存器,置下表的控制信号,检验运算器的运算结果(X 表示任意)。
Cy IN | S2 | S1 | S0 | 结果(直通门 D) | 注释 |
---|---|---|---|---|---|
X | 0 | 0 | 0 | 88H | 加运算 |
X | 0 | 0 | 1 | 22H | 减运算 |
X | 0 | 1 | 0 | 77H | 或运算 |
X | 0 | 1 | 1 | 11H | 与运算 |
0 | 1 | 0 | 0 | 88H | 带进位加运算 |
1 | 1 | 0 | 0 | 89H | 带进位加运算 |
0 | 1 | 0 | 1 | 22H | 带进位减运算 |
1 | 1 | 0 | 1 | 21H | 带进位减运算 |
X | 1 | 1 | 0 | AAH | 取反运算 |
X | 1 | 1 | 1 | 55H | 输出 A |
2.3 实验三:状态寄存器实验
模型机运算器的状态寄存器有两个状态位 Rz 和 RCy,当 FEN 有效时,每次运算完毕后运算结果的特征会被打入状态寄存器的状态位。如果运算结果为零时 Rz 灯亮起,如果加法运算最高位有进位时或减法运算最高位有借位时 RCy 亮起。
将 55H 写入A 寄存器,将 33H 写入W 寄存器,ALU 做减法,查看状态位 Rz 和 RCy。
将 55H 分别写入 A 寄存器和 W 寄存器,ALU 做减法,查看状态位 Rz。
将 33H 写入A 寄存器,将 55H 写入W 寄存器,ALU 做减法,查看状态位 RCy。
实验习题
将两位实验者学号的最后两位写入分别写入 A 寄存器和 W 寄存器,与运算之后结果送到 OUT 寄存器输出(注意学号本身是 10 进制)。
三、实验过程分析
2.1 实验一
将 55H 写入 A 寄存器,实验现象如图1所示。
图1 55H写入寄存器A
将66H 写入 W 寄存器,实验现象如图2所示。
图2 66H写入寄存器A
3.2 实验二
ALU 实现8种运算,如图3-12所示。
图3 加运算
图4 减运算
图5 或运算
图6 与运算
图7 带进位加运算
图8 带进位加运算
图9 带进位减运算
图10 带进位减运算
图11 取反运算
图12 输出A
3.3 实验三
将 55H 写入A 寄存器,将 33H 写入W 寄存器,ALU 做减法,查看状态位 Rz 和 Rcy,如图13所示。
图13 55H-33H
将 55H 分别写入 A 寄存器和 W 寄存器,ALU 做减法,查看状态位 Rz,如图14所示。
图14 55H-55H
将 33H 写入A 寄存器,将 55H 写入W 寄存器,ALU 做减法,查看状态位 RCy,如图15所示。
图15 33H-55H
实验习题
学号相加,如图16所示
图16 学号相加
四、实验总结
本次实验旨在通过利用 CP226 实验仪的开关,结合累加器 A、工作寄存器 W 和 ALU 运算器,实现运算器的功能,并了解模型机中算术、逻辑运算单元的控制方法。通过实验的设计和操作,我们深入了解了计算机组成原理中运算器的工作原理、数据传输方式、运算方式以及状态寄存器的作用。以下是对实验过程和结果的详细总结。
在实验一中,我们进行了 A、W 寄存器实验。通过将 55H 写入 A 寄存器和将 66H 写入 W 寄存器,我们成功将指定的数据存入对应的寄存器中。这一步骤验证了 CP226 实验仪的开关作为数据输入的功能,并确保了寄存器的准备工作。这个实验使我们对寄存器的数据存储和读取操作有了更深入的理解。
在实验二中,我们进行了 ALU 实验。ALU 是模型机中的算术、逻辑运算单元,通过选择 S2、S1、S0 控制信号来决定具体的运算方式。在这个实验中,我们将 55H 写入 A 寄存器,将 33H 写入 W 寄存器,并根据控制信号的不同选择进行运算。通过观察 ALU 输出端的直通门 D,我们可以验证运算器的运算结果。通过实验,我们学会了通过控制信号来选择运算方式,并能够观察和分析运算结果。
在实验三中,我们进行了状态寄存器实验。状态寄存器包含 Rz 和 RCy 两个状态位,用于记录运算结果的特征,如结果是否为零、是否产生进位或借位等。在本次实验中,我们打开 FEN(特征使能)信号,进行运算,并观察状态寄存器的状态位。通过观察 Rz 灯和 RCy 灯的亮灭情况,我们可以判断运算结果的特征。这个实验让我们更好地理解了状态寄存器在运算过程中的作用和重要性。
通过以上实验,我们对模型机中的运算器功能和控制方法有了更深入的理解。实验过程中,我们成功地利用 CP226 实验仪的开关作为数据输入,并将数据写入累加器 A 和工作寄存器 W。我们还通过选择不同的控制信号,控制 ALU 的运算方式,观察了运算结果。同时,通过打开 FEN 信号,我们了解了状态寄存器的功能和运算结果的特征。
通过本次实验,我们认识到计算机组成原理中运算器的重要性,它是计算机实现算术和逻辑运算的核心组件。掌握运算器的功能和控制方法对于理解计算机的工作原理以及进行计算机系统设计和优化具有重要意义。
本次实验不仅帮助我们巩固了理论知识,还让我们实际操作了模型机,加深了对计算机硬件的认识。我们学会了如何利用开关控制数据和信号的输入,观察和分析运算结果,了解状态寄存器的作用。这些实践操作提高了我们对计算机系统的理解和能力,并为今后的学习和研究打下了坚实的基础。