硬件课设报告微指令

硬件课设报告微指令
硬件课设报告微指令

硬件课设报告微指令

院系:计算机院专业:

学号:

姓名:

指导教师:

南京理工大学

一、设计目的

通过本次硬件课程,设计一个使用微程序的模拟计算器,更加深入的了解各部件和总线之间的连接方式,认识计算机的组成结构,工作原理以及运行方式。(1)通过一个微机应用实例建立微机系统的整体概念;

(2)学习掌握微机系统的硬、软件的工作原理以及二者间的配合关系和方法;(3)掌握汇编语言应用程序的设计和调试方法。

(4)掌握微指令格式以及如何设计微指令。

二、所用设备

TDN-CM++实验教学系统一台,PC微机一台。

三、设计思想

运用汇编语言,根据微指令的格式以及微指令的功能,对微指令的每一位都需要准确对应。一共是24位,最后把24位转换位8421BCD码表示微指令码。然后根据微指令流程图填写下一位地址,使程序能够按照规定的流程进行下去。最后通过实验机进行调试,如果CPU走势图正确,说明微指令程序设计完成。如图:(cpu硬件)

四、指令系统格式

五、微操作流程图

六、生成指令及对应微程序列表

地址微操作24 23 22 21 20 19 18 17 16 1514

13

121110 9

87

6 5 4 3 2 1 16进

制S3 S2 S1 S0 M Cn WE A9 A8 A B C ua5 ua4 ua3 ua2 ua1 ua0

00 复位,p(4) 0 0 0 0 0 0 0 1 1 000 000 100 0 0 1 0 0 0 018108

01 Pc->ar,pc+1 0 0 0 0 0 0 0 1 1 110 110 110 0 0 0 0 1 0 01ED8

2

02 Ram->ir,p(1) 0 0 0 0 0 0 0 0 1 100 000 001 0 1 0 0 0 0 00C05

IN

10 SW->R0 0 0 0 0 0 0 0 0 0 011 000 000 0 0 0 0 0 1 001001 ADD

11 Pc->ar,pc+1 0 0 0 0 0 0 0 1 1 110 110 110 0 0 0 1 0 0 01ED8

4

04 Ram->ar 0 0 0 0 0 0 0 0 1 110 000 000 0 0 0 1 0 1 00E00

5

05 Ram->dr2 0 0 0 0 0 0 0 0 1 011 000 000 0 0 0 1 1 0 00B00

6

06 R0->dr1 0 0 0 0 0 0 0 1 0 010 001 000 0 0 0 1 1 1 01A20

7

07 (dr1)+(dr2)->

r0 1 0 0 1 0 1 0 1 1 001 101 000 0 0 0 0 0 1 959A0

1

STA

12 PC->AR,PC

+1 0 0 0 0 0 0 0 1 1 110 110 110 0 0 1 0 0 1 01ED8

9

09 RAM->AR 0 0 0 0 0 0 0 0 1 110 000 000 0 0 1 0 0 0 00E00

8

08 R0->RAM 0 0 0 0 0 0 1 0 1 000 001 000 0 0 0 0 0 1 028201 OUT

13 PC->AR,PC

+1 0 0 0 0 0 0 0 1 1 110 110 110 1 0 0 0 0 0 01ED

A0

20 RAM->AR 0 0 0 0 0 0 0 0 1 110 000 000 1 0 0 0 0 1 00E02

1

21 RAM->LED 0 0 0 0 0 1 1 1 0 000 101 000 0 0 0 0 0 1 070A0

1 DEC

17 R0->DR1 0 0 0 0 0 0 0 0 0 010 010 000 1 0 0 1 1 1 002427 27 DR1->R0 1 1 1 1 0 1 0 1 1 001 101 000 0 0 0 0 0 1 F59A0

1 MOV

15 DS->RD 0 0 0 0 0 0 0 1 1 001 001 000 0 0 0 0 0 1 019201 AND

18 RS->BUS,BU

S->DR1 0 0 0 0 0 0 0 1 1 010 001 000 1 0 1 0 0 1 01A22

9

29 RD->BUS,B

US->DR2 0 0 0 0 0 0 0 1 1 011 010 000 1 1 0 0 0 0 01B43

30 DR1&DR2->

BUS->RD 1 0 1 1 1 0 0 1 1 001 101 000 0 0 0 0 0 1 B99A0

1

SUB

14 PC->AR,PC

+1 0 0 0 0 0 0 0 1 1 110 110 110 0 0 0 0 1 0 01ED

A2

22 RAM->BUS,

BUS->AR 0 0 0 0 0 0 0 0 1 110 000 000 1 0 0 0 1 1 00E02

3

23 RAM->BUS,

BUS->DR2 0 0 0 0 0 0 0 0 1 011 000 000 1 0 0 1 0 0 00B02

4

24 DR->DR1 0 0 0 0 0 0 0 1 1 010 001 000 1 0 0 1 1 0 01A22

6

26 (DR1)->(DR2

)=R0 0 1 1 0 0 1 0 1 1 001 101 000 0 0 0 0 0 1 659A0

1

INC

16 RD->BUS,B

US->DR1 0 0 0 0 0 0 0 1 1 010 010 000 1 0 0 1 0 1 01A42

5

25 RD1+1->BU

S->RD 0 0 0 0 0 0 0 1 1 001 101 000 0 0 0 0 0 1 019A0

1

七、验证程序

1. IN指令:$P0000

$M00018108 $M0101ED82 $M0200C050 $M10001001

2.ADD指令:$P0010

$M00018108 $M0101ed82 $M0200C050 $M1101ED84 $M0400E005 $M0500B006 $M0601A207 $M07959A01

3.STA指令:$P0020

$M00018108 $M0101ed82 $M0200C050 $M1201ED89 $M0900E008 $M08028201

4.OUT指令:$P0030

$M00018108 $M0101ed82 $M0200C050 $M1301EDA0 $M2000E021 $M21070A01

5.SUB指令:$P0040

$M00018108 $M0101ed82 $M0200C050 $M1401EDA2

$M2200E023

$M2300B024

$M2401A226

$M26659A01

6.MOV指令:

$P0050

$M00018108

$M0101ed82

$M0200C050

$M15019201

7.INC指令:

$P0060

$M00018108

$M0101ed82

$M0200C050

$M1601A425

$M25019A01

8.DEC指令:

$P0070

$M00018108

$M0101ed82

$M0200C050

$M17002427

$M27F59A01

9.AND指令:

$P0080

$M00018108

$M0101ed82

$M0200C050

$M1801A229

$M2901B430

$M30B99A01

八、设计总结

在学期的末尾,各个学科陆续结课之时,我们迎来了帅辉明老师的硬件课程设计。本次硬件课程,我们要设计一个使用微程序的模拟计算器,更加深入的了解各部件和总线之间的连接方式,认识计算机的组成结构,工作原理以及运行方式。

老师在课的一开始,先给我们介绍了微程序是什么,以及组成微程序的微

指令。经过一番讲解,我了解了微程序是CPU的“大脑”,也就是电脑的“大脑的大脑”。

进入硬件连线的阶段,我负责看图上的线告诉队友怎么连接。我开始以为这是一个很简单的任务,无非是对照着图解一根一根连,但连了几根发现连线也是很繁琐的。情况不同,线的种类也不同,连接时还要一一对应连接,否则就会出问题。还需要统筹规划,一部分一部分的连线,不然连到最后都不知道什么线连了,什么线没连。经过小组的齐心协力,终于将线先连完了,然后就进入测试阶段。打开电脑上的CMPP,按照老师的教学,进入了测试界面。第一次测试显示了PC错误,于是我们按照程序上的指示去排查线的连接,可是一直找不到问题所在。正当一筹莫展指示,有人提议按照原图,逐个排查。于是我们对着原图,一个一个的查错,终于功夫不负有心人,找到了连接错误的那根线,原因是没有对应连接。改错后,我们再次测试,幸运的是,这次测试一次就通过了。于是,我们小组的硬件连线阶段完美收官。

第二天,我们开始学习微指令格式以及如何设计微指令。微指令是指在微程序控制的计算机中,同时发出的控制信号所执行的一组微操作。微指令是由同时发出的控制信号的有关信息汇集起来形成的。将一条指令分成若干条微指令,按次序执行就可以实现指令的功能。若干条微指令可以构成一个微程序,而一个微程序就对应了一条机器指令。每一个微操作对应一个微指令,字段分为S3 S2 S1 S0 M Cn WE A9 A8 A B C uA5 uA4 uA3 uA2 uA1 uA0。我们从微操作流程图中提取各个微程序的微操作,再根据微指令格式表格查找写出对应微指令,化为16进制,加上微指令特有的格式$P0000,$M,在电脑的CMPP中将微指令装载到微程序中。经过一番努力,我们把所要求的8个微指令都装载成功了。它们分别是IN ADD STA OUT SUB MOV INC DEC AND。

通过本次课程设计,我们通过一个微机应用实例建立微机系统的整体概念,学习掌握微机系统的硬、软件的工作原理以及二者间的配合关系和方法,掌握汇编语言应用程序的设计和调试方法,掌握微指令格式以及如何设计微指令。此次课程设计加深了我对于计算机硬件课程的理解,知道了如何设计机器指令,设计测试程序并完成调试。同时学会了与他人配合,相互帮助,相互学习。让我受益匪浅。

年关将至,又到了各科结课之际,我们也到了该做课程设计的时候了,前一天看到群里硬件课程设计的通知,让我感到十分纳闷,我们什么时候学过这门课了,后来仔细一想之前还有好几门课都还有实验课没上,就恍然大悟了。本次硬件课程设计我们要用用微程序的模拟计算器,更加深入的了解各部件和总线之间的连接方式,认识计算机的组成结构,工作原理以及运行方式。

第一天上午,我们来到了实验教室,看到了我们最喜欢的帅老师,一开始老师先给我们介绍了什么是微程序和微指令,他把cpu形象的比喻成电脑的大脑,而微程序就是cpu的大脑,也就是大脑的大脑。由于之前在计算机组成原理这门课上学过一些相关内容,对相关知识有比较浅显的理解,在听了老师的解释后让我豁然开朗。我们第一天的任务是连接硬件,一开始看着电脑屏幕上的电路图和那块光秃秃的绿色电路板,着实让人不知从何下手。在我们小组成员简短的讨论后,我们决定开始动手,我们对着电路图,看着电路板,一边找线,一边连一边检查,就怕最后练了半天不对,还得从头再来,前后花了一个多小时终于把该接的线全部接完了,就到了激动人心的检测环节,但是很不幸

的是,我们最最担心的事情还是发生了,屏幕上现实pc错误,我们又只好看着电路图,失望的大眼瞪小眼,查了半天,可就是不知道问题出在哪,就在我们一筹莫展之时,隔壁的同学提议按照原图一个一个的在排查一边看看,功夫不负有心人,我们最终还是找到了错误所在,在我们重新连接后,又进行了一次测试,直接通过了,一上午的工作终于没白费,第一天的硬件连接画上了圆满的句号。

第二天我们在帅老师的带领下学习了如何设计微指令。微指令是指在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,描述微操作的语句。微命令是指控制部件通过控制线向执行部件发出各种控制命令。操作微指令是描述受控电路的操作语句 , 分支微指令是描述控制电路的分支语句。为了便于我们理解,他还举例就介绍了现在我们用的电脑都是复杂指令集,而手机却是基于arm架构的简单指令集,虽然看似两者主频差不太多,但是工作效率却是相差甚远,他还说高通已经开始着手基于移动处理器的电脑cpu,由于我平时队手机比较关注,老师的例子让我想起了前一段时间一个基于高通骁龙835的笔记本电脑的跑分图,当时还在想不就是把手机cpu安到电脑上嘛,有什么难的,没想到这后面还有这么大的奥秘。老师的举例讲解让我对手机和电脑有了进一步的了解。回过神来,今天我们要从微操作流程图中提取各个微程序的微操作,再根据微指令格式表格查找写出对相应的微指令,并转化为16进制,在加上微指令特有的格式$P0000,$M,在电脑的CMPP中将微指令装载到微程序中。在一顿操作之后,最终我们把所要求的8个微指令都装载成功了。

这次实验让我受益匪浅,不仅增强了我们的动手和团队合作沟通的能力,还让我们对正在学习中的计算机组成原理有了进一步更深的理解,最关键的是让我们把晦涩难懂的课本知识与实际生活中的手机电脑联系了起来。让我们多一些饭后谈资,多了些兴趣,更加深了对它们的理解。

经过这几天的实验的学习,我对CPU和微指令又要了更深入的了解,初步掌握芯片设计的方法,第一天时帅叔开始教我们这个晦涩难懂的微程序,微程序是cpu的大脑而cpu又是电脑的大脑,在一系列教学后,开始配合CMPP程序插线,熟悉作图,了解芯片的构造和用途,对着图一根一根线插着反反复复,出错好几次,每一步都不曾经历过,每一步都有着我们摸索的痕迹。特别是一次次调试过程中出现的eror,先是pc load 有问题,然后是IR有问题,仔细检查后改正错误,不止一次令人出现烦躁的情绪。幸好还有合作伙伴,一个人怎么也找不出原因的时候,换个人,换个思路,有些错误立马迎而解。合作,使这看似枯燥的实验多了此乐趣。时间就在这样的氛围中悄悄地过去了。

随着学习的深入,我们越发地发现其实在计算机这个领域我们还有太多未知的东西。这些东西需要我们一天天地积累,一步步地提高。在我的不懈努力和请教同学还有合作的过程中把线连好了,拍照发图搞定了,第二天开始了对顶层原理图的理解,跟我们讲微程序的地址,还送了我们几个地址,一开始对8*8FIFO存储器的原理图和工作原理,并不了解,只是略知一二,叔跟我们说不懂没关系,硬听,在我们不懈努力下对表格中的数据进行处理,得出了结果,撰写了实验报告,最后,我发现,在本次的课程设计中,这个课题看似陌生,其实在我们学组元的时候已经学过了,所以这次实验不仅仅是对CMPP软件的学习,对组元的学习也有很大的帮助,通过相互探讨互相学习的过程中我也学到了其他同学的方法和他们的一些理解,体会的同学之间的关心友爱呵护团结互

帮互助,通过课程设计我也发现了平时学习中的不足,增强了我的动手能录,又给我的专业知识以及专业技能上的提升,增进了同学之间的友谊,嗯。同时我也会更加努力,认真负责的对待生活中的每件小事,增加耐心和细心通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。

相关主题
相关文档
最新文档