1、计算机组成原理实验报告实验一 寄存器实验一、实验目的(1) 了解模型机中 A, W 寄存器结构、工作原理及其控制方法。(2) 了解模型机中寄存器组 R0R3 结构、工作原理及其控制方法。二、实验要求(1) A、W 寄存器:利用 COP2000 实验仪上的 K16K23 开关做为 DBUS 的数据,其它开关做为控制信号,将数据写入寄存器 A,W 。(2) R0、R1 、 R2、R3 寄存器实验:利用 COP2000 实验仪上的 K16K23 开关做为 DBUS 的数据,其它开关做为控制信号,对数据寄存器组R0R3 进行读写。三、实验说明寄存器的作用是用于保存数据的,因为我们的模型机是 8 位的,
2、因此在本模型机中大部寄存器是 8 位的,标志位寄存器(Cy, Z) 是二位的。COP2000 用 74HC574 来构成寄存器。74HC574 的功能如下:注意:1. 在 CLK 的上升沿将输入端的数据打入到 8 个触发器中2. 当 OC = 1 时触发器的输出被关闭,当 OC=0 时触发器的输出数据OC CLK Q7Q0 注释1 X ZZZZZZZZ OC 为 1 时触发器的输出被关闭0 0 Q7Q0 当 OC=0 时触发器的输出数据0 1 Q7Q0 当时钟为高时,触发器保持数据不变X D7D0 在 CLK 的上升沿将输入端的数据打入到触发器中74HC574 工作波形图四、实验原理实验 1:
3、A,W 寄存器实验(1)原理图寄存器 A 原理图寄存器 W 原理图(2)工作波形图寄存器 A,W 写工作波形图(3)连接线表连接 信号孔 接入孔 作用 有效电平1 J1 座 J3 座 将 K23-K16 接入DBUS7:02 AEN K3 选通 A 低电平有效3 WEN K4 选通 W 低电平有效4 ALUCK CLOCK ALU 工作脉冲 上升沿打入(4)实验数据a.)将 31H 写入 A 寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 31H。K23 K22 K21 K20 K19 K18 K17 K160 0 1 1 0 0 0 1置控制信号为:K4(WEN)
4、K3(AEN)1 0按住 CLOCK 脉冲键,CLOCK 由高变低,这时寄存器 A 的黄色选择指示灯亮,表明选择 A 寄存器。放开 CLOCK 键,CLOCK 由低变高,产生一个上升沿,数据 31H 被写入 A 寄存器。b)将 61H 写入 W 寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 61H。K23 K22 K21 K20 K19 K18 K17 K160 1 1 0 0 0 0 1置控制信号为:K4(WEN) K3(AEN)0 1按住 CLOCK 脉冲键,CLOCK 由高变低,这时寄存器 A 的黄色选择指示灯亮,表明选择 A 寄存器。放开 CLOCK 键,C
5、LOCK 由低变高,产生一个上升沿,数据 61H 被写入 A 寄存器。实验 2:R0,R1,R2,R3 寄存器实验(1)原理图寄存器 R0,R1 ,R2,R3 原理图寄存器 R 写工作波形图(3)连接线表连接 信号孔 接入孔 作用 有效电平1 J1 座 J3 座 将 K23-K16 接入DBUS7:02 RRD K11 寄存器组读使能 低电平有效3 RWR K10 寄存器组写使能 低电平有效4 SB K1 寄存器选择 B5 SA K0 寄存器选择 A6 RCK CLOCK 寄存器工作脉冲 上升沿打入(4)实验数据注意观察:1. 数据是在放开 CLOCK 键后改变的,也就是 CLOCK 的上升沿
6、数据被打入。2. K1(SB), K0(SA) 用于选择寄存器。K1(SB) K0(SA) 选择0 0 R00 1 R11 0 R21 1 R3将数据分别写入 R0,R1,R2,R3 寄存器:a.) 将 31H写入 R0寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 31HK23 K22 K21 K20 K19 K18 K17 K160 0 1 1 0 0 0 1置控制信号为:K11(RRD) K10(RWR) K1(SB) K0(SA)1 0 0 0b.) 将 41H写入 R1寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 41HK23 K
7、22 K21 K20 K19 K18 K17 K160 1 0 0 0 0 0 1置控制信号为:K11(RRD) K10(RWR) K1(SB) K0(SA)1 0 0 1c.) 将 51H写入 R2寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 51HK23 K22 K21 K20 K19 K18 K17 K160 1 0 1 0 0 0 1置控制信号为:K11(RRD) K10(RWR) K1(SB) K0(SA)1 0 1 0d.) 将 61H写入 R3寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 61HK23 K22 K21 K20
8、 K19 K18 K17 K160 1 1 0 0 0 0 1置控制信号为:K11(RRD) K10(RWR) K1(SB) K0(SA)1 0 1 1将 R0,R1,R2,R3 寄存器数据读出5、 实验感想第一次试验不得不说是怀着好奇心去的,从来没有接触过实验仪的我有了这次操作,我觉得计算机组成原理这门课给我带来了乐趣,不再拘泥于书本上的知识,用自己的操作得出实验的结果,一张张图片我都很用心的。希望自己再接再厉,加油!实验二 运算器的实验一、实验目的了解模型机中算术、逻辑运算单元的控制方法。二、实验要求利用 COP2000 实验仪的 K16K23 开关做为 DBUS 数据,其它开关做为控制信
9、号,将数据写累加器 A 和工作寄存器 W,并用开关控制 ALU 的运算方式,实现运算器的功能。三、实验说明COP2000 中的运算器由一片可编程芯片 EPLD 实现。有 8 种运算, 通过S2,S1,S0 来选择。运算数据由寄存器 A 及寄存器 W 给出, 运算结果输出到哪里?(在哪里显示的) 。根据不同的 S2 S1 S0 实现 8 种运算加 减 或 与 带进位加 带进位减 A 取反 输出 A注意:是否需要时钟?四、实验过程(1)连接线表连接 信号孔 接入孔 作用 有效电平1 J1 座 J3 座 将 K23-K16 接入 DBUS7:02 S0 K0 运算器功能选择3 S1 K1 运算器功能
10、选择4 S2 K2 运算器功能选择5 AEN K3 选通 A 低电平有效6 WEN K4 选通 W 低电平有效7 Cy IN K5 运算器进位输入8 ALUCK CLOCK ALU 工作脉冲 上升沿打入(2)实验数据将 55H写入 A寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 55HK23 K22 K21 K20 K19 K18 K17 K160 1 0 1 0 1 0 1置控制信号为:K5(Cy IN) K4(WEN) K3(AEN) K2(S2) K1(S1) K0(S0)0 1 0 0 0按住 CLOCK 脉冲键,CLOCK 由高变低,这时寄存器 A 的黄色
11、选择指示灯亮,表明选择A 寄存器。放开 CLOCK 键,CLOCK 由低变高,产生一个上升沿,数据 55H 被写入 A 寄存器。将 33H写入 W寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 33HK23 K22 K21 K20 K19 K18 K17 K160 0 1 1 0 0 1 1置控制信号为:K5(Cy IN) K4(WEN) K3(AEN) K2(S2) K1(S1) K0(S0)0 0 1 0 0 0按住 CLOCK 脉冲键,CLOCK 由高变低,这时寄存器 W 的黄色选择指示灯亮,表明选择W 寄存器。放开 CLOCK 键,CLOCK 由低变高,产生一
12、个上升沿,数据 33H 被写入 W 寄存器。当 A 31 W 69 时置下表的控制信号, 检验运算器的运算结果K5(Cy IN) K2(S2) K1(S1) K0(S0) 结果(直通门 D) 注释X 0 0 0 9A 加运算X 0 0 1 C8 减运算X 0 1 0 99 或运算X 0 1 1 21 与运算0 1 0 0 9A 带进位加运算1 1 0 0 9B 带进位加运算0 1 0 1 C8 带进位减运算1 1 0 1 C8 带进位减运算X 1 1 0 CE 取反运算X 1 1 1 31 输出 A读数据:五、 实验感想通过实验,让我了解到 M 是算术与逻辑运算的选择端决定了 ALU 进行哪一
13、类的运算,S0,S1,S2 是功能选择控制器,决定了是做加减、逻辑与、逻辑或、逻辑异或等运算。通过灵活运用 S0,S1,S2 的不同组合可以实现许多其他的功能。而且这次实验还涉及到数据总线,它的三个性质为公共性、驱动性和三态性,在数据输入时利用控制开关来控制三态,有效时输出数据,无效时数据输入缓冲器呈现高阻(相当于断开)与数据总线隔离;公共性是总线最根本的属性,所有传输的数据都通过共享数据线分时完成的,何时完成靠控制信号来区分。有收获,我很开心.实验三 数据输出实验/移位门实验一、实验目的(1)了解模型机中数据输出的控制方法。(2)了解模型机中数据移位的过程。 二、实验要求(1)利用 COP2
14、000 实验仪的 X0、X1、X2 作为控制信号,将相应的寄存器内容输出到 DBUS 上。(2)理解并掌握数据移位的原理。三、实验说明COP2000 中有 7 个寄存器可以向数据总线输出数据, 但在某一特定时刻只能有一个寄存器输出数据。 由 X2,X1,X0 决定那一个寄存器输出数据。 数据输出选择器原理图X2 X1 X0 输出寄存器0 0 0 IN-OE 外部输入门0 0 1 IA-OE 中断向量0 1 0 ST-OE 堆栈寄存器0 1 1 PC-OE PC 寄存器 1 0 0 D-OE 直通门1 0 1 R-OE 右移门1 1 0 L-OE 左移门1 1 1 没有输出四、实验过程连接线表连
15、接 信号孔 接入孔 作用 有效电平1 J1 座 J3 座 将 K23-K16 接入 DBUS7:02 X0 K5 寄存器输出选择3 X1 K6 寄存器输出选择4 X2 K7 寄存器输出选择5 AEN K3 选通 A 低电平有效6 CN K9 移位是否带进位 0:不带进位 1:带进位7 Cy IN K8 移位进位输入8 S2 K2 运算器功能选择9 S1 K1 运算器功能选择10 S0 K0 运算器功能选择11 ALUCK CLOCK ALU 工作脉冲 上升沿打入实验 1:数据输出实验置下表的控制信号, 检验输出结果X2 X1 X0 指示灯(红色) 液晶显示(数据总线值)0 0 0 IN 指示
16、输入门(K23-16 )0 0 1 IA 指示 中断向量0 1 0 ST 指示 堆栈寄存器0 1 1 PC 指示 PC 寄存器1 0 0 D 直通门指示 D 直通门1 0 1 R 右移门指示 R 右移门1 1 0 L 左移门指示 L 左移门1 1 1 没有输出实验 2:移位实验(1)原理图ALU 直接输出和零标志位产生原理图ALU 左移输出原理图直通门将运算器的结果不移位送总线。当 X2X1X0=100 时运算器结果通过直通门送到数据总线。同时,直通门上还有判 0 电路,当运算器的结果为全 0 时,Z=1右移门将运算器的结果右移一位送总线。当 X2X1X0=101 时运算器结果通过右通门送到数
17、据总线。具体连线是:Cy 与 CN DBUS7ALU7 DBUS6ALU6 DBUS5 ALU5 DBUS4ALU4 DBUS3ALU3 DBUS2ALU2 DBUS1ALU1 DBUS0Cy 与 CN DBUS7当不带进位移位时(CN=0):0 DBUS7当带进位移位时(CN=1):ALU 右移输出原理图Cy DBUS7左移门将运算器的结果左移一位送总线。当 X2X1X0=110 时运算器结果通过左通门送到数据总线。具体连线是:ALU6 DBUS7ALU5 DBUS6 ALU4 DBUS5ALU3 DBUS4ALU2 DBUS3ALU1 DBUS2ALU0 DBUS1当不带进位移位时(CN=
18、0):0 DBUS0当带进位移位时(CN=1):Cy DBUS0将 31H写入 A寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 31HK23 K22 K21 K20 K19 K18 K17 K160 0 1 1 0 0 0 1置控制信号为:K4(WEN) K3(AEN)1 0按住 CLOCK 脉冲键,CLOCK 由高变低,这时寄存器 A 的黄色选择指示灯亮,表明选择 A 寄存器。放开 CLOCK 键,CLOCK 由低变高,产生一个上升沿,数据 31H 被写入 A 寄存器。将 79H写入 W寄存器二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 79
19、HK23 K22 K21 K20 K19 K18 K17 K160 1 1 1 1 0 0 1置控制信号为:K4(WEN) K3(AEN)0 1A-W:K2 K1 K00 0 1S2S1S0=001 时运算器结果为寄存器 A 内容S2 S1 S0 L(十六进制、二进制)D R0 0 1 30 98 4C注意观察:移位与输出门是否打开无关,无论运算器结果如何,移位门都会给出移位结果。但究竟把那一个结果送数据总线由 X2X1X0 输出选择决定。五、 实验感想通过这次数据输出实验/移位门实验,我知道了数据输出的控制方法、数据移位的过程。这次实验是四次实验中最简单、最容易懂的一次实验。这次实验包括了前
20、几次实验的内容,比如寄存器、运算器。移位与输出门是否打开无关,无论运算器结果如何,移位门都会给出移位结果。但究竟是进行那种运算结果送入到那个寄存器是有 X2、X1、X0 输出选择决定的,这一点很重要。在移位运算中,寄存器 D 表示的是不带移位的运算,也就是我们输入到 A寄存器中的值,寄存器 R 表示的是寄存器 D 中数据右移移位的运算结果,寄存器 L 表示是寄存器 D 中数据左移一位的运算结果。当 X2、X1、X0=100 时运算器结果通过直通门送到数据总线;当 X2、X1、X0=101 时运算器结果通过右通门送到数据总线;以及其他运算结果。做实验越来越得心应手了,也要靠自己去得到想要的结果!
21、实验四 存储器实验一、实验目的(1) 初步了角存储器 EM 的工作原理。(2) 掌握存储器 EM 的操作步骤。二、实验要求利用 COP2000 实验仪上的 K16K23 开关做为 DBUS 的数据,其它开关做为控制信号,将地址数据写入存储器 EM 中,并读出。三、实验说明EM 原理图存储器 EM 由一片 6116RAM 构成,通过一片 74HC245 与数据总线相连。存储器 EM 的地址可选择由 PC 或 MAR 提供。存储器 EM 的数据输出直接接到指令总线 IBUS,指令总线 IBUS 的数据还可以来自一片 74HC245。当 ICOE 为 0 时,这片 74HC245 输出中断指令 B8
22、。连接线表连接 信号孔 接入孔 作用 有效电平1 J2 座 J3 座 将 K23-K16 接入DBUS7:02 IREN K6 IR, uPC 写允许 低电平有效3 PCOE K5 PC 输出地址 低电平有效4 MAROE K4 MAR 输出地址 低电平有效5 MAREN K3 MAR 写允许 低电平有效6 EMEN K2 存储器与数据总线相连 低电平有效7 EMRD K1 存储器读允许 低电平有效8 EMWR K0 存储器写允许 低电平有效9 PCCK CLOCK PC 工作脉冲 上升沿打入10 MARCK CLOCK MAR 工作脉冲 上升沿打入11 EMCK CLOCK 写脉冲 上升沿打
23、入12 IRCK CLOCK IR, uPC 工作脉冲 上升沿打入实验 1:PC/MAR 输出地址选择置控制信号为:K5(PCOE)K4(MAROE)地址总线 红色地址输出指示灯1 0 PC 输出地址 PC 地址输出指示灯亮0 1 MAR 输出地址 MAR 地址输出指示灯亮1 1 地址总线浮空0 0 错误, PC 及 MAR 同时输出 PC 及 MAR 地址输出指示灯亮以下存贮器 EM 实验均由 MAR 提供地址实验 2:存储器 EM写实验 一、 (1)将地址 01写入 MAR二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 01HK23 K22 K21 K20 K19 K1
24、8 K17 K160 0 0 0 0 0 0 1置控制信号为:K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)1 1 1 0 1 1 1按 CLOCK 键, 将地址 01 写入 MAR(2)将地址 31H写入 EM0二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 31HK23 K22 K21 K20 K19 K18 K17 K160 1 0 1 0 0 0 1置控制信号为:K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)1 1 0 1 0
25、1 0按 CLOCK 键, 将地址 31H 写入 EM0二、 (1)将地址 02写入 MAR二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 02HK23 K22 K21 K20 K19 K18 K17 K160 0 0 0 0 0 1 0置控制信号为:K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)1 1 1 0 1 1 1按 CLOCK 键, 将地址 02 写入 MAR(2)将地址 41H写入 EM0二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 41HK23 K22 K21 K20
26、K19 K18 K17 K160 1 1 0 0 0 0 1置控制信号为:K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)1 1 0 1 0 1 0按 CLOCK 键, 将地址 41H 写入 EM0三、 (1)将地址 03写入 MAR二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 03HK23 K22 K21 K20 K19 K18 K17 K160 0 0 0 0 0 1 1置控制信号为:K6 K5 K4 K3 K2 K1 K0(IREN) (PCOE) (MAROE) (MAREN) (EMEN) (E
27、MRD) (EMWR)1 1 1 0 1 1 1按 CLOCK 键, 将地址 03 写入 MAR(2)将地址 51H写入 EM0二进制开关 K23-K16 用于 DBUS7:0的数据输入,置数据 51HK23 K22 K21 K20 K19 K18 K17 K160 1 1 1 0 0 0 1置控制信号为:K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)1 1 0 1 0 1 0按 CLOCK 键, 将地址 51H 写入 EM0实验 3:存储器 EM读实验 (1)将地址 01写入 MAR二进制开关 K23-K16 用于 DBU
28、S7:0的数据输入,置数据 23HK23 K22 K21 K20 K19 K18 K17 K160 0 0 0 0 0 0 1置控制信号为:K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)1 1 1 0 1 1 1按 CLOCK 键, 将地址 0 写入 MAR(2)读 EM0置控制信号为:K6(IREN)K5(PCOE)K4(MAROE)K3(MAREN)K2(EMEN)K1(EMRD)K0(EMWR)1 1 0 1 1 0 1EM0被读出: 31H四、实验感想通过这次存储器实验,让我熟练地了解到存储器 EM 的工作原理以及存储器 EM 的操作步骤。这次的实验相对比较复杂也比较难,老师看着实验一步一步详细地跟我们讲解如何连线,如何进行存储器的存入和读取。但是真正进行实际操作的时候,我们又遇到很多麻烦和问题。在连线过程中,我们由于不太细心,导致连线出现了一些小差错,紧接着我们在存取数据时也出现了问题,我们只能存入但是读取不出来,可能还是我们对存储器的工作原理不够清楚,在老师的指导和仔细讲解下,我们慢慢地捉摸,最终把实验完整地操作出来了。也通过这次试验,让我们更加的明白,要想把一件事做好,必须要明白到底要做什么,才能有目标的进行下一步,一步一步地进行下去,最后终究就取得成功。有志者事竟成,苦心人天不负。