计算机组成原理课程设计报告复杂模型机.docx

上传人:b****6 文档编号:7323528 上传时间:2023-01-22 格式:DOCX 页数:16 大小:185.94KB
下载 相关 举报
计算机组成原理课程设计报告复杂模型机.docx_第1页
第1页 / 共16页
计算机组成原理课程设计报告复杂模型机.docx_第2页
第2页 / 共16页
计算机组成原理课程设计报告复杂模型机.docx_第3页
第3页 / 共16页
计算机组成原理课程设计报告复杂模型机.docx_第4页
第4页 / 共16页
计算机组成原理课程设计报告复杂模型机.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

计算机组成原理课程设计报告复杂模型机.docx

《计算机组成原理课程设计报告复杂模型机.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告复杂模型机.docx(16页珍藏版)》请在冰豆网上搜索。

计算机组成原理课程设计报告复杂模型机.docx

计算机组成原理课程设计报告复杂模型机

计算机组成原理课程设计报告

复杂模型机的设计和调试

复杂模型机的设计和实现

一、课程设计目的

本课程设计是《计算机组成原理》课程结束以后开设的大型实践性教学环节。

通过本课程设计,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对微程序控制器的理解,进一步巩固所学的理论知识,并提高运用所学知识分析和解决实际问题的能力;锻炼计算机硬件的设计能力、调试能力;培养严谨的科学实验作风和良好的工程素质,为今后的工作打下基础。

二、实验设备

ZY15CompSys12BB计算机组成原理教学实验系统一台,排线若干。

三、设计和调试任务

1.按给定的指令格式和指令系统功能要求,用所提供的器件设计一台微程序控制器控制的模型计算机。

2.根据设计图,在通用实验台上进行组装,并调试成功。

四、指令格式

模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器及转移指令和停机指令。

(A)算术逻辑指令

设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:

D7D6D5D4

D3D2

D1D0

OP-CODE

Rs

Rd

其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:

选中的寄存器(Rs或Rd)

R0

R1

R2

寄存器的编码

00

01

10

(B)访存指令及转移指令

模型机设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。

其格式如下:

D7D6

D5D4

D3D2

D1D0

D7····D0

OP-CODE

M

OP-CODE

Rd

D

其中,OP-CODE为操作码,Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:

寻址方式

有效地址

说明

00

E=D

直接寻址

01

E=(D)

间接寻址

10

E=(RI)+D

RI变址寻址

11

E=(PC)+D

相对寻址

本模型机规定变址寄存器RI指定为寄存器R2。

(C)I/O指令

输入和输出指令采用单字节指令,其格式如下:

D7D6D5D4

D3D2

D1D0

OP-CODE

addr

Rd

其中,addr=01时,表示选中“输入单元”中的开关组作为输入设备,addr=10时,表示选中“输出单元”中的数码管作为输出设备。

(D)停机指令

这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下:

D7D6D5D4

D3D2

D1D0

0110

00

00

五、总体设计

(1)指令系统

本模型机共有16条基本指令。

其中,算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。

表1列出了各条指令的格式、汇编符号、指令功能。

表1复杂模型机指令系统

序号

汇编符号

指令格式

功能说明

1

CLRRd

011100Rd

0→Rd

2

MOVRS,Rd

1000RSRd

RS→Rd

3

ADCRS,Rd

1001RSRd

RS+Rd+Cy→Rd

4

SBCRS,Rd

1010RSRd

RS-Rd-Cy→Rd

5

INCRd

1011--Rd

Rd+1→Rd

6

ANDRS,Rd

1100RSRd

RS∧Rd →Rd

7

COMRd

110100Rd

Rd →Rd

8

RRCRS,Rd

1110RSRd

RS带进位右循环一位,RS→Rd

9

RLCRS,Rd

1111RSRd

RS带进位左循环一位,RS→Rd

10

LDAM,D,Rd

00M00Rd,D

E→Rd

11

STAM,D,Rd

00M01Rd,D

Rd→E

12

JMPM,D

00M1000,D

E→PC

13

BZCM,D

00M1100,D

当CY=1或ZI=1时,E→PC

14

INaddr,Rd

010001Rd

addr→Rd

15

OUTaddr,Rd

010110Rd

Rd→addr

16

HALT

01100000

停机

 

(2)微指令格式

表2复杂模型机微指令结构图

微程序

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

控制信号

S3

S2

S1

S0

M

CN

RD

M17

M16

A

B

P

uA5

uA4

uA3

uA2

uA1

uA0

 

A字段

B字段

P字段

15

14

13

控制信号

12

11

10

控制信号

9

8

7

控制信号

0

0

0

0

0

0

0

0

0

0

0

1

LDRI

0

0

1

RS_G

0

0

1

P1

0

1

0

LDDR1

0

1

0

RD_G

0

1

0

P2

0

1

1

LDDR2

0

1

1

RI_G

0

1

1

P3

1

0

0

LDIR

1

0

0

299_G

1

0

0

P4

1

0

1

LOAD

1

0

1

ALU_G

1

0

1

AR

1

1

0

LDAR

1

1

0

PC_G

1

1

0

LDPC

 

其中uA5~uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。

P字段中的P1~P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。

具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3~uA0)和指令寄存器高四位(IR7~IR4)相或得到各路分支;P2测试用下址低2位(uA1~uA0)和指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4和(ZI+CY)相或得到各路分支;

P4测试用于控制台操作,它用下址低2位(uA1~uA0)和SWB、SWA相或得到各路分支。

在上述各测试下址中未用到的位均直接保留。

AR为算术运算是否影响进位及判零标志控制位,其为零有效。

B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。

三字段中的其他位类似和此,均是某芯片的选通信号,它们的功能都是根据机器指令来进行相应芯片的选通译码。

 

(3)微程序流程图

本模型机的数据通路如图1所示。

根据机器指令系统要求,设计微程序流程图及确定微地址,如图2所示。

 

图1复杂模型机的数据通路图

微地址

S3~CN

RD

M17M16

A

B

P

uA5~uA0

00

000000

0

11

000

000

100

010000

01

000000

0

11

110

110

110

000010

02

000000

0

01

100

000

001

100000

35

000000

0

01

010

000

000

011110

36

000000

0

01

110

000

010

000100

37

000000

0

01

110

000

010

110000

60

000000

0

01

010

000

000

110001

61

000000

0

01

110

000

010

000100

54

000000

0

11

110

110

110

011101

55

000000

0

11

110

110

110

011111

56

000000

0

01

010

000

000

110010

23

000000

0

11

000

000

000

000001

24

000000

0

00

010

000

000

011000

62

000000

0

01

010

000

000

110011

63

000000

0

11

011

011

000

110100

64

100101

0

11

110

101

000

111100

20

000000

0

11

110

110

110

000011

21

000000

0

11

110

110

110

000101

22

000000

0

11

110

110

110

001101

57

000000

0

11

110

110

110

110101

51

000000

0

00

001

000

000

000001

52

000000

1

10

000

010

000

000001

46

000000

0

11

000

000

000

100110

40

001111

0

11

001

101

000

000001

41

000000

0

11

001

001

000

000001

42

000000

0

11

010

001

000

111010

43

000000

0

11

011

001

000

000011

44

000000

0

11

010

010

000

001101

45

000000

0

11

010

001

000

001110

53

000000

0

11

010

010

000

111011

47

001100

0

11

000

001

000

011010

50

001100

0

11

000

001

000

011011

05

000000

0

01

001

000

000

000001

04

000000

1

01

000

010

001

000001

07

000001

0

11

101

101

110

000001

06

000000

0

11

000

000

011

001001

11

000000

0

11

000

000

000

000001

74

100101

0

11

010

101

010

000100

65

000000

0

01

010

000

000

110111

67

000000

0

11

011

110

000

111000

70

100101

0

11

110

101

000

111001

71

100101

0

11

010

101

010

000100

72

000000

0

11

011

010

000

001010

12

100101

0

11

001

101

101

000001

03

000000

0

11

010

010

000

001100

14

011001

0

11

010

101

101

010101

25

000011

0

11

001

101

000

000001

57

000000

0

11

010

101

000

110000

60

000011

0

11

000

000

101

110001

61

100101

0

11

001

101

101

000001

15

000000

0

11

001

101

000

000001

16

000000

0

11

011

010

000

001111

31

000001

0

11

101

101

110

000001

17

101110

0

11

001

101

101

000001

73

000011

0

11

001

101

000

000001

32

001010

0

11

000

100

000

001011

13

000000

0

11

001

100

000

000001

33

000110

0

11

000

100

000

001011

72

000000

0

11

001

100

000

000001

27

000001

1

10

000

101

000

010000

30

000001

1

01

000

101

000

010001

六、实验步骤

(1)按图3连接实验线路,仔细查线无误后,接通电源。

(2)编程

A.将控制台单元的编程开关SP06设置为WRITE(编程)状态。

B.将控制台单元上的SP03置为STEP,SP04置为RUN状态。

C.用开关单元的二进制模拟开关设置微地址UA5~UA0。

D.在微控制器单元的开关LM24~LM01上设置微代码,24位开关对应24位显示灯,开关量为1时灯亮,开关量为0时灯灭。

E.按动START键,启动时序电路,即将微代码写入到28C16的相应地址单元中。

F.重复C~E步骤,将表3的微代码写入28C16中。

(3)校验

A.将编程开关SP06设置为READ(校验)状态。

B.将实验板的SP03开关置为STEP状态,SP04开关置为RUN状态。

C.用二进制开关置好微地址μA5~μA0。

D.按动START键,启动时序电路,读出微代码.观察显示灯LM24~LM01的状态(灯亮为“1”,灭为“0”),检查读出的微代码是否和写入的相同。

如果不同,则将开关置于WRITE编程状态,重新执行

(2)即可

(4)写程序/运行程序

A.将控制台单元上的SP03置为STEP状态,SP04置为RUN状态,SP05置为NORM状态,SP06置为RUN状态。

B.拨动开关单元的总情开关CLR(1→0→1),微地址寄存器清0,程序计数器清0。

然后使开关单元的SWB、SWA开关设置为“01”,按动一次START,微地址显示灯显示“001001”,再按动一次START,微地址灯显示“001100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。

若仔细阅读KWE的流程,就不难发现,机器指令的首地址总清后为00H,以后每个循环PC自动加1,所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。

C.写完程序后须进行校验。

拨动总清开关CLR(1→0→1)后,微地址清零。

PC程序计数器清零,然后使控制台开关SWB,SWA为“00”,按动启动START,微地址灯将显示“001000”;再按START,微地址灯显示为“001010”;第3次按START,微地址灯显示为“111011”;再按START后,此时输出单元的数码管显示为该首地址中的内容。

不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。

每次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。

(4)运行程序。

(A)单步运行程序

①使编程开关SP06处于RUN状态,SP03为STEP状态,SP04为RUN状态,SP05为NORM状态,开关单元的SWB,SWA为“11”。

②拨动总清开关CLR(1→0→1),微地址清零,程序计数器清零,程序首址为00H。

③单步运行一条微指令,每按动一次START键,即单步运行一条微指令。

对照微程序流程图,观察微地址显示灯是否和流程一致。

④当运行结束后,可检查运行结果是否和理论值一致。

(B)连续运行程序

①使编程开关SP06处于RUN状态,SP03为RUN状态,SP04为RUN状态,SP05为NORM状态,开关单元的SWB,SWA为“11”。

②拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将SP04拨至“STOP”时,系统停机。

③停机后,可检查运行结果是否和理论值一致。

七、测试程序

地址内容助记符说明

-------------------------------------------------------------------------------

0044IN输入41

0104STA[40H]41->[40H]

0240

0344IN输入40

0404STA[41H]40->[41H]

0541

0608JMP09H跳到09H执行

0709

0860HLAT停机

-------------------------------------

0910LDA[LDA[40H]]

0A40间址取到41H单元数

0B58OUT输出40

--------------------------------------

0C46IN输入20->RI

0D20LDA[RI+D]变址取40H单元数

0E20

0F58OUT输出41

------------------------------------

1030LDA[PC+D]相对寻址取41H单元数

112F

1258OUT输出40

------------------------------------

1344IN输入81

14F0RLC进位使CY灯灭

150CBZC有进位或为0时跳到18H执行

1618

1760HLAT停机

1800LDA[40H]取40H单元数

1940

1A58OUT输出41

-----------------------------------------------------------------------------

1B44IN输入80

1C58OUT输出80

1DB0INC加1

1E58OUT输出81

------------------------------------

1FD0COM取反

2058OUT输出7E

------------------------------------

2145IN输入0F

22C1AND

2359OUT输出0E

-------------------------------------

2481MOVRS->RD

2559OUT输出7E

-------------------------------------

2670CLR0->RS

2758OUT输出0

-------------------------------------

2844IN输入81

29F0RLC带进位循环左移,CY灯灭

2A58OUT输出3

2B45IN输入1

2C91ADC带进位加

2D59OUT输出5

-------------------------------------

2E44IN输入81

2FE0RRC带进位循环右移

3058OUT输出40,CY灯灭

3145IN输入1F

32A1SBC带进位减

3359OUT输出20

----------------------------------------------------------------------

(八)、课程设计总结

这次课程设计前前后后花了一周的时间,大部分时间花在了对设计题目的理解和分析之上。

刚开始接触题目的时候比较茫然,于是在实验五上下了一些功夫,基本了解试验设计的大致思路。

在设计过程中,我们屡次碰壁,但是我们坚持不懂就问,在自己的讨论和向别人的请教中,加深了理解,后来又由于自己分析的不周全,在P1测试是“或”还是“异或”犯了错误,而导致设计的流程中地址代码全部出错,我们不得不重新设计地址代码。

等等类似的问题还有很多,其实回头看看,在设计过程中多碰壁是好事。

其实这次设计不算顺利,虽然我和王继波最后顺利完成了设计任务,但是我觉得从团队的角度来说,一种顺利的合作,还说不上。

1)首先,作为团队,我们没有把各自的任务分配清楚,而是一起走步,我觉得这样遇到问题的时候容易产生依赖心理,也不容易调动每个人的积极性。

明确的分工是合作的必要因素,而遇到问题集体讨论才是发挥集体力量的时候。

2)其次,我觉得我们没有在设计初期对问题的分析还不够深入,而在后期在遇到问题的时候有点对自己的东西掌控不住的感觉。

我们基本上是走一步看一步,打个比方,把整个问题比作一棵树,我们在初期没有把整棵树进行遍历,以做到大致心中有数,而我们走的只是其中一枝,在遇到问题的时候在回过头找其他的树杈,却在岔路口徘徊。

3)总体上,我觉得我们比较乱,缺少条理性或者是规划。

我个人以前独自做课程设计的时候,都习惯先分析,再动手,而这次总体上不是这种风格。

也许这里面涉及到一个集体合作的融洽性问题,但是我倒觉得有个进行总体部署的“牵头人”比较好。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1