实验目的
(1)熟悉TEC-8模型计算机的数据通路结构
(2)掌握数据通路中各控制信号的作用和用法
(3)掌握数据通路中数据流动的路径
实验要求
(1)熟悉TEC-8模型计算机的数据通路及各种操作下数据流动路径和流动方向。
实验任务
(1)给R0-R3赋值(比如75H、28H、89H和32H)
(2)将R0-R3依次写入存储器20H-23H单元中(也可以是其他地址)
(3)将存储器20H-23H单元中的数据依次从内存读出,并写入R3-R0
实验步骤
A. 微程序控制器方式
(1)将控制器转换开关拨到下方微程序位置,将编程开关设置为正常位置,将开关DP拨到向上位置。打开电源。
(2)进行通用寄存器和存储器的读、写实验(操作模式设为1111)
在微程序控制器方式下,计算机的操作依次为:
复位 → 设置R0 → 设置R1 → 设置R2 → 设置R3 → 设置PC和AR → 将R0写入内存 → 将R1写入内存 →将R2写入内存 →将R3写入内存 → 重新设置PC和AR→读内存到R3 → 读内存到R2 → 读内存到R1 → 读内存到R0
a) 按下CLR复位键,注意此时uA5-uA0全灭,再按QD键。
b) 请预先填写下表内容,在实验箱上验证所写信号是否正确。如果不一致,请分析原因。按QD结束每个操作。(表中需写出每个操作步骤相关控制信号的0/1取值,并解释该步骤所执行的操作、实验现象,只需写出并解释与相应操作相关的控制信号和数据信号)
表1 微程序控制方式下数据通路实验(操作模式设为1111)
第一步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
开关设置R0 | 0FH | 0 | 0000 | 00 | 01 | 1 | 0 | 75H | 00H | 00H | ||||
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0FH | |||
第二步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
开关设置R1 | 32H | 0 | 0000 | 01 | 00 | 1 | 0 | 28H | 00H | 75H | 75H | |||
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0FH | |||
第三步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
开关设置R2 | 33H | 0 | 0000 | 10 | 01 | 1 | 0 | 89H | 00H | 28H | 75H | 28H | ||
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0FH | |||
第四步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
开关设置R3 | 34H | 0 | 0000 | 11 | 10 | 1 | 0 | 32H | 00H | 89H | 75H | 28H | 89H | |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0FH | |||
实验操作及现象解释: 实验操作:观察uA5-0是否符合每步地址,通过数据开关分别将75H(0111 0101),28H(0010 1000),89H(1000 1001),32H(0011 0010)输入数据总线。输入后立即观察D7-D0是否与输入一致,数设置正确后,按一次QD按钮,将数据分别写入寄存器R0,R1,R2,R3。 现象解释: 第一到四步里,用到与寄存器相关的信号控制 即:MBUS,MEMW,LAR,ARINC,LPC,PCINC,PCADDR,LIR,AR7-0,PC7-0,为RAM部分,在这四步里未使用,其值均为0,INS7-0为任意值,无意义。 设置R0-R3的值用不到运算器,所以M=0,S3-S0=0,ABUS=0禁止将运算结果送往DBUS。 SBUS=1数据开关输入的数据允许输送到DBUS DRW=1表示可以将数据总线的值写入寄存器。 RD1-0 设置A端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. A7-A0显示A端口的值。 RS1-0 设置B端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. B7-B0显示B端口的值。 |
第五步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
开关设置PC和AR初值 | 35H | 0 | 0000 | 00 | 11 | 0 | 0 | 20H | 75H | 32H | 75H | 28H | 89H | 32H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 00H | 00H | 0FH | |||
实验操作及现象解释: 实验操作:观察uA5-0是否为35H,此时B7-B0显示寄存器R3的值即0011 0010,数据开关上输入20H(即拨数据开关为0010 0000)设置地址,D7-D0显示20H,按一次QD按钮,数据开关上输入的数据写入AR7-0和PC7-0 现象解释: 未使用到运算器,因此M=0,S3-S0=0 ABUS=0禁止将运算结果送往DBUS。 D7-D0显示数据总线的值 RD1-0 /RS1-0表示A/B端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. A7-A0/B7-B0显示此步骤A/B端口的值。 此时RS1-0为11,表示B端口读取R3存储器。因此B7-B0为0011 0010 SBUS=1数据开关输入的数据允许输送到DBUS 因此数据开关输入0010 0000被输送到DBUS,由于DRW=0不允许将数据总线的值写入寄存器,20H不会被存入寄存器中。LAR=LPC=1,允许DBUS数据写入AR7-0和PC7-0,但此时MBUS和MEMW为0,禁止RAM进行读写操作。所以AR7-0和PC7-0为0 LIR=0表示IR寄存器不使用 ARINC=PCINC=0表示AR和PC不自加1 |
第六步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
将R0写入内存 | 36H | 1 | 1010 | 00 | 00 | 0 | 1 | 75H | 75H | 75H | 75H | 28H | 89H | 32H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 20H | 20H | 2FH | |||
第七步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
将R1写入内存 | 37H | 1 | 1010 | 00 | 01 | 0 | 1 | 28H | 75H | 28H | 75H | 28H | 89H | 32H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 21H | 20H | 75H | |||
第八步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
将R2写入内存 | 38H | 1 | 1010 | 00 | 10 | 0 | 1 | 89H | 75H | 89H | 75H | 28H | 89H | 32H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 22H | 21H | 28H | |||
第九步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
将R3写入内存 | 39H | 1 | 1010 | 00 | 11 | 0 | 1 | 32H | 75H | 32H | 75H | 28H | 89H | 32H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 23H | 22H | 89H | |||
实验操作及现象解释: 实验操作:观察uA5-0是否符合每步地址,比对数据,按一次QD按钮。AR7-0显示要存入的地址,INS7-0读取PC7-0的地址存入的数据(如:第七步中INS7-0显示20H存入的R0数据) 现象解释: M=1,S3-S0=1010,ABUS=1,MEMW=1:形成通路(F=B),让数据通过ALU传送入RAM中AR7-0显示的地址中 RD1-0 设置A端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. A7-A0显示A端口的值。 RS1-0 设置B端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. B7-B0显示B端口的值。 D7-0:数据总线上的值,表示将要存入内存的数据 ARINC=PCINC=1:AR,PC地址自20H递增 AR7-0:数据要存入的地址 IN7-0:显示PC7-0地址的数据 |
第十步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
重新开关设置PC和AR初值 | 3AH 0011 1010 | 0 | 0000 | 00 | 11 | 0 | 0 | 20H | 75H | 32H | 75H | 28H | 89H | 32H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 24H | 23H | 32H | |||
实验操作及现象解释: 实验操作:观察uA5-0是否符合3AH,在数据开关中输入20H,观察D7-D0是否为20H,按一次QD按钮 现象解释: 设置PC,AR初值时与ALU无关,其控制信号为0,此时内存20H存R0数据,21H存R1数据,22H存R2数据,23H存R3数据 RD1-0 设置A端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. A7-A0显示A端口的值。 RS1-0 设置B端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. B7-B0显示B端口的值。 LAR=1,LPC=1允许DBUS数据写入AR,PC |
第十一步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
读内存到R3 | 3BH 0011 1011 | 0 | 0000 | 11 | 00 | 1 | 0 | 75H | 32H | 75H | 75H | 28H | 89H | 32H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 20H | 20H | 75H | |||
第十二步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
读内存到R2 | 3CH 0011 1100 | 0 | 0000 | 10 | 11 | 1 | 0 | 28H | 89H | 75H | 75H | 28H | 89H | 75H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 21H | 20H | 75H | |||
第十三步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
读内存到R1 | 3DH 0011 1101 | 0 | 0000 | 01 | 10 | 1 | 0 | 89H | 28H | 28H | 75H | 28H | 28H | 75H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 22H | 21H | 28H | |||
第十四步操作 | uA5-0 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 |
读内存到R0 | 3EH 0011 1110 | 0 | 0000 | 00 | 01 | 1 | 0 | 32H | 75H | 89H | 75H | 89H | 28H | 75H |
SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCINC | PCADDR | LIR | AR7-0 | PC7-0 | INS7-0 | |||
0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 23H | 22H | 89H | |||
实验操作及现象解释: 实验操作:观察uA5-0是否符合每步地址,将内存地址20H、21H、22H、23H的数据分别写入到R3,R2,R1,R0中,按一次QD按钮数据写入。 现象解释: 将AR7-0对应的内存数据(此时已显示在D7-0)写入RD1-0选中的寄存器中,并在A端口显示原寄存器存储的值,B端口检验是否将AR7-0对应的内存数据写入对应寄存器中(如第十三步中B7-0显示为28H,RS1-0=10,表示选中R2数据在B端口显示,R2在第十二步写入内存为21H对应数据28H,数据一致) 未使用到运算器,因此M=0,S3-S0=0 ABUS=0禁止将运算结果送往DBUS。 D7-D0显示数据总线的值 RD1-0 /RS1-0表示A/B端口读取的寄存器。如00为R0,01为R1,10为R2,11为R3. A7-A0/B7-B0显示此步骤A/B端口的值。 SBUS=0数据开关输入的数据不允许输送到DBUS ARINC=1表示AR自增 |
B. 独立方式
(1)先将电平控制开关K15-K0与运算器、存储器的各控制信号连接好,若开关不够,可用实验箱上的GND/VCC提供低电平0/高电平1。
将控制器转换开关拨到中间“独立”位置,将编程开关设置为正常位置,将开关DP拨到向上位置。打开电源。
(2)在模型机上完成0FFH和01H相加,并把运算结果存入内存30H单元。请写出操作过程,并说明每个操作步骤所需的控制信号以及数据的流向。以下操作序列仅供参考。
请预先填写下表内容,在实验箱上验证所写信号是否正确。如果不一致,请分析原因。按QD结束每个操作。(只需写出并解释与相应操作相关的控制信号和数据信号)
第一步和第二步:设置两个操作数
操作 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCADDR | LIR |
所接开关 | K10-K9 | K8-K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 | K14 | K13 | K12 | ||
开关设置R0值0FFH | 00 | 00 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 | AR7-0 | PC7-0 | INS7-0 | |||||
1111 1111 | 1111 1111 | 1111 1111 | ||||||||||||
操作 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCADDR | LIR |
所接开关 | K10-K9 | K8-K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 | K14 | K13 | K12 | ||
开关设置R1值01H | 01 | 00 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 | AR7-0 | PC7-0 | INS7-0 | |||||
0000 0001 | 1111 1111 | 0FFH | ||||||||||||
实验操作及现象解释: 实验操作:将所需操作连接上开关,将RD1-0向上拨设置为00,RS1-0为00,DRW,SBUS向下拨设置为1,ABUS设置为0,ALU等价于关闭,因此与ALU相关的操作均可不用设置,双端口存储器相关操作均设置为0,即MBUS,MEMW,LAR,ARINC,LPC,PCADDR,LIR设置为0. 通过数据开关拨送数据1111 1111进入数据总线,观察D7-D0数据是否正确,正确则按QD按钮将数据写入R0. 再次拨动数据开关输入0000 0001进入数据总线,观察D7-D0数据是否正确,正确则按QD按钮将数据写入R1 现象解释: A7-A0/B7-B0显示A/B端口的数据 AR7-0、PC7-0、INS7-0均显示为0,双端口存储器相关操作均被设置为0因此双端口没有数据进入 SBUS=1 允许数据开关输入的数据送入数据总线 DRW=1,RD1-0 表示在T3上升沿对RD1、RD0选中的寄存器输送数据总线上数D7-D0的数据 ABUS=0禁止将ALU数据输送入数据总线 MEMW=0在T2=1期间不允许将数据总线上的数据写入RAM中 MBUS=0禁止将RAM的左端口数据送入数据总线上 LPC=LAR=0禁止数据总线的数据写入PC和AR PCINC=0禁止在T3的上升沿PC加一 ARICN=0禁止在T3的上升沿AR加一 PCADDR=0禁止PC+IR低四位 |
第三步:执行加法
操作 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCADDR | LIR |
所接开关 | K15 | K14-k11 | K10-K9 | K8-K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 | |||
R1+R0→R1 | 0 | 1001 | 01 | 00 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 | AR7-0 | PC7-0 | INS7-0 | |||||
0000 0000 | 0000 0001 | 1111 1111 | 0FFH | 01H | ||||||||||
实验操作及现象解释: 实验操作: 需使用ALU运算器相关操作,将M拨为0,S3-S0拨为1001,ABUS为1,不需要从数据开关获取数据,将SBUS设为0,仍不需要用到双端口存储器,其余操作不用改变 现象解释: M=0,S3-S0=1001表示在为算术模式下结果F=A加B ABUS=1,DRW=1,RD1-0=01 表示允许将ALU运算结果F在T3上升沿对RD1、RD0选中的寄存器R1输送数据总线上数D7-D0的数据即将运算结果F放入R1中 D7-0显示运算结果 |
第四步:设置内存地址
操作 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCADDR | LIR |
所接开关 | K15-k14 | K13-k12 | K11 | K12 | K10 | K9 | K8 | K7 | K6 | K5 | K4 | K3 | ||
开关设置AR初值30H | 01 | 00 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | ||
D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 | AR7-0 | PC7-0 | INS7-0 | |||||
0011 0000 | 0000 0000 | 1111 1111 | 0FFH | 00H | ||||||||||
实验操作及现象解释: 实验操作: 与ALM相关的均设置为0,即M=0,S3-S0=00,允许数据开关输送数据进入数据总线,设置SBUS为1,打开地址寄存器AR即将LAR设置为1.不允许RAM将数据输送到数据总线送入ALU,寄存器中即ABUS、DRW设置为0,其他不变。 现象解释: M=0,S3-S0=00,ABUS=0禁止运算器结果输送入数据总线,等同于ALU关闭,其相关操作均为0 SBUS=1,LAR=1允许将地址数据通过数据开关输送入数据总线后进入AR地址寄存器中 |
第五步:写入内存
操作 | M | S3-S0 | RD1-0 | RS1-0 | DRW | ABUS | SBUS | MBUS | MEMW | LAR | ARINC | LPC | PCADDR | LIR |
所接开关 | K15 | K14-k11 | K10-k9 | K8 | K7 | K6 | K5 | K4 | K3 | K2 | K1 | K0 | ||
R1→(30H) | 1 | 1010 | 01 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | ||
D7-D0 | A7-A0 | B7-B0 | R0 | R1 | R2 | R3 | AR7-0 | PC7-0 | INS7-0 | |||||
0000 0000 | 1111 1111 | 0000 0000 | 0FFH | 00H | 0011 0000 | |||||||||
实验操作及现象解释: 实验操作: 将M设置为0,S3-S0设置为1010,RS1-0设置为01,将SBUS设置为0禁止通过数据开关输送数据ABUS设置为1,MEMW设置为1,LAR、ARINC设置为0,其余不变 现象解释: M=1,S3-S0=1010 表示F=B,显示B端口数据 ABUS=1,RS1-0=01允许将B端口选择的R1寄存的数据输送入数据总线 MEMW=1,AR7-0=0011 0000表示将数据总线上的数据00H写入RAM30H的存储单元 |
总结:
将操作模式设为1111,复位,按一次QD进入本次实验,观察到地址与表中一致,拨动数据开关将数据75H,28H,89H,32H通过数据总线分别存入寄存器R0,R1,R2,R3中,再通过ALU设置成通路、设置AR和PC初值为20H,将寄存器R0,R1,R2,R3中数据分别存入内存地址为20H,21H,22H,23H的内存单元中。最后通过数据总线将内存地址20H,21H,22H,23H的数据分别再存入R3,R2,R1,R0中