3控制器部件教学实验.docx
《3控制器部件教学实验.docx》由会员分享,可在线阅读,更多相关《3控制器部件教学实验.docx(20页珍藏版)》请在冰豆网上搜索。
3控制器部件教学实验
3控制器部件教学实验
实验目的
通过看懂教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、MOV、0UT、MVD、JRC、RET等指令)的功能、格式和执行流程,然后自己设分几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确.其最终要达到的目的是:
(1)深入理解计算机控制器的功能、组成知识:
(2)深入地学习计算机各类典型指令的执行流程;
(3)对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念。
(4)学习组合逻辑控制器的设计过程和相关技术.
实验说明
控制器设计是学习计算机总体组成和设计的最重要的部分.要在TEC—3教学计算机完成这项实验,必须比较清楚懂地得:
1.TEC—3教学机控制器中的控制信号形成部件,主要由印制板上的MACH器件和5片GAl20V8器件共同组成:
2.TEC—3教学机上已实现的全部基本指令的控制信号由MACH给出的;而扩展指令的控制信号则由5片GAL给出;
3.应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;
4.要明白TEC—3教学机支持的指令格式及指令执行流程分组情况:
理解TEC—3教学机中已经设计好并正常运行的各类指令的功能、格式和执行流程,也包括控制器设计与实现中的具体线路和控制信号的具体组成;
5。
要明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。
6.自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,需要注意以下几点:
—确定指令格式和功能,要受教学机已有硬件的约束,应尽量与己实现指令的格式和分类方法保持一致:
—划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照己实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能地与原用节拍的状态保持一致或相近;
--在指令流程表中填写每一个控制信号的状态值,基本上是个查表填数的过程,应该持别
细,并有意识地体会这些信号的控制作用;
—写出每个控制信号的完整逻辑表达式,可能和必要的话,进行一点逻辑化简:
—把这些控制信号,按教学计算机设计中规定的几个GAL20v8的引脚分配结果编程到相应的
GAL20V8芯片中去;
—写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断确的设计是否正确;如果有问题,通过各种办法查出错误并改正,继续调试,直到完全正确
实验内容
完成控制器部件的教学实验,主要内容是由学生自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。
(1)首先是看懂TEC—3教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、MOV、OUT、MVD、JC、RET等指令)的功能、格式和执行流程.
(2)设计几条指令的功能、格式和执行程序:
并在教学计算机上实现、调试正确.例如ADC、
OR和JS等指令,可以从给出的12条扩展指令中任意选择数条,当然也可以设计与实现其它的指令,包括原来已经实现的基本指令(要变换为另外一个指令操作码)或自己确定的指令。
注:
在做扩展指令时,要把新指令用到的控制逻辑编程到5片GAL20V8中去.其中五片GAL的管脚定义和扩展指令的代码、分类、节拍发生器设计等已在(TEC—3教学计算机系统技术说明与实验指导)中提供了参考方案,如果采用提供的参考方案,则不需要重写TIMINGGAL处,否则要对TIMINGGAL进行改写.
(3)单条运行指令,查看指令的功能、格式和执行流程。
(4)用监控程序的A、E(扩展指令必须用E命令置入指令的机器码)命令编写一段小程序,
观察运行结果。
(5)实验时将实验台左下方的2个拨动开关置为000(连续、正常运行、组合逻辑),运行
编写的小程序。
观察结果,检验设计的指令是否正确。
若新设计的指令的运行结果与预定结果不符,可查看指令的功能、格式、执行流程设计(节拍逻辑)的是否正确,每一个节拍提供出来的控制信号是否正确。
此时最简单的办法是选用从数据开关读取指令并以单步运行方式来进行查看,即置3个功能控制开关为110状态,启动运行(按下RESET键的同时再按下STEP键)后,通过不断地按STEP键,重复地执行这同一条指令,可以最方便地检查直节拍发生器和各个控制信号的状态是否部正确。
实验步骤
(1)将实验台左下方的3个拨动开关置为l10(单步、手动置指令、组合逻辑):
(2)同时按下“RFSET”和“STEP”按键,加电启动;
(3)通过8位的数据开关置入指令操作码:
(4)单步送脉冲(按“STEP”按键),通过指示灯观察节拍的变化。
取基本指令按上述步骡运行观察结果
1)取基本指令的A组指令中的AHD指令观察其执行辽程
1.置拨动开关Sw=00100110:
2.同时按下RESET和STEP按钮:
节拍指示灯T4-T0显示01100;
3.按STEP按钮;节拍指示灯T4-T0显示01000:
4.技STEP按钮:
节拍指示灯T4-T0显示00000;
5.按STEP按钮;节拍指示订T4-T0显示00010:
6.技STEP按钮;节拍指示灯T4-T0显示00110
7.技STEP按钮:
节拍指示灯T4-T0显示00100
A组指令ADD、SUB、CMP、AND、MOV、SHR、SHL、INC、DEC、IN、OUT、STC、CLC执行共6拍,其中前5拍为公共节拍.这组指令只需一步完成。
2)取基本指令的B组指令中的PSHF指令规察其执行流程
1.置拨动开关SW=11111010;
2.同时按下RESET和STEP按钮;节拍指示灯T4-T0显示01100:
3.按下STEP按钮;节拍指示灯T4-T0显示01000;
4.按下STEP按钮;节拍指示灯T4-T0显示00110;
5.按下STEP按钮;节拍指示灯T4-T0显示00010:
6.按下STEP按钮;节拍指示灯T4-T0显示00110
7.按下STEP按钮;节拍指示灯T4-T0显示00111
8.按下STEP按钮;节拍指示灯T4-T0显示00011
9.按下STEP按钮;节拍指示灯T4-T0显示00001
B组指令LOAD、STO、MVD、PUSH、POP、PUSHF、POPF的执行共8拍,
其中前5拍为公共节拍.该组指令完成需三步.
3)取基本指令的C组指令中的CALL指令观察其执行流程
1.置拨动开关SW=11111100;
2.前五拍与A组和8组指令相同;见前面.
3.按下STEP按钮;节拍指示灯T4-T0显示00111;
4.按下STEP按钮;节拍指示灯T4-T0显示00011;
5.按下STEP按钮;节拍指示灯T4-T0显示00001
6.按下STEP按钮;节拍指示灯T4-T0显示01III7.按下STEP按钮;节拍指示灯T4-T0显示01oll;
8.按下STEP按钮;节拍指示灯T4-T0显示01001
9.按下STEP按钮;节拍指示灯T4-T0显示00l0l
10按下STEP按钮;节拍指示灯T4-T0显示00100;
C组指令JR;JNC,JC,JNZ,4步完成:
RET,6步完成:
CALL8步完成;
4)取基本指令的D组指令中的JMP指令观察其执行流程
I.置拨动开关SW=11111111:
2.前五拍与A组、B组和C组指令相同,见前面.
3.按STEP按钮:
节拍指示灯T4—T0显示00101:
4.按STEP按钮;节拍指示灯T4—T0显示00100:
D组指令:
JMP、FPC、TPC,FSP,TSP,2步完成;
5)开始实验时,可将已给出的所有扩展指令的逻辑表达全编程到5片GAl20V8中,将
5片GAL及其旁边的短路子都插上.
取扩展指令按上述步骤运行观察结果
1>取扩展指令的A组指令中RCR指令观察其执行流程
1.置拨动开关SW=10000001
2.同时按下RESET和STEP按钮;节拍指示灯T4-T0显示01100;
3.按STEP按钮;节拍指示灯T4—T0显示01000;
4.按STEP按钮;节拍指示灯T4—T0显示00000;
5.按STEP按钮;节拍指示灯T4—T0显示00010
6.按STEP按钮;节拍指示灯T4—T0显示00110
7.按STEP按钮;节拍指示灯T4—T0显示00100;
A组指令OR,TEST,ADC,RCR,EI,DI执行流程共6拍,
其中前5拍为公共节拍.该组指令只需一步完成.
2)取扩展指令的C组指令中的JS指令观察其执行流程.
1.置拨动开关SW=11100100;
2.同时按下RESET和STEP按钮;节拍指示灯T4-T0显示0l100;
3.按STEP按钮;节拍指示灯T4—T0显示01000
4.按STEP按钮;节拍指示灯T4—T0显示00000
5.按STEP按钮;节拍指示灯T4—T0显示00010
6.按STEP按钮;节拍指示灯T4—T0显示00110
7.按STEP按钮;节拍指示灯T4—T0显示00111
8.按STEP按钮;节拍指示灯T4—T0显示00011
9.按STEP按钮;节拍指示灯T4—T0显示00001
10.按STEP按钮;节拍指示灯T4—T0显示00100
C组指令JS、JNS,INTP,OUT,执行流程共9拍,其中前5拍为公共节拍.
该组指令只需四步完成.
3>取扩展指令的E组指令中的IRET指令观察其执行流程
I.置拨动开关SW=llll0110;
2.前五拍与A组和C组指令相同,见前面.
3.;按STEP按钮;节拍指示灯T4—T0显示00111
4.;按STEP按钮;节拍指示灯T4—T0显示00011
5.按STEP按钮;节拍指示灯T4—T0显示00001
6.按STEP按钮;节拍指示灯T4—T0显示01111
7.;按STEP按钮;节拍指示灯T4—T0显示01011
8.;按STEP按钮;节拍指示灯T4—T0显示11001
9.按STEP按钮;节拍指示灯T4—T0显示10111
10.按STEP按钮;节拍指示灯T4—T0显示10011
11.按STEP按钮;节拍指示灯T4—T0显示10001
E组指令:
JUMP,8步完成:
READ、WRIT,IRET,9步完成;
(6)单步送脉冲(同时按下“RESET”和“STEP”按钮进行初始化,节拍状态为1100,按
“STEP”按健送脉冲),通过指示灯观察控制信号的变化,当指示订第二次变为全暗
时,表明指令运行完.
1.取基本指令的A组指令中的SHR指令观察其执行过程中控制信号的变化及其作用
置拨动开关SW=10100001:
按“STEP”按钮送脉冲,节拍及控制信号如下表
节拍
指令
编码
/MIO
REQ
/WE
A
B
Sci
SSH
I8-6
I5-3
I2-0
SST
DC1
DC2
1100
1
0
1*
0101
0101
01
00
011
001
001
000
0000
0000
1000
1
0
1
0100
0100
01
00
011
001
001
000
0000
0000
000
1
0
1
0100
0100
01
00
010
000
011
000
0000
0010
0010
1
0
1
0101
0101
11
00
010
000
011
000
0000
1011
0110
0
0
1
0100
0100
00
00
001
000
011
000
0000
0001
0100
SHR
1010
0001
1
0
1
0100
0001
00
00
101
000
011
101
0000
0000
2.取基本指令的B组指令中的LOD指令观察其执行过程中控制信号的变化及其作用.
置拨动开关SW=l0111101;
节拍
指令
编码
/MIO
REQ
/WE
A
B
SCI
SSH
I8-6
I5-3
I2-0
SST
DC1
DC2
1100
1
0
1
0101
0101
01
00
011
001
001
000
0000
0000
1000
1
0
1
0100
0100
01
00
011
001
001
000
0000
0000
0000
1
0
1
0100
0100
01
00
010
001
011
000
0000
0010
0010
1
0
1
0101
0101
11
00
010
000
011
000
0000
0011
0110
0
0
1
0100
0100
00
00
001
000
011
000
0000
0001
0111
LOD
1011
1101
1
0
1
0100
1000
00
00
001
000
011
000
0000
0010
0011
1
0
1
0100
1001
00
00
001
000
011
000
0000
0011
0001
0
0
1
0100
00010
00
00
011
000
111
000
0000
0000
3.取基本指令的C组指令中的JC指令观察其执行流程
置拨动升关SW=11101010;
前4拍的节拍和控制信号与A组和B组的相同,见上面所示
节拍
指令
编码
/MIO
REQ
/WE
A
B
SCI
SSH
18—6
15—3
I2-0
SST
DCl
DC2
0110
0
0
1
0100
0100
00
00
00I
000
011
000
0000
0001
0111
JC
1110
1010
1
0
1
0100
0100
01
00
010
000
011
000
0000
0010
0011
1
0
1
0101
0101
11
00
010
000
011
000
0000
0011
0001
0
0
1
0100
0100
00
00
011
000
10l
000
0000
0000
0100
1
0
1
0101
0101
11
00
0
000
101
000
0100
0000
4.取基本指令的D组指令中的9P指令观察其执行流程
置拨动开关Sw=11111111:
前4拍的节拍和控制信号与A组和B组的相同,见上面所示。
节拍
指令
编码
/MIO
REQ
/WE
A
B
SCI
SSH
18-6
I5—3
I2—0
SST
DCl
DC2
0110
0
0
1
0100
0100
00
00
001
000
011
000
0000
0001r
0101
JMP
1111
1111
1
0
1
1011
0101
00
00
011
000
100
000
0000
0000
0100
1
0
1
1010
0100
00
00
011
000
100
000
0000
0000
5.取扩展指令的A组指令中的ADC指令观察其执行流程
置拨动开关Swb01110100
节拍
指令
编码
/MIO
REQ
/WE
A
B
SCI
SSH
I8-6
I5-3
I2-0
SST
DC1
DC2
1100
1
0
1
0101
0101
01
00
011
001
001
000
0000
0000
1000
1
0
1
0100
0100
01
00
011
001
001
000
0000
000
0000
1
0
1
0100
0100
01
00
010
000
001
000
0000
000
0010
1
0
1
0101
0101
11
00
010
000
01l
000
0000
1011
0110
0
0
1
0100
0100
00
00
001
000
011
000
0000
0001
0100
ADC
0111
0100
1
0
1
0000
0001
10
00
011
000
001
001
1000
0000
6,取扩展指令的C组指令中的INPT指令观察其执行温程
置被动开关SW=11100010
前4拍的节拍和控制信号与A组指令的相同,见上面所示:
节拍
指令
编码
/WIO
REQ
/WE
A
B
SCI
SSH
I8-6
I5-3
I2-0
SST
DC1
DC2
0110
INPT
0
0
1
0100
0100
00
00
001
0
011
000
0
0001
0111
1101
0010
1
0
1
0100
01
01
010
000
01
0
1000
10
0011
1
0
1
0101
0101
1
010
0
011
0
1000
0011
0001
0
0
1
0100
001
111
0
1000
0
0100
0
1
0l00
0000
0
000
11
000
1000
7.取扩展指令的6组指令中的照IT指令观察其执行流程
置拨动开关SW基10001101
前4拍的节拍和控制信号与A组指令的相同,见上面所示:
节拍
指令
编码
/MIO
REQ
/WE
A
B
SCI
SSH
I8-6
I5-3
0
SST
DCI
DC2
0110
0
0
1
01
0100
00
00
001
000
011
000
0000
0001
0111
WRIT
1000
1101
1
0
1
0I
0100
0l
010
000
011
000
1000
0010
0011
1
0
1
0101
0101
11
010
000
011
000
1000
0011
0001
0
0
1
01
1001
00
00
011
000
111
000
1000
1111
1
0
1
0100
0100
01
00
010
000
011
000
1000
0010
1011
1
0
1
0101
0101
1I
00
010
000
011
000
1000
11
1001
0
0
1
0100
1000
00
00
011
000
111
000
1000
9000
0111
1
0
1
0100
1000
00
00
00l
000
011
000
1000
0010
011
1
0
1
0101
1001
00
00
001
000
011
000
1000
0011
0001
0
0
0
0100
0001
00
00
001
000
011
000
1001
0000
(6)扩展几条指令并写出各个控制信号的逻辑表达式,将写好的逻辑表达式编程到5片GAL20v8
1)从15条扩展指令中排出数条设计其节拍及控制信号(ADC、JNV、JS、INPT、0UPT、JMP)
2)根据节拍和控制信号写出逻辑表达式,并编程到GAL20v8中去.
GAL20v8
CALl
DONEAPRIL23,2000
123456789101112
T4T3T2T1T0IR7IR6IR5IR4