计算机组成原理课程设计报告时序发生器Word下载.docx
《计算机组成原理课程设计报告时序发生器Word下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告时序发生器Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
二、实验原理电路图
1.时序发生器
TEC-4计算机组成原理实验的时序电路如图所示,电路采用2片GAL22V10(U6,U7),可产生两级等间隔时序新号T1-T4和W1-W4。
其中一个W由一轮T1-T4循环组成,相当于一个微指令周期;
而一轮W1-W4循环可供硬联线控制器执行一条机器指令。
-=时序信号发生器=-
本次实验不涉及硬联线控制器,因此时许产生器中的相关内容也可以根据需要放到硬联线控制器实验中进行。
CLR#为复位新号,低电位有效。
试验仪处于任何状态下令CLR#=0,都会使时序发生器和微程序控制器复位;
CLR#=0时,则可以正常运行。
TJ是停机新号,是控制器的输出新号之一。
连续运行时,如果控制信号停机=1,会使机器停机,停止发送时序脉冲,从而暂停程序。
QD是启动脉冲信号。
DP,DZ,DB是来自控制台的开关信号。
DP表示单拍,当DP=1时,每次只执行一条微指令;
DZ表示单指,当DZ=1时,每次只执行一条机器指令;
当DP,DB,DZ都为0时,机器连续运行。
2.数据通路
微程序控制器是根据数据通路和指令系统来设计的。
这里采用的数据通路是在综合前面各实验模块的基础上,又增加程序计数器PC(U18)、地址加法器ALU2(U17)、地址缓冲寄存器R4(U25/U26)和中断地址寄存器IAR(U19),PC和ALU2各采用一片GAL22V10,两者配合使用,可完成程序地址的储存、增1和加偏移量的功能。
R4由两片74HC298组成,带二选一输入端。
IAR是一片74HC734,用于中断时保存断点地址。
3.微指令格式与微程序控制器电路
根据给定的12条机器指令功能和数据通路总体图的控制信号,采用的微指令格式见下图。
微指令字长共35位。
其中顺序控制部分10位(后继微地址6位,判别字段4位),操作控制字段25位,各位进行直接控制。
微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。
-=微指令格式=-
对应微指令格式,微程序控制器的组成如下图所是示,控制存储器采用5片EEPROM28C64(U8,U9,U10,U11,U12)。
28C64的输出是D0-D7,分别与引脚11、12、13、15、16、17、18、19相对应,CM0是最低字节,CM4是最高字节。
微地址寄存器6位,用一片6D触发器74HC174(U1)组成,带有清零端。
两级与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。
在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随即输出相应的微命令代码。
微地址转移逻辑生成下一地址,等下一个T1上升沿时打入微地址寄存器。
跳转开关JUMP(J1)是一组6个跳线开关。
当用短路子将它们连通时,微地址寄存器μAR从本实验系统提供的微程序地址译码电路得到新的微程序地址μD0-μD5。
当他们被断开时,用户提供自已的新微程序地址μD0-μD5。
这样用户能够使用自己设计的微程序地址译码电路。
5片EEPROM的地址A6(引脚4)直接与控制台开关SWC连接,当SWC=1时,微地址大于或者等于40H,当SWC=0时,微地址的范围00H-3FH。
SWC主要用于实现读寄存器堆的功能。
-=微程序控制器的组成=-
微地址转移逻辑的多个输入信号中,INTQ是中断请求,本实验中可以不理会它。
SWA、SWB是控制台的两个二进制开关信号,实验台上线已接好。
C是进位信号,IR7-IR4是机器指令代码,由于本次实验不连接数据通路,这些信号都接到二进制开关K0—Kl5上。
三、机器指令与微程序
为了简单明了,本实验仪使用12条机器指令,均为单字长(8位)指令。
指令格式如下表所示:
指令的高4位提供给微程序控制器,低4位提供给数据通路。
指令功能与格式
名
称
助记符
功
能
指
令
格
式
IR7IR6
IR5IR4
IR3
IR2
IR1
IR0
加法
ADDRd,Rs
Rd+Rs->
Rd
0
0
RS1
RS0
RD1
RD0
减法
SUBRd,Rs
Rd-Rs->
1
RS1
乘法
MULRd,Rs
Rd*Rs->
逻辑与
ANDRd,Rs
Rd&
Rs->
1
存数
STARd,[Rs]
Rd->
[Rs]
RS0
取数
LDARd,[Rs]
[Rs]->
1
无条件转移
JMP[Rs]
PC
0
XX
条件
转移
JCD
若C=1则
PC+D->
D3
D2
D1
D0
停机
STP
暂停运行
X
X
中断
返回
IRET
返回中断
X
开中断
INTS
允许中断
关中断
INTC
禁止中断
应当指出,用以上12条指令来编写实际程序是不够的。
通过CPU执行一些最简单的程序来掌握微程序控制器的工作原理。
上述12条指令的微程序流程设计如下图所示。
每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:
存储器写操作(KWE):
按下复位按钮CLR#后,微地址寄存器状态为全零。
此时置SWC=0、SWB=1、SWA=0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。
存储器读操作(KRD):
按下复位按钮CLR#后,置SWC=0,SWB=0,SWA=1,按启动按钮后微指令地址转入17H,从而可对RAM连续进行读操作。
写寄存器操作(KLD):
按下复位按钮CLR#后,置SWC=0,SWB=1,SWA=1,按启动按钮后微指令地址转入37H,从而可对寄存器堆中的寄存器连续进行写操作。
-=微程序流程图=-
读寄存器操作(KRR):
按下复位按钮CLR#后,置SWC=1,SWB=0,SWA=0,按启动按钮后微指令地址转入47H,从而可对寄存器堆中的寄存器连续进行读操作。
启动程序(PR):
按下复位按钮CLR#后,置SWC=0,SWB=0,SWA=0,用数据开关SW7-SW0设置内存中程序的首地址,按启动按钮后微指令地址转入07H,然后转到“取指”微指令。
在微指令格式的设计过程中,对数据通路所需的控制信号进行了归并和化简。
微程序控制器输出的控制信号远远少于数据通路所需的控制信号。
这里的微程序流程图是没有经过归并和化简的。
有些信号出现的位置完全一样,这样的信号用其中一个信号就可以代表。
还有另一些信号,出现的位置基本相同。
微程序流程图中只是指出了在微指令中必须出现的信号,并没有指出出现其他信号行不行,这就要根据具体情况具体分析。
对下列信号进行了归并和化简:
LDIR(CER)为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。
LDPC(LDR4)为l时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。
LDAR1(LDAR2)为l时,允许对地址寄存器AR1加载,此信号也可用于作为对地址寄存器AR2加载。
LDDR1(LDDR2)为1时允许对操作数寄存器DR1加载。
此信号也可用于作为对操作数寄存器DR2加载。
Ml(M2)
当M1=l时,操作数寄存器DR1从数据总线DBUS接收数据;
当M1=0时,操作数寄存器DR1从寄存器堆RF接收数据。
此信号也可用于作为操作数寄存器DR2的数据来源选择信号。
微指令格式可以化简,而实验台数据通路的控制信号为什么不进行化简最主要的原因是前面进行的各个实验的需要。
还有一个原因是考虑到实验时易于理解,对某些可以归并的信号也没有予以归并。
四、实验设备
1.TEC-4计算机组成原理实验系统一台
2.直流万用表一只
3.逻辑测试笔一支
4.导线若干
五、实验任务
常规型微程序控制器组成实验
1.按实验要求,连接实验台的开关K0—K15、按钮开关、时钟信号源和微程序控制器。
2.熟悉微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列于下表。
三种控制台指令的功能由SWC,SWB,SWA三个二进制开关的状态来指定(KRD=001B,KWE=010B,PR=000B)。
3.单拍(DP)方式执行控制台微程序,读出微指令,用P字段和微地址指示灯跟踪微指令执行情况。
4.用P3和SWC、SWB、SWA的状态组合,观察验证三种控制台指令KRD、KWE、PR微地址转移逻辑功能的实现。
5.熟悉05H、10H两条微指令的功能和P2测试的状态条件(IR4-IR7),用二进制开关设置IR7-IR4的不同状态,观察SUB、LDA、STA、JUMP机器指令微地址转移逻辑功能的实现。
6.设置IR7-IR4的不同组合,用单拍方式执行机器指令微程序,用微地址和P字段指示灯跟踪微程序转移和执行情况。
实验中的具体问题为编写机器代码计算y=x2+3x+1的值。
首先编写出解决该问题的微指令
用R0,R1,R2,R3来代替函数的4个参数x,x,3,1。
这样函数就可以用简单的加法和乘法来完成:
具体执行步骤为:
R0*R1→R0;
R2*R1→R2;
RO+R2→R0;
RO+R3→R0
对应指令编码如下:
地址
指令描述
机器代码
00H
R0*R1→R0
00100100
01H
R2*R1→R2
00100110
02H
RO+R2→R0
00001000
03H
RO+R3→R0
00001100