计算机硬件课程设计报告
复杂模型机设计
一、实验目的
经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。
二、实验原理
搭建一台8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。
三、实验思路
1、确定设计目标:确定所设计计算机的功能和用途。
2、确定指令系统:确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
3、确定总体结构与数据通路:总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。
4、设计指令执行流程:数据通路确定后,就可以设计指令系统中每条指令的执行流程。
根据指令的复杂程度。
每条指令所需要的机器周期数。
对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中。
5、确定微程序地址:根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。
6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。
7、组装、调试:在总装调试前,先按功能模块进行组装和分调,因为只有功能模块工作正常后,才能保证整机的运行正确。
四、实验原理
1.指令系统及指令格式:
指令系统应包括:算术逻辑运算指令、访存指令、控
制转移指令、I/O指令、停机指令。
一般指令格式:
指令系统如: ADD RS,RD MOV DATA,RD MOV RS,[ADDR] JZ ADDR
IN RD HALT
其中RS 、RD为R0、R1、R2中之一,DATA为立即数,ADDR
为内存地址。
2.指令微操作流程Array
3.微指令格式
4.微程序入口地址形成
寄存器地址译码电路
5.模型机的时序
6.模型机数据通路
7.微程序装载格式
机器指令格式: $Pxxxx 微指令格式: $Mxxxxxxxx
8.模型机组装电路图
五、实验步骤:
1、按照给定模型机组装电路图连接电路;
2、连通实验箱与PC机,打开CMP软件,测试实验箱是否正常;
3、设计微指令,画出其微操作流程图,并翻译成相应的微指令格式;
4、设计包含这些微指令的机器指令程序,并翻译成相应机器指令格式;
5、把设计好微指令和机器指令保存为TXT文件,然后装载入CMP;
6、打开复杂模型机,然后用单步机器指令运行程序并调试;
7、检查LED数码管输出结果是否正确,最后撰写实验报告。
六、实验设计:
1.流程图设计:
2.微程序设计:
$P0000 ; IN R0
$P0110 ; OUT R0
$P0221 ; MOV RO -> R1;
$P0331 ; INC R1 ;
$P0441 ; ADD: R0+R1 -> R1;
$P0554 ; OR: R1 or R0->R0 ;
$P0664 ; SUB:R1 R0 -> R0
$P0774 ; MOV:[R1]->MEM->R0
$P0881 ; NOT:R1
$P0990 ; JMP:10010000
$P0A00
$M00018001 ; COMMON LANG
$M0101ED82 ; COMMON LANG
$M0200C050 ; COMMON LANG
$M10001001 ; 10 000 000000 000 001 000 01H $M11070401 ; 11 000001 110 000 010 000 01H $M12019201 ; 12 000000 011 001 001 000 01H $M1301A403 ; 13 000000 011 010 010 000 03H
$M03019B41 ; 03 000000 011 001 101 101 01H
$M1401A204 ; 14 000000 011 010 001 000 04H $M0401B405 ; 04 000000 011 011 010 000 05H $M05959A01 ; 05 100101 011 001 101 000 01H
$M1501A206 ; 15 000000 011 010 001 000 06H $M0601B407 ; 06 000000 011 011 010 000 07H $M07E99B41 ; 07 111010 011 001 101 101 01H
$M1601A408 ; 16 000000 011 010 010 000 08H $M0801B209 ; 08 000000 011 011 001 000 09H $M09619A01 ; 09 011000 011 001 101 000 01H $M1701E20A ; 17 000000 011 110 001 000 0AH $M0A009001 ; 0A 000000 001 001 000 000 01H
$M1801A40B ; 18 000000 011 010 010 000 0BH $M0B099B41 ; 0B 000010 011 001 101 101 01H $M1901ED8C ; 19 000000 011 110 110 110 0CH $M0C00D181 ; 0C 000000 001 101 000 110 01H 3.微程序通路图
七、实验心得
本次硬件课程设计做的是设计复杂模型机,其中需要运用到计算机组成原理和微机原理的相关知识。
通过让我们自己动手编写微程序,让我们对于计算机硬件基础有了更为具象的理解。
实验刚开始的时候,老师就给我们讲解了从设计到最后完成微指令的一系列指导,当时听的比较认真,基本理解了设计复杂模型机指令的方法.
在实际操作过程中,遇到不清楚的,也能通过老师给出的演示文稿PPT或者直接询问老师来解决问题.基本上整个流程进行的比较顺利.从简单的IN语句开始,循序渐进,直到最后的跳转语句,对照微指令格式表和机器指令表,实现了之前本以为非常复杂的指令系统.期间遇到bug或者问题的时候,我们也学会了通过观察通路图的方法来验证程序哪部分写错。
由于实验过程存在着很多位的0,1,稍有不慎便会出现微指令或者机器指令写错的情况,所以在操作的过程中,两人通力合作,共同一步一步全神贯注地去编写,调试,查看。
通过观察通路图的数据流,让我们对于曾经书本上只是知其然而不知其所以然的一条条汇编指令的内部数据流动情况有了深刻的理解,对我们日后编程中更好的提高机器运行效率有很大的帮助.
总体来说,本次硬件课程设计较为顺利,感谢老师的悉心指导,让我们有了巨大的收获.。