寄存器选择电路课程设计.docx
《寄存器选择电路课程设计.docx》由会员分享,可在线阅读,更多相关《寄存器选择电路课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
寄存器选择电路课程设计
计算机与通信工程学院
计算机组成原理课程设计
专业名称
计算机科学与技术
班级学号
学生姓名
指导教师
设计时间
2014/12/22~2015/1/2
课程设计任务书
专业:
计算机科学与技术学号:
学生姓名(签名):
设计题目:
8位模型机设计-指令系统及寄存器组设计
一、设计实验条件
综合实验室808
二、设计任务及要求
1.10号指令;
2.20号指令;
3.26号指令;
4.45号指令;
5.寄存器组R0—R3(入/出)选择电路;
6.2多数表决器(4个人表决一个结果)
三、设计报告的内容
1.设计题目与设计任务(设计任务书)
题目:
指令系统及寄存器组R0—R3(入/出)选择电路
1.10号,20号,26号,45号指令设计;
2.寄存器组R0—R3(入/出)选择电路
3.多数表决器(4个人表决一个结果)
2.前言(绪论)
融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;
学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;
培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
3.设计主体
【模型机设计】
1.指令系统设计:
第10号指令:
助记符:
ADDCA,@R?
格式:
操作码和地址码
操作码:
ADDC
地址码:
A,@R?
功能:
将间址存储器的值加入累加器A中,带进位
寻址方式:
存储器直接寻址
第20号指令:
助记符:
SUBCA,#II
格式:
操作码和地址码
操作码:
SUBC
地址码:
A,#II
功能:
从累加器A中减去立即数II,减进位
寻址方式:
立即数寻址
第26号指令:
助记符:
ORA,@R?
格式:
操作码和地址码
操作码:
OR
地址码:
A,@R?
功能:
累加器A“或”间址存储器的值
寻址方式:
存储器直接寻址
第45号指令:
助记符:
CLA
格式:
功能:
A置0,即0→A
2.模型机硬件设计:
题目:
寄存器组R0—R3(入/出)选择电路
功能:
根据在SA、SB两个输入的四种组合情况下,.同时选中四个芯片其中之一的的oc、clk两个引脚,达到片选的目的。
3.逻辑电路设计:
题目:
多数表决器(4个人表决一个结果)
功能:
四个人对同一件事进行表决,出现如下情况:
1)四个人都不同意,即三个输入信号都为0,这件事不通过,即输出为00;
2)其中一个人同意,三个人不同意,即输入信号为三个0,一个1,这件事不通过,即输出为00;
3)其中一个人同意,三个人不同意,即输入信号为三个0,一个1,这件事不通过,即输出为00;
4)其中二个人同意,二个人不同意,即输入信号为二个0,二个1,这件事不通过,即输出为00;
5)其中三个人同意,一个人不同意,即输入信号为一个0,三个1,这件事通过,即输出为11;
6)四个人都同意,即输入信号为四个1,这件事通过,即输出为11。
【系统设计】
1.模型机逻辑框图
图1整机逻辑框图
图2芯片引脚逻辑框图
图3CPU逻辑框图
2.指令系统设计
第10号指令:
ADDCA,@R?
指令类型:
算术运算指令
指令格式:
001001XX
←操作码
@R?
操作码及R?
的选择00,01,10,11
第20号指令:
SUBCA,#II
指令类型:
算术运算指令
指令格式:
010011XX
←操作码
如:
00011000
←8位立即数
操作码及R?
的选择00,01,10,11
第26号指令:
ORA,@R?
指令类型:
逻辑运算指令
指令格式:
011001XX
←操作码
@R?
第45号指令:
CLA
指令类型:
非访内指令
指令格式:
101100
XX
操作码及R?
的选择00,01,10,11
3.微操作控制信号
1、XRD:
外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
2、EMWR:
程序存储器EM写信号。
3、EMRD:
程序存储器EM读信号。
4、PCOE:
将程序计数器PC的值送到地址总线ABUS上(MAR)。
5、EMEN:
将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决
是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
6、IREN:
将程序存储器EM读出的数据打入指令寄存器IR。
7、EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
8、ELP:
PC打入允许,与指令寄存器IR3、IR2位结合,控制程序跳转。
9、FSTC:
进位置1,CY=1
10、FCLC:
进位置0,CY=0
11、MAREN:
将地址总线ABUS上的地址打入地址寄存器MAR。
12、MAROE:
将地址寄存器MAR的值送到地址总线ABUS上。
13、OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里。
14、STEN:
将数据总线DBUS上数据存入堆栈寄存器ST中。
15、RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定。
16、RWR:
写寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定。
17、CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
18、FEN:
将标志位存入ALU内部的标志寄存器。
19、WEN:
将数据总线DBUS的值打入工作寄存器W中。
20、AEN:
将数据总线DBUS的值打入累加器A中。
21-23:
X2~X0:
X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。
24-26:
S2~S0:
S2、S1、S0三位组合决定ALU做何种运算。
4.指令执行流程
表2指令简介
编号
助记符
功能
机器码
周期总数CT
节拍数
微操作
控制信号
涉及的硬件
1
_FATCH_
取指令
000000XX
10
T2
PC→MAR
PCOE,MAREN
PC,MAR,EM,W,IR
T1
EM→W
EMEN,EMRD,WEN
T0
W→IR
IREN
PC→PC+1
10
ADDCA,
@R?
将间址存储器的值加入累加器A中,带进位
001001XX
101
T5
R?
→DBUS→MAR
RRD,MAREN,
X2~X0
R,PC,DBUS,MAR,EM,A,W,ALU,F
T4
EM→W
PC→PC+1
PCOEEMEN,EMRD,WEN
T3
ALU(A+W+Cin)→DBUS→A
S2~S0,AEN,FEN
20
SUBCA,#II
从累加器A中减去立即数II,带进位
010011XX
101
T5
PC→MAR
PCOEMAREN
PC,MAR,EM,W,A,ALU,F
T4
EM→W
PC→PC+1
PCOE
EMENEMRDWEN
T3
ALU(A-W-Cin)→DBUS
→A
S2~S0,AEN,FEN
26
ORA,@R?
累加器A“或”间址存储器的值
011001XX
101
T5
R?
→DBUS→MAR
RRD,MAREN,
X2~X0
R,PCDBUS,MAR,EM,W,A,
ALU,F
T4
EM→W,
PC→PC+1
PCOE
EMEN,EMRDWEN
T3
WORA→DBUS→A
S2~S0,AEN
45
CLA
A置0,即0→A
101100XX
100
T4
A→W
PC→PC+1
PCOE
A,DBUS,W,ALU
T3
ALU(A-A)→DBUS→A
S2~S0,AEN,FEN
以流程图表示如下:
图4第10号指令流程图
DI
图5第20条指令流程图
图6第26号指令流程图
图7第45号指令流程图
5.组合逻辑控制器设计
表2第10、20、26、45号指令操作时序表
控制信号
M0
M1
T2
T1
T0
T5
T4
T3
XRD
EMWR
EMRD
ALL
10,20,26
PCOE
ALL
20
10,20,26,45
EMEN
ALL
10,20,26
IREN
ALL
EINT
ELP
FSTC
FCLC
MAREN
ALL
10,20,26
MAROE
OUTER
STEN
RRD
10,26
RWR
CN
FEN
10,20,45
WEN
ALL
10,20
AEN
10,20,26,45
X2-X0
10,26
S2-S0
10,20,26,45
说明:
依据指令执行流程,此处4条指令都被设计为2个指令周期,每个周期3个节拍。
各控制信号逻辑表达式如下:
EMRD=M0*T1+(INS10+INS20+INS26)*M1*T4
PCOE=M0*T2+(INS20)*M1*T5+(INS10+INS20+INS26+INS45)*M1*T4
EMEN=M0*T1+(INS10+INS20+INS26)*M1*T4
IREN=M0*T0
MAREN=M0*T2+(INS10+INS20+INS26)*M1*T5
RRD=(INS10+INS26)*M1*T5
WEN=M0*T1+(INS10+INS20)*M1*T4
AEN=(INS10+INS20+INS26+INS45)*M1*T3
其他信号恒逻辑表达式恒为假。
6.微程序控制器设计
微指令格式分为三个字段:
微命令字段:
5位,对应26个微信号。
下址字段:
4位,
转移控制字段:
2位,用于控制下址的形成。
微命令字段(5位)
微指令格式
设:
(1)
=00(P=0):
顺序执行,下址字段送uAR。
(2)
=01(P=1):
由指令的
位控制修改
。
(3)
=10(P=2):
由指令的
位控制修改
。
修改逻辑为:
μA
=(P=1)*
*T2+(P=2)*
*T2
μA
=(P=1)*
*T2+(P=2)*
*T2
微程序流程图
图8微程序流程图