计算机硬件课程设计报告拓展接口的复杂模型机设计.docx
- 文档编号:26411014
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:23
- 大小:463.46KB
计算机硬件课程设计报告拓展接口的复杂模型机设计.docx
《计算机硬件课程设计报告拓展接口的复杂模型机设计.docx》由会员分享,可在线阅读,更多相关《计算机硬件课程设计报告拓展接口的复杂模型机设计.docx(23页珍藏版)》请在冰豆网上搜索。
计算机硬件课程设计报告拓展接口的复杂模型机设计
计算机硬件课程设计报告
——拓展接口的复杂模型机设计
学院:
计算机科学与工程学院
专业:
计算机科学与技术
班级:
组员1:
组员2:
起止时间:
一、实验目的··············································3
二、实验内容··············································3
三、实验思路··············································3
四、实验原理··············································3
五、实验步骤·············································10
六、实验设计·············································11
七、实验心得·············································14
经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。
搭建一台有拓展接口的8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。
1、确定设计目标:
确定所设计计算机的功能和用途。
2、确定指令系统:
确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
3、确定总体结构与数据通路:
总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。
4、设计指令执行流程:
数据通路确定后,就可以设计指令系统中每条指令的执行流程。
根据指令的复杂程度。
每条指令所需要的机器周期数。
对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中。
5、确定微程序地址:
根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。
6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。
7、组装、调试:
在总装调试前,先按功能模块进行组装和分调,因为只有功能模块工作正常后,才能保证整机的运行正确。
四、实验原理
(1)数据格式8位。
(2)指令格式:
指令系统应包括:
算术逻辑运算指令、访存指令、控制转移指令、I/O指令、停机指令。
一般指令格式如下:
OP-CODE(4位)
RS(2位)
RD(2位)
DATA/ADDR(8位)
其中RS、RD可以是R0、R1、R2中任一个,它们的代码分别为00、01、10。
DATA为立即数,ADDR为内存地址。
(3)指令系统:
读写端口指令:
PINPORT,RDPOUTRS,PORT
访存指令:
LOAD[ADDR],RDSTARS,[ADDR]
读取立即数指令:
MOVDATARD
算术运算指令:
ADDRS,RDSUBRS,RD
逻辑运算指令:
XORRS,RDANDRS,RDNOTRD
跳转指令:
JMPADDRJZADDR
停机指令:
HALT
2、
指令微操作流程
微指令为24位2进制编码,其中24位分配及编码方式如下:
(1)第24位至第19位分配方式:
24
23
22
21
20
19
S3
S2
S1
S0
M
Cn
第24位至第19位编码方式方式:
(2)第18位至第16位分配方式:
18
17
16
WE
A9
A8
第18位至第16位编码方式方式:
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)第15位至第7位分配方式:
151413
121110
987
A
B
C
第15位至第7位编码方式:
A字段:
15
14
13
选择
0
0
0
0
0
1
LDRi
0
1
0
LDDR1
0
1
1
LDDR2
1
0
0
LDIR
1
0
1
LOAD
1
1
0
LDAR
B字段:
12
11
10
选择
0
0
0
0
0
1
RS-B
0
1
0
RD-B
0
1
1
RI-B
1
0
0
299-B
1
0
1
ALU-B
1
1
0
PC-B
C字段:
9
8
7
选择
0
0
0
0
0
1
P
(1)
0
1
0
P
(2)
0
1
1
P(3)
1
0
0
P(4)
1
0
1
AR
1
1
0
LDPC
(4)第6位至第1位分配方式:
6
5
4
3
2
1
uA5
uA4
uA3
uA2
uA1
uA0
第6位至第1位指示下一条微指令的地址。
(5)299移位控制表:
299-b
s1
s0
m
功能
0
0
0
任意
保持
0
1
0
0
循环右移
0
1
0
1
带进位循环右移
0
0
1
0
循环左移
0
0
1
1
带进位循环左移
任意
1
1
任意
装数
4、微程序地址入口的形成
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、微程序装载格式
机器指令格式:
$Pxxxx
微指令格式:
$Mxxxxxxxx
把它们保存为*.TXT文件。
注:
1)程序中字母要大写。
2)机器指令地址按顺序,微指令地址可不按顺序。
7、模型机的时序
8、模型机的数据通路
10、8255接口简介
(1)8255芯片简介
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接。
3)控制器
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。
如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出。
(2)读写端口指令
1)读端口指令格式:
PINPORT,RD
OP-CODE(4位)
RS(2位)
00
PORT
2)写端口指令格式:
POUTRS,PORT
OP-CODE(4位)
00
RD(2位)
PORT
3)读写端口指令微操作:
(3)8255的编程
8255的初始化编程较简单,只需要一个控制字就把3个端口设置完成。
1)写入方式控制字。
方式控制字决定端口A、B、C的工作方式。
2)经过初始化编程之后,处理器执行读端口指令和写端口指令,对3个数据端口进行读写就可以实现处理器与外设之间的数据交换。
(1)按照给定模型机组装电路图连接电路;
(2)连通实验箱与PC机,打开CMP软件,测试实验箱是否正常;
(3)设计微指令,画出其微操作流程图,并翻译成相应的微指令格式;
(4)设计包含这些微指令的机器指令程序,并翻译成相应机器指令格式;
(5)把设计好微指令和机器指令保存为TXT文件,然后装载入CMP;
(6)打开复杂模型机,然后用单步机器指令运行程序并调试;
(7)检查输出结果是否正确,最后撰写实验报告。
1、设计机器指令
在实验设计中,我们定义了12条指令,分别为他们编码,如下表所示:
基本指令
指令代码
PIN
0000
POUT
0001
LOAD
0010
STA
0011
MOV
0100
ADD
0101
SUB
0110
AND
0111
XOR
1000
NOT
1001
JMP
1010
JZ
1011
2、设计微指令
A
B
C
微操作
00018001
00
000000
011
000
000
000
000001
0101ED82
01
000000
011
110
110
110
000010
PC->AR,PC+1->PC
0200C050
02
000000
001
100
000
001
010000
RAM->BUS,BUS->IR
PIN
1001ED83
10
000000
011
110
110
110
000011
PC->AR,PC+1->PC
0300E004
03
000000
001
110
000
000
000100
RAM->BUS,BUS->AR
04011001
04
000000
010
001
000
000
000001
读端口数据送入寄存器
POUT
1101ED85
11
000000
011
110
110
110
000101
PC->AR,PC+1->PC
0500E006
05
000000
001
110
000
000
000110
RAM->BUS,BUS->AR
06030201
06
000000
110
000
001
000
000001
寄存器写入端口数据
LOAD
1201ED87
12
000000
011
110
110
110
000111
PC->AR,PC+1->PC
0700E008
07
000000
001
110
000
000
001000
RAM->BUS,BUS->AR
08009001
08
000000
001
001
000
000
000001
RAM->BUS,BUS->Ri
STA
1301ED89
13
000000
011
110
110
110
001001
PC->AR,PC+1->PC
0900E00A
09
000000
001
110
000
000
001010
RAM->BUS,BUS->AR
0A028201
0A
000000
101
000
001
000
000001
Ri->BUS,BUS->RAM
MOV
1401ED8B
14
000000
011
110
110
110
001011
PC->AR,PC+1->PC
0B009001
0B
000000
001
001
000
000
000001
RAM->BUS,BUS->Ri
ADD
1501A20C
15
000000
011
010
001
000
001100
Ri->LDDR1
0C01B40D
0C
000000
011
011
010
000
001101
Ri->LDDR2
0D959A01
0D
100101
011
001
101
000
000001
LDDR1+LDDR2->Ri
SUB
1601A20E
16
000000
011
010
001
000
001110
Ri->LDDR1
0E01B40F
0E
000000
011
011
010
000
001111
Ri->LDDR2
0F619B41
0F
011000
011
001
101
101
000001
LDDR1-LDDR2->Ri
AND
1701A220
17
000000
011
010
001
000
100000
Ri->LDDR1
2001B421
20
000000
011
011
010
000
100001
Ri->LDDR2
21159A01
21
000101
011
001
101
000
000001
LDDR1与LDDR2->Ri
XOR
1801A222
18
000000
011
010
001
000
100010
Ri->LDDR1
2201B423
22
000000
011
011
010
000
100011
Ri->LDDR2
23699A01
23
011010
011
001
101
000
000001
LDDR1+LDDR2->Ri
NOT
1901B424
19
000000
011
011
010
000
100100
Ri->LDDR2
24099A01
24
000010
011
001
101
000
000001
LDDR1+LDDR2->Ri
JMP
1A01EDA5
1A
000000
011
110
110
110
100101
PC->AR,PC+1->PC
2500D181
25
000000
001
101
000
110
000001
RAM->BUS,BUS->PC
JZ
1B01ECEF
1B
000000
011
110
110
011
101111
PC->AR,PC+1->PC
2F018001
2F
000000
011
000
000
000
000001
分支测试失败
3F00D181
3F
000000
001
101
000
110
000001
分值测试成功
3、设计验证程序
汇编指令
(前一个操作数为源操作数,
后一个操作数为目的操作数)
MOV90H,R2
POUTR2,03H
PIN00H,R1
MOV02H,R2
ADDR1,R2
XORR1,R2
NOTR2
LOAD[20H],R0
JMP30H
SUBR0,R0
JZ40H
ANDR0,R2
POUTR2,01H
4、汇编程序与机器指令程序的转换
地址
机器指令码(二进制)
机器指令码(十六进制)
指令
01
01000010
42H
MOV90H,R2
02
10010000
90H
03
00011000
18H
POUTR2,03H
04
00000011
03H
05
00000001
01H
PIN00H,R1
06
00000000
00H
07
00010100
14H
POUTR1,01H
08
00000001
01H
09
01000010
42H
MOV02H,R2
0A
00000010
02H
0B
01010110
56H
ADDR1,R2
0C
10000110
86H
XORR1,R2
0D
10010010
92H
NOTR2
0E
00100000
20H
LOAD[20H],R0
0F
01000000
20H
10
10100000
A0H
JMP30H
11
00110000
30H
30
01100000
60H
SUBR0,R0
31
10110000
B0H
JZ40H
32
01000000
40H
40
011100010
72H
ANDR0,R2
41
00011000
18H
POUTR2,01H
42
00000001
01H
5、建立联机操作文件
为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立。
源程序如下:
$P0401
$P0500
$P0614
$P0701
$P0842
$P0902
$P0A56
$P0B86
$P0C92
$P0D20
$P0E20
$P0FA0
$P1030
$P3060
$P31B0
$P3240
$P4072
$P4118
$P4201
$M00018001
$M0101ED82
$M0200C050
$M1001ED83
$M0300E004
$M04011001
$M1101ED85
$M0500E006
$M06030201
$M1201ED87
$M0700E008
$M08009001
$M1301ED89
$M0900E00A
$M0A028201
$M1401ED8B
$M0B009001
$M1501A20C
$M0C01B40D
$M0D959A01
$M1601A20E
$M0E01B40F
$M0F619B41
$M1701A220
$M2001B421
$M21159A01
$M1801A222
$M2201B423
$M23699A01
$M1901B424
$M24099A01
$M1A01EDA5
$M2500D181
$M1B01ECEF
$M2F018001
$M3F00D181
经过两天的学习、设计和开发,带有拓展接口的复杂模型机基本上算是开发完成了,其功能基本能够符合设计需求,基本能够达到硬件课程设计基本目的。
当然,在这个过程中也参阅了不少书籍并从中受益匪浅,学到了不少东西和技巧。
但由于设计时间较短,所以该模型机还有许多不尽人意的地方,这些都有待进一步改善。
通过学习,我不仅掌握了基本的硬件知识和理论,并且增强了自学和深入思考的能力。
因此,参加这次硬件课程设计,不仅仅是只是做出了一个模型机而已,更培养和加强了自主学习、深入思考问题的能力,可以说是一举多得。
作为一名计算机学院的学生,我们觉得这样的课程设计是十分有意义的。
我们在课堂上掌握的仅仅是专业基础课的理论面,如何去运用现实中的各种硬件部件?
如何去面对现实中的各种程序设计?
如何把我们所学到的专业基础理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
在做本次课程设计的过程中,我感触最深的当属翻阅了很多次课本和指导书。
这次的课程设计,可是说是对进入大学里来所有涉及到硬件的课程的一次大综合,她所涉及到的知识面涵括了计算机组成原理和微机接口技术等。
可以说,这次的课程设计是对我们所学硬件知识的一次大融合,有助于我们在更高层次上把握和理解硬件基础知识。
计算机技术浩瀚无边,需要我们学习的知识非常之多。
借助于本次课程设计,无论是从技术上还是对知识的理解上讲,都对我们今后步入社会都打下了一个良好的基础。
总之,通过这次的生产实习,我学会了很多,也了解了很多。
在这,我真诚的感谢辅导过我的老师,还有帮助过我的同学们。
谢谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机硬件 课程设计 报告 拓展 接口 复杂 模型 设计