复杂模型机组成原理课程设计报告2.docx
《复杂模型机组成原理课程设计报告2.docx》由会员分享,可在线阅读,更多相关《复杂模型机组成原理课程设计报告2.docx(15页珍藏版)》请在冰豆网上搜索。
复杂模型机组成原理课程设计报告2
课程设计报告
课题:
复杂模型机设计
同组姓名:
陈姗(1108030416)
徐莉娜(1108030417)
宋利英(1108030421)
专业班级:
计科1104班
指导教师:
牟琦
设计时间:
2013-12-31
目录
一、课程设计目的和意义1
1.数据格式2
2.指令格式2
3.指令系统3
三、总体设计4
1.数据通图4
2.时序系统图4
3.时序波形图5
4.起停控制电路图5
四、实验步骤6
1.设计微程序流程图6
2.微指令格式7
3.微程序代码表7
4.转换格式8
5.微程序控制框图9
6.微程序控制实现9
四、系统测试及实验截图11
五、总结14
1、课程设计目的和意义
经过一系列硬件课程如计算机原理的学习及相关实验后,综合应用所学理论知识解决实际设计和应用问题,进行一个综合的系统的实验。
培养实际动手能力,进一步提高硬件设计能力。
培养实事求是和严肃认真的工作态度。
通过设计过程,熟悉和掌握微机系统的硬件设计方法、设计步骤,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力。
综合运用所学计算机原理知识,设计并实现较为完整的计算机。
二、复杂模型机的设计与实现内容
1.数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
其中第7位为符号位,数值表示范围是:
-1≤X<1。
2.指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、存数指令、取数指令、转移指令和停机指令。
1算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
76543210
OP-CODE
Rs
Rd
其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器。
2访问指令及转移指令
模型机设计2条访问指令:
即存数STA、取数LDA;2条转移指令:
即无条件转移JMP、有进位转移指令BZC。
指令格式为:
76543210
00
M
OP-CODE
Rd
D
其中,OP-CODE为操作码,RD为目的寄存器地址(LDA、STA指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:
寻址方式
有效地址
说明
00
01
10
11
E=D
E=(D)
E=(R2)+D
E=(PC)+D
直接寻址
间接寻址
R2变址寻址
相对寻址
本模型机规定变址RI指定为寄存器R2。
3I/O指令
输入IN和输出OUT指令采用单字节指令,其格式如下:
76543210
OP-CODE
addr
Rd
其中,addr=01时,选中输入数据开关组KD0~KD7作为输入设备,addr=10时,选中2位数码管作为输出设备。
4停机指令指令格式如下:
76543210
OP-CODE
00
00
HALT指令,用于实现停机操作。
3.指令系统
本模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
表2-1列出了各条指令的格式、汇编符号、指令功能。
表2-1
三、总体设计
1.数据通图
复杂模型机的数据通路框图如图3-1所示。
根据复杂模型机的硬件电路设计机器指令,再根据机器指令要求,设计微程序流程图及微程序,最后形成16进制文件。
图3-1
2.时序系统图
复杂模型机的时序系统图如图3-2所示。
图3-2
3.时序波形图
复杂模型机的时序波形图如图3-3所示。
图3-3
4.起停控制电路图
复杂模型机的起停控制电路图如图3-4所示。
图3-4
四、实验步骤
1.设计微程序流程图
本实验模型机机设计的微指令流程图,如图4-1所示。
图4-1
2.微指令格式
本实验模型机机设计的微指令格式,如表4-1所示。
表4-1
A字段B字段C字段
3.微程序代码表
根据微程序流程图和微指令格式设计微程序代码表,如表4-2所示。
表4-2
4.转换格式
根据微程序代码表转换为16进制的微程序。
微程序:
$M00018108$M0101ED82$M0200C050$M0300A004$M0400E0A0$M0500E006$M0600A007$M0700E0A0$M0801ED8A$M0901ED8C$M0A00A03B$M0B018001$M0C00203C$M0D00A00E$M0E01B60F$M0F95EA25$M1001ED83$M1101ED85$M1201ED8D$M1301EDA6$M14001001$M15030401$M16018001$M173D9A01$M18019201$M1901A22A$M1A01B22C$M1B01A432$M1C01A233$M1D01A436$M1E318237$M1F318239$M20009001$M21028401$M2205DB81$M230180E4$M24018001$M2595AAA0$M2600A027$M2701BC28$M2895EA29$M2995AAA0$M2A01B42B$M2B959B41$M2C01A42D$M2D65AB6E$M2E099A01$M2F019A01$M30E7B239$M3101DB81$M32F59A01$M3301B435$M3405DB81$M35E99B41$M360D9A01$M37298838$M38019801$M3919883A$M3A019801$M3B070A08$M3C068A09$M3DE7B239$M3EE7B239$M3F000000
5.微程序控制框图
本实验模型机机设计的微程序控制框图,如图4-2所示。
图4-2
6.微程序控制实现
本实验模型机机设计的微程序控制实现,如图4-3所示。
图4-3
四、系统测试及实验截图
设计机器指令程序如下,对所设计的复杂模型机进行测试,如表4-3所示。
表4-3
内存地址
(十六进制)
汇编指令
机器指令
注释
二进制
十六进制
代码段
00
IN01,R0
01000100
44
SwitchR0,(switch输入FDH,即R0=FDH)
01
IN01,R2
01000010
46
SwitchR2,(switch输入FDH,即R2=FBH)
02
CLRR1
01110001
71
0→R1
03
ADCR0,R2
10010010
92
R0+R2+CY→R2(FDH+FBH相加有进位,相加后R2=F8H)
04
BZC01,22
00011100
1C
带条件跳转到(20H)单元,使用间接寻址方式
05
00100010
22
06
RRCR2,R1
11101001
E9
R2循环节CY右转移后→R1
(此时R1=FC)
07
LDA11,23,R1
00110001
31
取数→R1,使用相对寻址方式(D+PC)→R1(R1=FF)
08
00100011
23
09
DECR0
10110000
B0
Ro-1→R0(R0=FC)
0A
SBCR0,R1
10100001
A1
R0-R1-CY→R1(R1=FD)
0B
RLCR1,R0
11110100
F4
R1循环节CY左移后→R0(此时R0=FB)
0C
JMP00,0E
00001000
08
无条件转移,直接跳转到(0E)地址
0D
00001110
0E
0E
MOVR0,R1
10000001
81
R0→R1(R1=FB)
OF
COMR2
11010010
D2
R2取反→R2(R2=07)
10
ORR0,R2
11000010
C2
R0∨R2→R2(R2=FF)
11
STA11,0A,R1
00100101
25
R1→(E),使用变址寻址方式
12
00001010
0A
13
OUTR1
01011001
59
R1→FB
14
HALT
01100000
60
停机
数据段
0D
11
22
06
23
55
2C
FF
将机器指令编辑成十六进制的格式如下:
程序:
$P0044$P0146$P0271$P0392
$P041C$P0522$P06E9$P0731
$P0823$P09B0$P0AA1$P0BF4
$P0C08$P0D0E$P0E81$P0FD2
$P10C2$P1125$P120A$P1359
$P1460$P2206
连接线路后形成的数据通路图,如图4-4所示
图4-4
使用相对寻址方式进行取数操作,并将结果放到R1中,实验过程如图4-5所示
图4-5
将R1和R0的值交换,如图4-6所示
图4-6
五、总结
这次实验是在我们三个组员的共同努力下完成的,通过这个课程的设计,我们不仅对以往学习的东西有了更加深刻的了解和掌握,也体会到了一个团队相互帮助和合作的重要性。
在实验进行过程中,也出现了一些问题,在输入微程序和测试程序时比较费力,有时候一个指令的执行错误就要从头开始重新执行。
再一个就是找错的时候需要非常的细心,各个方面的问题都要考虑到。
比如说微程序本身有没有错,程序有没有写错,格式是否正确,最后还有考虑到插线或者导线的问题。
经过这次试验,我们深深的感到团队合作的重要,以及在困难面前冷静思考的好处,也感谢牟老师的悉心指导,是我们加强了对计算机组成结构特别是控制器的设计的认识与掌握。