计算机组成原理与系统结构课程设计报告.docx
- 文档编号:14253791
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:16
- 大小:87.25KB
计算机组成原理与系统结构课程设计报告.docx
《计算机组成原理与系统结构课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理与系统结构课程设计报告.docx(16页珍藏版)》请在冰点文库上搜索。
计算机组成原理与系统结构课程设计报告
组成原理课程设计
指导教师:
林德树雷鸣
学生班级:
计科11105
学生姓名:
余方林
学号:
201103392
班内序号:
23
课设日期:
2014/6/9~2014/6/20
目录
一、设计目的3
二、设计要求3
三、设计方案4
1.首先设计整机逻辑框图,并分析各主要部件中所使用的关键器件,彻底理解主要芯片的工作原理。
4
2.指令系统和指令执行流程设计4
3.微操作控制信号和微程序设计4
四、详细设计过程6
1.整机逻辑框图,并分析各主要部件中所使用的关键器件,彻底理解主要芯片的工作原理。
6
2.指令系统和指令执行流程设计6
3.微操作控制信号和微程序设计9
五、编程与调试程序13
1.实验计算机的组装13
2.实验计算机调试13
3.汇编源文件.ASM13
六、结果及分析14
七、收获体会15
一、设计目的
1.主要掌握微程序控制结构计算机的设计方法,通过对机器指令和相对应微程序的设计,加深对微程序控制器的理解,加深对微程序设计特点的了解,加深对计算机各部件的理解以及对整机结构的理解。
2.掌握几种寻址方式的控制执行过程。
3.了解多累加器计算机的特点。
4.熟悉VHDL语言的编程。
二、设计要求
1.运算器采用单累加器多寄存器结构
2.指令系统:
16条以上指令,有I/O指令,外部设备统一编址。
3.内存寻址范围1K以上字节
寻址方式:
寄存器直接寻址
寄存器间接寻址
直接寻址
立即数寻址
4.可执行从键盘上输入的十进制两位数与两位数加法程序
并打印输入的数据及结果或实现两数相加通过数码管显示结果。
三、设计方案
1.首先设计整机逻辑框图,并分析各主要部件中所使用的关键器件,彻底理解主要芯片的工作原理。
根据设计要求,对实验仪硬件模块进行逻辑剪辑组合,便可设计出该实验计算机的整机逻辑框图。
为利于调试,应在逻辑框图上表明各器件的控制信号及必要的输出信号。
2.指令系统和指令执行流程设计
①指令系统需确定实验计算机的指令系统具体由哪里指令组成,包括哪几种类型指令,指令操作数有哪几种寻址方式,以及指令编码等。
②指令执行流程应根据实验计算机整机逻辑图来设计指令系统中每条指令的执行流程。
一条指令从内存取出到执行完,需要若干个机器周期(节拍)。
任何指令的第一个机器周期都是“取指令周期”,或称为公操作周期。
而一条指令共需几个机器周期取决于指令在机内实现的复杂程度。
3.微操作控制信号和微程序设计
①微操作控制信号及其实现方法
综合实验计算机指令系统各指令执行流程中所涉及到的微操作控制信号,统计总共需要多少个微控制信号,每个信号的有效性,决定这些信号中哪些由软件(微指令)直接产生,哪些需用硬件实现。
②设计微指令格式,微指令由32位组成,设计出每位微操作的定义。
③确定微程序控制方式
设计任务包括设计各微程序入口地址的形成方法和控存的顺序控制(即下地址形成)方法。
④编写各指令的微程序
根据指令流程和微指令格式仔细地逐条填写微指令各码位。
为减少填写错误,可边把本条微指令用到的微码(微操作控制信号)按预定的有效性填入,检查无误后,再对本条微指令用不到的微码(微操作控制信号)填入与预定的有效性相反的代码,核对无误后,最后将这32位微码缩写成8位十六进制微指令。
四、详细设计过程
1.整机逻辑框图,并分析各主要部件中所使用的关键器件,彻底理解主要芯片的工作原理。
☆T0为取指令微指令,所有指令的T0拍均相同。
☆T1~T3为执行微指令。
☆T0中的(A)→ACT为节省以后从累加器A输出数据的时间而增设的,它把A预先送到暂存器ACT中,以后可直接传送到ALU中进行各种运算。
☆对于微程序控制的计算机指令流程与微指令一一对应。
2.指令系统和指令执行流程设计
编号
汇编码
指令流程
0
取指令(所有指令的最后一步)
T0:
(PC)MC=00>AB;(M)CRDX=0>DBGI=0>IR;
(PC)+1PINC=0>PC;(A)GC=0>ACT;MPLD=0;
1
MOVA,Ri
T1:
(Ri)MA=0S=011>ALUMB=00>DBGA=0>A;
2
MOVRi,A
T1:
(ACT)S=010>ALUMB=00>DBWRE=0>Ri;
3
MOVA,@Ri
T1:
(Ri)MA=1S=011>ALUMB=00>DBGA2=0>ADRL;T2:
7EHS=111>ALUMB=00>DBGA1=0>ADRH;
T3:
(ADR)MC=01>AB;(M)CRDX=0>DBGA=0>A;
4
MOV@Ri,A
T1:
(Ri)MA=1S=011>ALUMB=00>DBGA2=0>ADRL;
T2:
7EHS=111>ALUMB=00>DBGA1=0>ADRH;
T3:
(ADR)MC=01>AB;(ACT)S=010>ALUMB=00>DBCWRX=0>M;
5
MOVA,#data
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA=0>A;(PC)+1PINC=0>PC;
6
MOVRi,#data
T1:
(PC)MC=00>AB;(M)CRDX=0>DBWRE=0>Ri;(PC)+1PINC=0>PC;
7
ADDA,Ri
T1:
(ACT)+(Ri)MA=1S=000>ALUMB=00>DBGA=0>A;COUTCP=0ME=0>CY;
8
SUBA,Ri
T1:
(ACT)-(Ri)MA=1S=001>ALUMB=00>DBGA=0>A;COUTCP=0ME=0>CY;
9
SUBA,addr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>AB;(M)CRDX=0>DBGT=0>TMP;
T4:
(PC)MC=00>AB;(ACT)-(TEMP)MA=1S=001>ALUMB=00>DBGA=0>A;COUTCP=0ME=0>CY;
10
LDAaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>AB;(M)CRDX=0>DBGA=0>A;
11
STAaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>AB;(ACT)S=010>ALUMB=00>DBCWRX=0>M;
12
JCaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>ABPLD2,1,0=001>PC;
13
JMPaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>ABPLD2,1,0=010>PC;
14
JNKBaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>ABPLD2,1,0=011>PC;
15
JNPBaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>ABPLD2,1,0=100>PC;
16
JNZaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>ABPLD2,1,0=010>PC;
17
RSP
T1:
7FFFHSSP=11>SP;
18
PUSHA
T1:
(SP)MC=10>AB;(ACT)S=010>ALUMB=00>DBCWRX=0>M;(SP)-1SSP=01>SP;
19
POPA
T1:
(PC)MC=00>AB;(SP)+1SSP=10>SP;
T2:
(SP)MC=10>AB;(M)CRDX=0>DBGA=0>A
20
CMPA,#data
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGT=0>TEMP;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;A-TEMPCP=0,ZP=0>置位
21
RRCA
T1:
A与CY循环右移
22
CPL@Ri
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(ADR)MC=01>AB;(M)CRDX=0>DBGT=0>TMP;T4:
(ADR)MC=01>AB;/(TMP)S=100>ALUMB=00>DBCWRX=0>M;
23
CALLaddr
T1:
(PC)MC=00>AB;(M)CRDX=0>DBGA1=0>ADRH;(PC)+1PINC=0>PC;
T2:
(PC)MC=00>AB;(M)CRDX=0>DBGA2=0>ADRL;(PC)+1PINC=0>PC;
T3:
(SP)MC=10>AB;(PCH)MB=01>DBCWRX=0>M;(SP)-1SSP=01>SP;
T4:
(SP)MC=10>AB;(PCL)MB=10>DBCWRX=0>M;(SP)-1SSP=01>SP;
T5:
(ADR)MC=01>ABPLD2,1,0=010>PC;
24
RET
T1:
(SP)+1SSP=10>SP;
T2:
(SP)MC=11>AB;(M)CRDX=0>DBGA2=0>ADRL;(SP)+1SSP=10>SP;
T3:
(SP)MC=11>AB;(M)CRDX=0>DBGA1=0>ADRH;
T4:
(ADR)MC=01>ABPLD2,1,0=010>PC;
3.微操作控制信号和微程序设计
微操作信号表
部件
信号
功能
有效位
累加器A
GA
RRC
A功能
GA
累加器A接数允许
禁止(无操作)
移位
0
1
0
暂存器TMP
GT
TMP接数允许
0
暂存器ACT
GC
暂存器接数允许
0
寄存器Ri
WRE
寄存器写入允许
0
MUXA(FB的多路选择)
MA
ALU的第二个操作数多路开关选择
0:
寄存器内容送ALU
1:
暂存器TMP送ALU
算术逻辑运算单元ALU
S2,S1,S0
ALU功能
S2S1S0
F=A+B
F=A-B
F=A
F=B
F=~B
备用
备用
备用
000
001
010
011
100
101
110
111
CY
ME
进位位CY接数COUT
CY接数移位输入
0
1
CP
CY接数允许
0
指令寄存器IR
GI
指令寄存器IR接数允许
0
地址寄存器ADR
GA1
高位地址寄存器ADRH接数允许
0
GA2
低位地址寄存器ADRL接数允许
0
MUXC(地址AB多路开关选择)
MC1,0
MUXC功能
MC1MC0
PC送至地址总线AB
ADR送至地址总线AB
SP送至地址总线AB
备用
00
01
10
11
程序计数器PC
PINC
PC加1信号
0
PRST
PC清零信号
0
MUXD(控制PC接数的多路选择)
PLD2,1,0
PC接数控制
PLD2PLD1PLD0
禁止
CY=1转移
ZY=0
KB=0
PB=0
必转
备用
000
001
010
011
100
101
其余
微程序计数器MPC
MPLD
MPC接数允许
0
存储器M
CRDX
读存储器
0
CWRX
写存储器
0
堆栈SP
SSP
SP减一信号
01
SP增一信号
10
SP初始化为7FFFH
11
MUXB(数据总线DB多路开关选择)
MB1,0
MUXB功能
MXDB1MXDB2
ALU结果送至数据总线DB
PCH送至数据总线DB
PCL送至数据总线DB
三态
00
01
10
11
注意:
☆图4-2中的寄存器选择信号(RC、RB、RA)不属于微指☆令编码范围,应直接来自指令码(I2、I1、I0)。
☆各个时钟应接至高时钟MCLK,MICK和MPCK的接法见第二章第五节。
☆以上的各个微操作信号,除了已标明的,可统一取为0有效。
微程序文件.M19
S1*******025700400000000000000000000000053S11300040000000000000000000000003724E007A6S1130008002570040000000000000000000000004BS113000C0000000000000000000000002120E007B8S11300100025700400000000000000000000000043S11300140000000000000000000000003124A007DCS11300184124C0070725E0850025700472B6AAFFADS113001C99EAAAF92682A267BD00AADF3124A007B7S11300204124C0070121E08500257004721FAA3312S1130024B395AAF716E5A2763A00A8FF0704E007F9S1130028002570043200A335BF2CAAF5414EAA77E7S113002C00000AF50120AA773300AAFF1704E007A1S11300300025700425002246F13AAAD714876A766FS1130034A3A3BABF0431AA77D300ABFF0725F00505S11300380025700460002A7D78A6AADF42C2AA734CS113003C314AAAFF633EAA77F100AAFF0121F00519
S11300400025700455003755000000000000000032S11300440000000000000000000000000125D005ADS11300480125B0050725E08500257004000000009FS113004C0000000000000000000000000125D005A5S11300500125B0052124E083002570040000000080S11300540000000000000000000000000125D0059DS11300580125B0050124E287002570040000028709S113005C0000000000000287000000000125D0050CS11300600125B0050124E487002570040000000088S11300640000000000000000000000000125D0058DS11300680125B0050124E68700257004000000007ES113006C0000000000000000000000000125D00585S11300700125B0050124E887002570040000000074S11300740000000000000000000000000000000078S11300780000000000000000000000000000000074S113007C0000000000000000000000005D00FDEF27
S1070080FF360C2017
S9030000
五、编程与调试程序
1.实验计算机的组装
利用FPGA板进行组装计算机,不是用常规的连线方式实现,而是用超大规模集成块XC2S150-PQ208编程来实现。
首先要熟悉用可编程逻辑器件设计语言VHDL简单编程,然后根据所设计的连线图编程,包括XC2S150-PQ208各引脚的定义,连线方程等,并编译生成熔丝图文件,下载到XC2S150-PQ208中。
2.实验计算机调试
要将所设计机器指令对应的微程序装入到控制存储器中,还要将调试程序(汇编程序)装入到内部存储器中。
各有两种装入方法,一种是通过实验箱键盘输入,另一种是通过编程下载实现。
3.汇编源文件.ASM
ORG0
MOVA,#12H
MOVR0,#34H
ADDA,R0
STA0020H
L:
JMPL
六、结果及分析
源程序要实现:
用A的内容加上R0的内容,将12+24的结果存在地址为0020H单元
七、收获体会
本次课程设计为计算机组成原理相关方面的知识应用与实践,大概一周的时间,时间上比较匆忙了些,可能显得不足,但总体效果感觉还不错。
计算机组成原理这门课是整个计算机专业的一个重点,也是比较实用的一门课程,所以通过本次课设,大大提高了大家的动手能力。
课本上的东西始终与实际是有区别的,在本次课设当中遇到了很多平时课本上概念模糊不清的知识,但是在课设中,通过老师的帮助、同学之间的相互学习,我们解决了很多问题,同时也弄懂了很多课本之外的东西。
就这次课设的设计过程做一个总结。
其实不管是什么课设,设计过程都差不多。
第一,我们得弄清楚课设的目的。
第二,根据课设目的,拿出一套设计方案。
第三,按照设计方案的流程去完成每一步。
我建议学校多安排这种类型的课程设计来提高大家的综合能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 系统 结构 课程设计 报告