简单实验计算机的设计.docx
- 文档编号:6165109
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:26
- 大小:82.44KB
简单实验计算机的设计.docx
《简单实验计算机的设计.docx》由会员分享,可在线阅读,更多相关《简单实验计算机的设计.docx(26页珍藏版)》请在冰豆网上搜索。
简单实验计算机的设计
山东建筑大学计算机科学与技术学院
课程设计说明书
题目:
简单实验计算机的设计(七)
课程:
计算机系统综合设计
院(部):
计算机科学与技术学院
专业:
计算机科学与技术
班级:
学生姓名:
学号:
指导教师:
完成日期:
山东建筑大学计算机科学与技术学院
课程设计任务书
设计题目
简单实验计算机的设计(七)
指导教师
班级
已知技术参数和设计要求
1、使用FD-CES实验仪
2、主要模块:
运算器、寄存器、指令部件、内存、总线缓冲、微程序控制、启停和时序模块。
3、完成以下指令的设计:
MOVRi,#data
LDAaddr1
ADDA,Ri
STAaddr2
HALT
设计内容与步骤
1、运算器采用单累加器多通用寄存器结构,操作数寻址方式采用直接地址寻址,立即数寻址,累加器直接寻址。
2、程序、微程序的设计、调试。
3、实现能执行将寄存器(Ri)中的内容与内存某个单元addr1内容相加存入到另一个单元addr2中,并停机,然后从控制台读出addr2存放的计算结果。
4、课程设计说明书。
设计工作计划与进度安排
1、调试工具4学时
2、设计语言ABL-HDL6学时
3、FD-CES实验仪功能模块10学时
4、指令与微程序的设计10学时
5、课程设计说明书10学时
设计考核要求
1、考勤20%
2、课程设计说明书50%
3、成果演示30%
指导教师(签字):
教研室主任(签字):
1、课程设计题目
简单实验计算机的设计(七)。
2、课程设计目的
在学习了专业基础课《计算机组成原理》和《系统结构》课程的基础上,通过设计简单实验计算机的部分指令,加深对计算机硬件结构和系统软件的认识,初步掌握计算机指令的设计与使用方法。
3、课程设计方案
基于FD-CES实验箱的硬件模块平台,通过PC机和可编程逻辑(PLD)电路实验板,完成简单实验计算机的部分指令的控制信号线的连接、编码、微程序的设计,在FD-CES实验箱的控制台上运行用所设计的指令编写的程序,验证设计指令的正确性。
4、课程设计内容
4.1、设计要求
(1)运算器:
采用单累加器多寄存器结构(开关KA、KB、KC、KR分别置左、右、右、左)。
(2)指令系统:
小于等于8条指令,无外设。
(3)内存寻址方式:
直接地址寻址,立即数寻址,累加器直接寻址。
(4)微程序设计微操作信号发生器。
4.2、设计整机逻辑框图
4.3、设计指令系统
4、
(1)实验计算机的指令系统具体由以下5条指令组成
MOVRi,#data
LDAaddr1
ADDA,Ri
STAaddr2
HALT
(2)指令操作数寻址方式及其编码
MOVRi#data:
寻址方式:
立即数寻址功能:
data→Ri
编码:
指令编码:
000000Ri(R1),data
0
0
0
0
0
0
0
1
d7
d6
d5
d4
d3
d2
d1
d0
LDAaddr1:
寻址方式:
直接地址寻址功能:
(addr1)→A
编码:
指令编码:
000010a9,a8,a7~a0
0
0
0
0
1
0
0
0
a7
a6
a5
a4
a3
a2
a1
a0
ADDA,Ri:
寻址方式:
累加器直接寻址功能:
(A)+(Ri)→A
编码:
指令编码:
010100Ri(R1)
0
1
0
1
0
0
0
1
STAaddr2:
寻址方式:
直接地址寻址功能:
A→(addr2)
编码:
指令编码:
010110a9,a8,a7~a0
0
1
0
1
1
0
0
0
a7
a6
a5
a4
a3
a2
a1
a0
HALT:
功能:
停机
编码:
指令编码:
10100000
1
0
1
0
0
0
0
0
4.4设计指令执行流程
双字节指令MOVRi,#data
该指令功能为data→Ri,需执行如下微操作:
①(PC)IABOAB;程序计数器PC内容作访问内存地址
②(M)ODBIDBIRl;读出指令字节送指令寄存器IR1
③(PC)+1PC;PC加1,为取下条指令字节准备
④(PC)IABOAB;;根据PC访内存
⑤(M)ODBIDBRi;取出本指令第二字节(即data)送Ri
⑥(PC)+1PC;PC加1,为取下条指令字节准备
其中,①②必须同一拍;③可单独一拍也可与①②合一拍;④⑤也必须同一拍;⑥可
单独一拍也可与④⑤合一拍。
推荐采用如下方案:
T0(第一拍):
①
②
③
T1(第二拍):
④
⑤
⑥
双字节指令LDAaddr
该指令功能为(addr)→A,需执行如下微操作:
①(PC)IABOAB;程序计数器PC内容作访问内存地址
②(M)ODBIDBIRl;读出指令字节送指令寄存器IR1
③(PC)+1PC;PC加1,为取下条指令字节准备
④(PC)IABOAB;根据PC访问内存
⑤(M)ODBIDBIR2;取出本指令第二字节送IR2
⑥(PC)+1PC;PC加1,为取下条指令字节准备
⑦I2.I1.I0(IR2)IABOAB;由IRl低3位和IR2的8位形成11位操作数
地址
⑧(M)ODBIDBTMP;从内存读出操作数送TMP
⑨(TMP)A;TMP内容经ALU传送,存入A
其中,①②必须同一拍;④⑤也必须同一拍;⑦⑧也必须同一拍;⑨可以单独一拍也可与⑦⑧合一拍;③可单独一拍也可和①②合一拍;⑥可单独一拍也可和④⑤合一拍或者和⑦⑧合一拍(TMP设置为直通)。
推荐采用如下方案:
T0(第一拍):
①
②
③
T1(第二拍):
④
⑤
⑥
T2(第三拍):
⑦
⑧
⑨
单字节指令ADDA,Ri
该指令功能为(A)+(Ri)→A,需执行如下微操作:
①(PC)IABOAB;程序计数器PC内容作访问内存地址
②(M)ODBIDBIRl;内存该地址单元读出指令字节送指令寄存器IR1
③(PC)+1PC;PC加1,为取下条指令字节准备
④(A)ACT;累加器A内容送累加器暂存器ACT,为ALU准备好被加数
⑤(ACT)+(Ri)BUFIDBA;使暂存器TMP输出高阻,读Ri寄存器内容,使ALU执行加法,结果经BUF至DB最后送人累加器A
⑥Cn+4CY;据加法结果置进位标志CY
其中,①②必须在一拍(即取指令周期)内完成;⑤⑥也必须在同一拍内完成;而④不可
以和⑤⑥在同一拍,但可以和①②在同一拍;③可以和⑤⑥同拍也可以和①②同拍;也可把
③、④单独一拍,甚至③和④各一拍也可以。
推荐采用如下方案:
T0(第一拍):
①
②
③
④
T1(第二拍):
⑤
⑥
双字节指令STAaddr
该指令功能为A→(addr),需执行如下微操作:
①(PC)IABOAB;程序计数器PC内容作访问内存地址
②(M)ODBIDBIRl;读出指令字节送指令寄存器IR1
③(PC)+1PC;PC加1,为取下条指令字节准备
④(PC)IABOAB;根据PC访问内存
⑤(M)ODBIDBIR2;取出本指令第二字节送IR2
⑥(PC)+1PC;PC加1,为取下条指令字节准备
⑦I2.I1.I0(IR2)IABOAB;由IRl低3位和IR2的8位形成11位操作数
地址
RR,A,B,/Cn,M,S3,S2,S1,S0
OB
CL
⑧(ACT)BUFIDBODB;读A内容经ALU传送至IDB,存人ODB
⑨ODB(M);将ODB里的数写入到内存中。
其中,①②必须同一拍;④⑤也必须同一拍;⑦⑧也必须同一拍;⑨可以单独一拍也可与⑦⑧合一拍;③可单独一拍也可和①②合一拍;⑥可单独一拍也可和④⑤合一拍或者和⑦⑧合一拍(TMP设置为直通)。
推荐采用如下方案:
T0(第一拍):
①
②
③
T1(第二拍):
④
⑤
⑥
T2(第三拍):
⑦
⑧
⑨
4.5、确定微操作控制信号及其实现方法
4.5.1.设计微操作信号
(1)运算器模块(ALU)
ZC=
CP=
SA接X0接M17
SB接X1接M16
PO接CY
Pl接A0接SR
P2接A7接SL
CA接/φ
S3~S0接M23~M20
/Cn接M19
M接M11
CG接Ml8
CC接/φ
OB接M8
(2)寄存器堆模块(REG)
WR=
RR接M1
A接I0
B接I1
(3)指令部件模块(I_PC)
CL=
P+l接M7
GI接M6
CI接
CK接PO
CLR接+5V
0I接M15
LP、PC0如图2-15所示。
(4)内存模块(MEM)
RC=M2+
WC=M3+
(5)总线缓冲模块(BUS)
Bl、B3接RF
B2=RC+IAB2·IAB10
KA接IAB0
PA接IAB1
(6)启停和时序模块(R_P)
DR接M5
RCP接
(7)微程序控制模块(MPG)
MLD接M4
MP+1接+5V
MCLR接RO
MCLK接P0
MIG接地
MDl0~MD6接地
MD5接I7
MD4接I6
MD3接地
MD2接I3
MDl~MDO接VCC(+5V)
4.5.2.微操作信号的实施
用PLD实验板实施,先在PC机Synario环境下编辑微操作信号的硬件描述文件,然后编译成相应的熔丝图文件,最后通过PC机并行口下载电缆将熔丝图文件烧到PLD实验板上的ispLSI2096内,即完成了微操作信号的实施。
4.5.3设计微指令的格式
指令助记符
位
23222120
19181716
15141312
111098
7654
3210
信号
S3S2
S1S0
CnM
X1X0
OICL
‘CP’/
CGOT
LP’OB
GIP+1
DRMLD
WC’RC’
RRWR’
微指令码
(十六进制)
有效电平
011*
****
****
0000
0100
0001
微地址
取指微指令
000H
0000
0000
1000
0111
0110
1010
00876A
001
002
MOVRi,#data
003
0000
0000
1000
1111
1111
1011
008FFB
004
0000
0000
1000
0111
0110
1010
00876A
005
LDAaddr
007
0000
0000
1100
1111
1111
1010
00CFFA
008
0000
0011
0000
1111
1011
1010
030FBA
009
0000
0000
1000
0111
0110
1010
00876A
00A
ADDA,Ri
013
1001
1011
1010
1110
1011
1100
9BAEBC
014
0000
0000
1000
0111
0110
1010
00876A
015
STAaddr
017
0000
0000
1100
1111
1111
1010
00CFFA
018
0000
1000
0000
1110
1011
0110
080EB6
019
0000
0000
1000
0111
0110
1010
00876A
01A
HALT
023
0000
0000
1000
1111
1001
1110
008F9E
024
0000
0000
1000
0111
0110
1010
00876A
4.5.4确定微程序控制方式
一、确定微程序入口地址形成方法
采用“按操作码散转”的方法确定微程序入口地址的形成。
该方法以指令操作码((8位)为核心,扩展成11位的微程序地址即MD1O~MDO。
IRl的I7.I6.I2为指令操作码,每条指令执行不超过4拍,即微程序可由多至4条微指令组成,那么可按下图形成各微程序首地址
MD10~MD6MD5MD4MD3MD2MD1MD0
└──┘││││└───┘
││││││
“0”I7I6“0”I3“1”
按指令操作码散转
指令操作码
I7I6I3
微程序首址
MD10~MD0
000
001
010
011
100
003H
007H
013H
017H
023H
二、确定控存的顺序控制方法
控存的顺序控制方法采用计数增量方法。
即每段微程序执行过程中MPC加1计数,指向下一条微指令地址。
4.5.5编写各指令的微程序
指令助记符
节拍
微指令码
MOVRi,#data
T0
008FFB
T1
00876A
LDAaddr1
T0
00CFFA
T1
030FBA
T2
00876A
ADDA,Ri
T0
9BAEBC
T1
00876A
STAaddr2
T0
00CFFA
T1
080EB6
T2
00876A
HALT
T0
008F9E
T1
00876A
4.6、编写调试程序
4.6.1汇编程序:
MOVR1#20H
LDA55H
ADDA,R1
STA56H
HALT
4.6.2、编写ABEL程序,并烧到PLD实验板
MODULECESB
title'ThisisanexampleforhowtousePLDBoard'
"DefineComputerInput/OutputPins:
"BLOCK1
IAB10PIN45;
IAB9PIN44;
IAB8PIN43;
IAB7PIN42;
IAB6PIN41;
IAB5PIN40;
IAB4PIN39;
IAB3PIN38;
IAB2PIN37;
IAB1PIN36;
IAB0PIN35;
RCPIN34;
WCPIN32;
B2PIN31;
IDB0PIN30;
IDB1PIN29;
IDB2PIN28;
IDB3PIN27;
IDB4PIN26;
IDB5PIN25;
IDB6PIN24;
IDB7PIN23;
I0PIN22;
I1PIN21;
I2PIN13;
I3PIN12;
I4PIN11;
I5PIN10;
I6PIN9;
I7PIN8;
PCOPIN7;
PINCPIN6;
LPPIN5;
GIPIN4;
OIPIN3;
"BLOCK2
CLPIN2;
RRPIN128;
WRPIN127;
SBPIN126;
SAPIN125;
APIN99;
BPIN100;
P1PIN123;
P2PIN56;
CGPIN124;
CYPIN110;
CTPIN122;
OTPIN121;
ZDPIN20;
CPPIN120;
S3PIN119;
S2PIN118;
S1PIN117;
S0PIN109;
MPIN108;
CNPIN107;
SRPIN106;
SLPIN105;
X0PIN104;
X1PIN103;
A7PIN84;
A0PIN51;
OBPIN102;
ROPIN78;
DRPIN101;
CLKPIN46;
"BLOCK3
M23PIN98;
M22PIN96;
M21PIN95;
M20PIN94;
M19PIN93;
M18PIN92;
M17PIN91;
M16PIN90;
M15PIN89;
M14PIN88;
M13PIN87;
M12PIN86;
M11PIN85;
M10PIN77;
M9PIN76;
M8PIN75;
MD8PIN66;
MD7PIN63;
MD6PIN62;
MD5PIN61;
MD4PIN60;
MD3PIN59;
M7PIN74;
M6PIN73;
M5PIN72;
M4PIN71;
M3PIN70;
M2PIN69;
M1PIN68;
M0PIN67;
MD2PIN58;
MLDPIN57;
"BLOCK4
"MIG==0
PAPIN55;
KAPIN53;
PBPIN54;
KBPIN52;
READNODE;
EQUATIONS
"DefineConnectionsandLogic:
"**********ALU**********
CP=!
(M13&CLK);
SA=M16;
X0=M16;
SB=M17;
X1=M17;
P1=A0;
SR=A0;
S3=M23;
S2=M22;
S1=M21;
S0=M20;
CN=M19;
M=M18;
CG=M11;
OB=M8;
OT=M10;
CT=1;
"************REG************
WR=!
(M0&CLK);
RR=M1;
A=I0;
B=I1;
"*************I-PC***********
CL=!
(M14&CLK);
PINC=M6;
GI=M7;
OI=M15;
PCO=!
M6;
LP=(!
M9)&(!
I4&!
I3&ZD
#!
I4&I3&CY
#I4&!
I3&A0
#I4&I3);
"**************MEM*********
RC=M2#!
CLK;
WC=M3#!
CLK;
"**************BUS**********
B2=M2#IAB2&IAB10;
KA=IAB0;
PA=IAB1;
IDB0=KB;
IDB7=KA;
IDB0.OE=READ;
IDB7.OE=READ;
READ=!
(M2#!
(IAB10&IAB2));
"**************R-P************
DR=M5;
"***************MPG***********
MLD=M4;
MD8=0;
MD7=0;
MD6=0;
MD5=I7;
MD4=I6;
MD3=0;
MD2=I3;
ENDCESB
4.6.3、利用FD-CES控制台将汇编程序输入内存
1、输入内存
如要将程序和数据分别写入内存的相应单元中,相应的操作和显示如下表
操作
显示
M/CM置左
RET(或STOP)
CPUREADY(或小数点消失)
000LOAD
000xxxxx
01W+1
001xx01
20W+1
002xx20
08W+1
003xx08
55W+1
004xx55
51W+1
005xx51
58W+1
006xx58
56W+1
007xx56
A0W+1
008xxA0
2、读内存
将内存中的相应单元的数据读出,检查上一步键入是否正确,相应的操作和显示如下表
操作
显示
M/CM置左
RET(或STOP)
CPUREADY(或小数点消失)
000LOAD
00001xxx
R+1
00120xxx
R+1
00208xxx
R+1
00355xxx
R+1
00451xxx
R+1
00558xxx
R+1
00656xxx
R+1
007A0xxx
4.6.4.利用FD-CES控制台将指令的微程序输入控存
一、写控存(键人微程序)
把微程序分别写入控存的相应单元中,相应的操作和显示如下表。
操作
显示
M/CM置右
RET(或STOP)
CPUREADY(或小数点消失)
000LOAD
000xxxxxx
00876AW+1
001xxxxxx
RET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 实验 计算机 设计