计算机硬件课程设计--复杂模型机设计报告

计算机硬件课程设计--复杂模型机设计报告本文简介:硬件课程设计复杂模型机设计报告一.实验目的:经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。二.实验内容:搭建一台8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。三.实验思路:
计算机硬件课程设计--复杂模型机设计报告本文内容:
硬
件
课
程
设
计
复杂模型机设计报告
一.
实验目的:
经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。
二.
实验内容:
搭建一台8位模型机,指令系统要求有10条
以上,其中包括运算类指令、传送类指令、
控制转移类指令、输入输出指令、停机指令等。
三.
实验思路:
1、确定设计目标:确定所设计计算机的功能和用途。
2、确定指令系统:确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
3、确定总体结构与数据通路:总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。
4、设计指令执行流程:数据通路确定后,就可以设计指令系统中每条指令的执行流程。根据指令的复杂程度。每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中。
5、确定微程序地址:根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。
6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。
7、组装、调试:在总装调试前,先按功能模块进行组装和分调,因为只有功能模块工作正常后,才能保证整机的运行正确。
四.
实验原理:
1.
指令系统及指令格式:
指令系统包括:算术逻辑运算指令、访存指令、控制转移指令、I/O指令、停机指令。
一般指令格式:
DATA/ADDR
OP-CODE
RS
RD
DATA/ADDR
00
M
OPCODE
RD
指令系统如:
ADD
RS,RD
MOV
DATA,RD
MOV
RS,[ADDR]
JZ
ADDR
IN
RD
HALT
其中RS
、RD为R0、R1、R2中之一
,DATA为立即数,ADDR为内存地址。
2.
微指令格式:
WE
A9
A8
0
0
0
INPUT
0
0
1
RAM读
1
0
1
RAM写
1
1
0
LED,写接口
0
1
1
无
0
1
0
写接口
3.微程序地址入口的形成:
P(1)是用来译码指令寄存器的I7、I6、I5、I4,用于一般指令,微程序入口址为OP+10H
P(2)是用来译码指令寄存器的I3、I2,用于不同寻址方式指令,入口地址转OP+20H
P(3)是用来译码判断标志位C、Z,用于条件转移指令,条件成立转OP+30H,条件不成立转OP+20H
P(4)是用来译码控制台操作的SWB、SWA,用于手动操作。
5.模型机数据通路:
6.模型机组装电路图:
7.微程序装载格式:
机器指令格式:$PXXXX
微指令格式:
$MXXXXXXXX
把它们保存为.TXT
文件
实验设计:
1.
机器指令设计:
根据后面微指令的设计,我们定义了11条指令,它们分别对应相应编码:
指令操作
操作码
IN
0000
OUT
0001
ADD
0010
SUB
0011
MOV(直接寻址)
0100
MOV(间接寻址)
0101
JMP
Ri
0110
JMP
imm
0111
XOR
1000
OR
1001
P(3)
1010
这我们设计的这些指令中MOV(直接寻址),JMP
imm和P(3)均为双字节指令,其余都为单字节指令。
以下是我们设计的模型机机器指令:
机器指令
机器指令码
微程序入口地址
IN
R0
0000
0000
00
ADD
R0,R1
0001
0001
01
OUT
R1
0010
0101
02
MOV
RO,R1
0011
0001
03
STA
R0
20H
0100
0000
04
0010
0000
05
LOAD
R1
20H
0101
0101
06
0010
0000
07
AND
R0,R1
0110
0001
08
XOR
R0,R1
0111
0001
09
JMP
00H
1000
0000
0A
0000
0000
0B
2.
微指令的设计:
指令微操作流程图:
3.最后指令装载TXT文件:
$P0000
$P0120
$P0211
$P0331
$P0441
$P0527
$P0651
$P0700
$P0871
$P0981
$P0A91
$P0B00
$P0C61
$P0D00
$M00018001
$M0101ED82
$M0200C050
$M10001001
$M12070201
$M1101A203
$M0301B404
$M04959A01
$M1301A205
$M0501B406
$M06619A01
$M1401ED87
$M0700E008
$M08009001
$M1501E209
$M09009001
$M1601EC0A
$M0A00D181
$M1701D381
$M1801A20B
$M0B01B40C
$M0C699A01
$M1901A20D
$M0D01B40E
$M0EE99A01
$M1A01ECE0
$M20018001
$M3000D181
五.
实验步骤:
1.
按照给定模型机组装电路图连接电路
2.
连通实验箱与PC机,打开CMP软件,测试实验箱是否正常
3.
设计10条微指令,画出其微操作流程图,并翻译所有微操作成指定格式
4.
设计包含这11条微指令的机器指令程序,并翻译成相应机器指令格式
5.
把设计好微指令和机器指令保存为TXT文件,然后装载入CMP
6.
打开复杂模型机,然后用单步机器指令运行程序并调试
7.
检查OUTPUT
DEVICE
LED
输出结果是否正确,最后写实验报告
六.
实验总结及感想:
杨镒铭:
本次硬件课程设计我们要设计微程序控制的模型机,完成对计算机组成原理这么课程的综合应用。虽说这次设计最后只需要一个设计好的微指令的txt文本,但是还是能从中学到一些东西。从设计指令,到设计详细的微操作,设计初步完成后在编写指令进行测试,不断调试直到成功,整个过程在一开始不是很明确。有些书本上的基本知识出现混淆的现象,通过查书和询问同学才明白和理解。到第二天上午的时候就把整个流程弄清楚了,下午就开始详细设计微操作的指令流程,并完成10条指令的编写和测试工作。整个过程还是很顺利完成的。
其实第一天上午老师把所以该注意的地方都给我们讲了一遍,但有的还是遗忘了。所以在设计p(3)操作的时候碰到了问题。在置标志位的时候,要把C字段置为101,选择AR。一些细节的问题要注意的。
整个实验过程让我们了解计算机的组成,基本原理和设计步骤,设计思路和调试步骤,最终能建立起一个模型机的概念。通过具体动手完成实验,也提高了我们的系统设计能力及创新能力。
胡文
:
总体就实验的两大部分,连线和设计来说,可能在设计方面花的时间多了一点。
在连线的时候还是遇到了一些问题,在测试R1测试的时候,出现了测试错误的情况。在反复查找的时候还是没有找到错误在哪儿,索性就又重插了一遍。最后发现可能是由于接线的部分没有插紧的原因。
再设计部分遇到了一些问题。比如在jmp指令的时候需要把BUS传PC但是由于A字段没有写LOAD所以一直写不进去。在做减法的时候,没有将C字段置AR所以没有改变标志位,导致在P(3)判断的时候,没有进行YES跳转。
总结几点,在做实验的时候应该将每个字段的含义和属性了解到位,才能设计出合理的指令,往往一点两点的误差可能就导致了与答案的背离。所以我们应该更注重老师讲的一些细节的问题,因为往往出错的地方也都是老师讲到的地方。
