实验七 堆指令部件模块实验
一、实验目的
1、掌握指令部件的组成方式。
2、熟悉指令寄存器的打入操作,PC计数器的设置和加1操作,理解跳转指令的实现过程。
二、实验要求
按照实验步骤完成实验项目,掌握数据打入指令寄存器IR1、PC计数器的重置,PC计数器自动加1和实现跳转指令的方法。
三、实验说明
3.1 指令部件模块实验的构成:(如图3-2)
1、1片74LS374作为指令模块的指令寄存器IR1,另1片74LS374作为地址锁存器IR2。8芯插座PC-IN作为数据输入端,可通过短8芯扁平电缆把数据输入端连接到数据总线上。
2、2片74LS161作为PC计数器。
3、2片74LS245(同时只有1片输出)作为当前地址的输出。8芯插座PC-OUT作为地址输出端,可通过短8芯扁平电缆把地址输出端连接到地址总线上。
4、1片74LS153来实现多种条件跳转指令(JZ,JC,JMP等跳转指令)。

3.2 指令部件模块原理:(如图3-2)
1、指令寄存器IR1(74LS374)的 EIR1为低电平并且IR1CK有上升沿时,把来自数据总线的数据打入IR1,IR1的输出就作为本系统内的8位指令I0~I7。在本系统内由这8位指令可最多译码256条不同的指令,通过编码可对应出这些指令在微程序存储器中入口地址,并且输出相应的微指令。
2、2片74LS161组成了PC计数器,它由信号ELP、信号PC-O、脉冲PCCK来控制PC计数器+1和PC计数器置数操作。在停机状态下,由控制台置起始地址,给出打入脉冲并置入74LS161。当ELP=0,PCCK有上升沿时可重新置PC值。当PCO=0、ELP=1, PCCK是上升沿时把当前PC计数器加1,并且把PC计数器的值作为地址输出到地址总线上。
3、置EIR2为低电平,并且IR2CK有上升沿时,数据总线的数据打入IR2锁存器后,置IR2-O=0,PC-O=1时,把IR2的值作为地址输出到地址总线上。
4、74LS153是4选1的芯片,可通过JS0、JS1来选择用JC还是JZ来实现条件跳转的指令。
JS1 | JS0 | 功 能 |
0 | 0 | 选择JZ 当通用寄存器为0时跳转 |
0 | 1 | 选择JC 当进位寄存器为0时跳转 |
1 | 0 | 选择JN 提供给用户自定义,JN=0跳转 |
1 | 1 | 重新设置当前PC指针,实现JMP指令 |

3.3 控制信号说明
信号名称 | 作 用 | 有效电平 |
IR1CK | IR1的工作脉冲 | 上升沿有效 |
IR2CK | IR2的工作脉冲 | 上升沿有效 |
PCCK | PC计数器工作脉冲 | 上升沿有效 |
EIR1 | 选通指令寄存器IR1 | 低电平有效 |
EIR2 | 选通指令寄存器IR2 | 低电平有效 |
IR2-O | IR2输出允许 | 低电平有效 |
PC-O | PC计数器内容输出允许 | 低电平有效 |
ELP | 74LS161控制信号 | 高电平可重置PC值;低电平时PC值自动加1 |
JS0-JS1 | 选择开关 | 见上表 |
JZ | 条件跳转 | 为零跳转 |
四、实验步骤
● 在启停单元中按“运行”按钮,使实验平台处于运行状态。
● 把EIR1,EIR2,PC-O,IR2-O,ELP,JS0,JS1接入二进制拨位开关中。把IR1CK和IR2CK接入脉冲单元PLS1,PCCK接入PLS2中。用长8位扁平电缆把PC-IN与右板上的二进制开关单元中J03相连(对应二进制开关H0~H7),PC-OUT用短8位扁平电缆连接地址总线AJ1,其他控制信号请按下表接线。
信号定义 | 接入开关位号 |
IR1CK | PLS1 孔 |
IR2CK | PLS1 孔 |
PCCK | PLS2 孔 |
EIR1 | H20 孔 |
EIR2 | H19 孔 |
IR2-0 | H18 孔 |
PC-O | H17 孔 |
ELP | H16 孔 |
JS0 | H15 孔 |
JS1 | H14 孔 |
JZ | H13 孔 |
接线图示:
实验一:PC计数器置数
● 二进制开关H0~H7作为数据输入,置05H(对应开关如下表)。
H7 | H6 | H5 | H4 | H3 | H2 | H1 | H0 | 数据总线值 |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 8位数据 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 05H |
● 置控制信号如下:
H20 | H19 | H18 | H17 | H16 | H15 | H14 |
EIR1 | EIR2 | IR2-O | PC-O | ELP | JS0 | JS1 |
1 | 0 | 1 | 1 | 0 | 1 | 1 |
实验结果图片如下:

● 按启停单元中的运行按键,使实验平台处于运行状态。
● 按脉冲单元中的PLS1脉冲按键,在IR2CK上产生一个上升沿,把当前数据总线数据打入IR2锁存器,按脉冲单元中的PLS2脉冲按键,在PCCK上产生一个上升沿,将IR2锁存器中的地址打入PC计数器(2片74LS161)中,这样的操作过程可实现无条件跳转指令。若要观测输出结果,再置信号PC-O=0,此时PC计数器把其内容作为地址输出到地址总线上,地址总线上的指示灯IAB0~IAB7应显示05H。
实验结果图片如下:

实验二:PC计数器加1
● 完成实验1后,重置各控制信号如下:
H20 | H19 | H18 | H17 | H16 | H15 | H14 |
EIR1 | EIR2 | IR2-O | PC-O | ELP | JS0 | JS1 |
1 | 1 | 1 | 0 | 1 | 1 | 1 |
实验结果图片如下:

● 按脉冲单元中的PLS2脉冲按键,在PCCK上产生一个上升沿,因PC-O=0,PC计数器将加1,PC计数器为06H,并且输出至地址总线。此时地址总线上的指示灯IAB0~IAB7应显示06H。
实验三:置当前指令寄存器
● 二进制开关H0~H7作为数据输入,置5FH(对应开关如下表)。
H7 | H6 | H5 | H4 | H3 | H2 | H1 | H0 | 数据总线值 |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 8位数据 |
0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 5FH |
● 置控制信号如下:
H20 | H19 | H18 | H17 | H16 | H15 | H14 |
EIR1 | EIR2 | IR2-O | PC-O | ELP | JS0 | JS1 |
0 | 1 | 1 | 1 | 1 | 0 | 0 |
实验结果图片如下:

五、实验总结
● 实验原理
本实验主要围绕指令部件模块及其在计算机体系结构中的作用进行,具体讲述了如何利用硬件实现指令的打入、程序计数器(PC)的设置与加1,以及跳转指令的实现。实验所涉及的关键概念包括指令寄存器、程序计数器以及条件跳转的控制信号。以下是详细的实验原理分析:
● 指令寄存器(IR1):
指令寄存器(IR1)用于存储当前正在执行的指令。通过74LS374芯片实现,当控制信号EIR1为低电平时,正当IR1CK(时钟脉冲)有上升沿信号到来时,数据总线上的数据就会被打入IR1,从而使系统能够读取并执行该指令。在本实验中,IR1能够存储8位二进制指令,最多可编码出256条不同的指令。
● 程序计数器(PC):
程序计数器(PC)是一个存放下一条将要被执行的指令的地址的寄存器。通过74LS161芯片实现。PC的控制包括两种基本操作:重置和自增。设定控制信号ELP为低电平时,PC的值自增1;如果设定为高电平时,PC也可以被置为一个新的下一个指令地址。PC的输出通过控制信号PC-O可以输出到地址总线。
● 跳转指令:
跳转类型指令如JZ、JC和JMP是程序控制流的重要组成部分。使用74LS153芯片作为选择开关,在这里根据指定条件生成控制信号,允许程序跳转到新的指令位置。例如,当某寄存器的值为零时执行JZ指令,或者当进位标志为零时执行JC指令。这种条件跳转通过选通控制信号来决定程序流转向。
● 实验结果分析
在实验中,按照设计步骤成功实现了以下几个重要操作:
● PC计数器置数:
在进行PC计数器置数时,成功将05H输入地址锁存器(IR2),并将内容打入PC计数器。当执行后,地址总线的指示灯成功显示为05H,验证输入的准确性。
● PC计数器加1:
通过控制信号设置,在PC计数器之前的状态下,通过时钟脉冲成功将PC值加1,最终在地址总线指示灯处观察到输出结果为06H。这表明程序计数器的自增操作正确实现。
● 当前指令寄存器的设置:
将数据5FH通过二进制开关输入后,持续设置新的控制信号,以成功打入指令寄存器IR1。在按下时钟脉冲后,IR1的指示灯显示了5FH,表明指令读取过程正常。
这些实验结果确立了指令部件在处理和执行微指令中的关键作用,为基础的计算机组成原理提供了验证。
● 个人感悟
通过这次实验,我对计算机指令处理的基本原理和硬件实现有了更深入的理解。实验中的每一步都强化了我对计算机体系结构及其构件之间相互关系的认识,特别是在指令寄存器和程序计数器的功能与操作上。
此外,我对硬件之间的时序控制与信号传递有了更加直观的理解。在实际构建和调试过程中,动态的观察信号变化及其对系统状态的影响,让我感受到了硬件设计中的细致与严谨。通过实验,我意识到理论知识与实际操作之间的密切联系,这让我在进行未来更复杂的项目时更加自信。
接下来的学习中,我希望能够深入探讨更复杂的指令系统设计及其在现代计算机中的实用性的更多应用,为进一步的研究和开发奠定基础。