计算机组成原理课设

目录

课程设计任务书------------------------------------ 2

《组成原理课程设计》说明书------------------------ 3

1.课程设计的目的---------------------------------- 4

2.课程设计的设备---------------------------------- 4

3.课程设计内容----------------------------------- 4     

 3.1课程设计原理--------------------------------- 4

    3.1.1开关SWA和SWB的定义和数据通路框图------ 4     

   3.1.2 微指令格式----------------------------- 5

  3.1.3微指令二进制代码表 ---------------------6

 3.2 实验步骤------------------------------------ 7

3.2.1接线图---------------------------------- 7

3.2.2 按如下步骤操作--------------------------9

3.3理论计算过程----------------------------------10

4.课程设计总结----------------------------------10

4.1给出每条机器指令的微程序(十六进制格式)----- 10

4.2课程设计心得、经验教训及注意事项----------- 11

5.课程设计参考资料------------------------------ 12

6. 静态存储器(6116)电路图-----------------------13


课程设计任务书

设计题目:     模型机设计与实现    

设计目的

1.   学习和掌握硬件系统的设计方法;

2.掌握计算机各模块的原理和相互关系,建立计算机整机概念

设计任务  (在规定的时间内完成下列任务)

1.掌握CISC微控制器功能与微指令格式

2.设计五条机器指令,并编写对应的微程序

时间安排

第21周调试,撰写设计报告

具体要求

     1. 7月2日:完成模型机的实验线路连接

  2. 7月4日:调试模型机,记录实验结果

    3. 7月6日:撰写并打印课程设计报告

 指导教师签名: 田小华   20##年6月29日

教研室主任签名:        20##年7月06日

《组成原理课程设计》说明书

一.课程设计题目

①序号为01-07号的同学:绘制8位运算器实现的电路图;

②序号为08-14号的同学:绘制8位运算器进位控制电路的电路图;

③序号为15-21号的同学:绘制8位运算器移位运算电路图;

④序号为22-28号的同学:绘制静态存储器(6116)电路图;

⑤序号为29-42号的同学:绘制静态存储器(2114)电路图

二.课程设计要求

⑴完整说明基本模型机的构建方法和操作过程,包括以下内容:

①基本模型机的实验原理, 绘出数据通路框图

②微指令格式,微程序流程图, 微指令二进制代码表

③实验步骤

④十六进制格式文件

⑤实验接线图

⑵按照自已的序号,完成《基本模型机的XYZ逻辑框图设计》

⑶在教学实验系统中调试和实现基本模型机

⑷用A4规格的复印纸,撰写设计报告

1.课程设计的目的

(1)理解计算机系统各个功能部件的功能、结构和工作原理,正确理解各功能部件之间的相互关系及其在计算机系统中所起的作用;

(2)掌握计算机系统某些部件的设计和分析技术,包括数据与指令的编码、存储器、运算器、输入输出接口等;

(3)通过理论与实践的结合,利用基本模型计算机的构建与调试实验,完整地建立计算机硬件的整机模型,掌握中央处理器的基本结构和控制流程,掌握指令执行的基本过程,充分理解控制信息流利用数据通路完成对数据流的加工处理的过程;

(4)通过课程设计,促使学生将所学专业知识综合运用,在实践活动中积累经验,增长才干,进而激发学生的学习热情和主动性,培养学生的独力工作能力和严谨的工作作风。

2.课程设计的设备

    (1)TDN-CM组成原理实验系统,排线若干;

3.课程设计内容                  

 3.1课程设计原理

课程设计采用五条机器指令:IN,ADD,STA,OUT,JMP,对应的源程序内容如下:

地     址         内     容     助   记   符         说   明

0000 0000        0000 0000    IN  R0            “INPUT DEVICE(班号)”→R0 

0000 0001        0001 0000    ADD [0AH],R0       R0+M[0AH] →R0

0000 0010        0000 1010              

0000 0011        0010 0000    STA R0,[0BH]       R0→M[0BH]

0000 0100        0000 1011               

0000 0101        0011 0000    OUT [0BH]          M[0BH] →LED

0000 0110        0000 1011               

0000 0111        0100 0000    JMP  00H           00H→ PC

0000 1000        0000 0000               

0000 1001      

0000 1010        0001 0011                        学号(序号为19号)

0000 1011                                          求和结果(班号加序号)

  3.1.1开关SWA和SWB的定义和数据通路框图       

机组4

3.1.2 微指令格式

机组3

机组5

微程序流程图

3.1.3微指令二进制代码表

3.2 实验步骤:

3.2.1接线图:

(1)按下图接线:按微程序控制器实验的步骤输入并检验本页微指令代码表

(2)按下页图接线             注意: 接线过程中不得有任何错误!

3.2.2 按如下步骤操作:

⑴.微控器的编程开关拨至RUN,STEP→STEP,STOP→RUN

⑵.按KWE过程写机器指令程序:

①CLR:0→1,

②SWB,SWA置01

③按动START,地址寄存器AR=010001(21Q)

④按动START, AR=010100(24Q),此时从数据开关置入要写入的机器指令

⑤按动START:完成写入(写入一条机器指令, AR=011000=30Q)

⑥不断按动START,当AR=010100(24Q)时,从数据开关置入机器指令        

  (注意:可以重复写入机器指令 )

地     址         内     容     助   记   符         说   明

0000 0000        0000 0000    IN  R0            “INPUT DEVICE(班号)”→R0 

0000 0001        0001 0000    ADD [0AH],R0       R0+M[0AH] →R0

0000 0010        0000 1010              

0000 0011        0010 0000    STA R0,[0BH]       R0→M[0BH]

0000 0100        0000 1011               

0000 0101        0011 0000    OUT [0BH]          M[0BH] →LED

0000 0110        0000 1011               

0000 0111        0100 0000    JMP  00H           00H→ PC

0000 1000        0000 0000               

0000 1001      

0000 1010        0001 0011                        学号(序号为19号)

0000 1011                                          求和结果(班号加序号)

⑶.检查程序:    

①CLR:0→1

②SWB,SWA置00

③按动START, 地址寄存器AR=010000(20Q)

④按动START, 地址寄存器AR=010010(22Q)

⑤按动START, 地址寄存器AR=010111(27Q): 总线LED显示内存内容

⑥不断按动START,当AR=010111(27Q)时: 总线LED显示内存内容

(查看内存内容)

⑷.运行目标程序: 微控器的编程开关拨至RUN,STEP→STEP,STOP→RUN

①CLR:0→1

②SWB,SWA置11

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

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

⑤运行一遍后,可检查存数单元0BH中的结果是否和理论值一致

3.3理论计算过程

计算机网络1064班, 第23号同学,  班号=04H,学号=17H,  F=X加Y(算术加)

∵X=R0=班号= 00000100B=04H

  Y=M[0A]=学号=000010111B=17H

ADD [0AH],R0功能:R0加M[0AH]→R0

00000100B

         加     00010111B      

00011011B=1BH

③小结:机器指令序列运行一遍后,内存0BH单元的内容为00011011B=1BH

4.课程设计总结

4.1给出每条机器指令的微程序(十六进制格式):

IN:01H: 01ED82H

02H: 00C048H

10H: 01ED92H

ADD:01H→02H→11H→03H→04H→05H→06H

STA:01H→02H→12H→07H→15H

OUT:01H→02H→13H→16H→17H→25

JMP:01H→02H→14H→26H

4.2课程设计心得、经验教训及注意事项

这次的课程设计,两个同学一组,减小了难度。难度莫过于接线了,因为要接的线比较多,所以很容易出错误,一旦一根线接错了,后面的步骤就会步步出错,而且很难找出错误。所以接线的时候,我和同伴是小心又小心,唯恐哪点大意了,接错了。每次她接完了,我在检查一遍。我们检查程序的时发现是对的时候我们都特兴奋,觉得最难的部分我们已经做好了!

可是没想到后面运行的时候出问题了。开始我们以为可能是输入指令的时候不小心输错了,我们就又重新把指令数了一遍,可是结果还是不对。我们就只好求助于同学了,可是同学说他们的结果也不对,我们又去求助老师。老师在我们的机器上运行一遍,说我们的机器是好的,运行结果出现我们的班号加学号就对了。我们按照老师的做法有运行了一遍,可是结果还是不对。后来发现不是把班级在指令中输进去,而是最后运行的时候再输入,我们把班级和序号都在指令中输进去了,所以错了。

通过这次课程设计我学到很多东西,首先在理论知识上,让我进一步理解了计算机模型的组成部分和工作原理,从而也加强了我对计算机组成结构的认识,其次在学习态度上,让我明白了注意细节和认真投入是非常重要的不管对于现在的学习还是以后的工作。

    通过这次课程设计,我深刻地体会到,学知识要深刻的了解其原理,不能蛮干,如果我们了解了原理就不会出现这么多错误了。

5.课程设计参考资料

《计算机组成原理》,主编:薛胜军,出版社:武汉理工大学出版社,出版或修订时间:2003.11

《计算机组成原理》,主编:薛胜军,出版社:华中科技大学出版社,出版或修订时间:2005.5

《计算机组成原理》,主编:白中英 ,出版社:科学出版社,出版或修订时间:2000.11

《计算机组成原理简明教程》,主编,石磊,出版社:清华大学出版社

《计算机组成及汇编语言原理》,主编:(美)迪尤肯大学,出版社:机械工业出版社

 

第二篇:计算机组成原理课程设计报告 20xx

一、设计题目

16位机微程序控制器指令系统的设计与实现

二、设计目的

通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的:

1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;

2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;

3、学习微程序控制器的设计过程和相关技术。

三、设计说明

控制器设计是学习计算机总体组成和设计的重要的部分。要在TEC—2000教学计算机上完成这项设计,必须清楚懂得:

1、TEC—2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20V8组成。

2、TEC—2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。

3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。

4、要明白TEC—2000教学机支持的指令格式及指令执行流程分组情况;理解TEC—2000教学机中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。

5、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。

6、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括:

   1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致;

     2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近;

3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识地体会这些信号的控制作用;

4)将设计好的微码,装入控制存储器的相应单元;

5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。

四、设计内容

1、完成微程序控制器指令系统设计,主要内容是由学生自己设计29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。

2、首先看懂TEC—2000教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机组合逻辑控制器中已经设计好并正常运行的几条典型指令(例如ADD、MVRR、OUT、MVRD、JRC、RET等指令)的功能、格式和执行流程。

3、设计微程序控制器指令系统中各条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,例如ADC、STC、JRS、JRNS、LDRX、STRX、JMPR、CALR、LDRA等19条扩展指令。

4、单条运行指令,查看指令的功能、格式和执行流程。

5、用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。

五、设计要求

分组及任务分配

每组四名同学,任务分配为:

朱冠兰负责仿照教学计算机组合逻辑控制器,设计微程序控制器中基本指令的功能、格式和执行流程,画出29条基本指令的执行流程框图和微程序编码表。

冯云龙负责设计扩展指令的功能、格式和执行流程,设计微指令各字段的具体编码值,包括控制码的各字段、下址字段、形成下址用到的条件码,画出扩展指令的执行流程框图和微程序编码表。

胡学智负责确定微码各字段与控制存储器各个芯片之间的关系,列表写出各控制存储器芯片中存储单元的内容,将设计好的微码装入控制存储器。

王硕负责编写若干个测试程序,包含所有的基本指令和扩展指令,通过运行这些程序可以检查所有指令设计是否正确。

最后,所有组员共同参与测试,通过运行测试程序,判断指令设计是否正确。

(二)学生应交材料

1、课程设计报告,每组交一份。

2、一块自定义指令系统的微程序控制器板。

3、课程设计日记,每人交一份。

(三)课程设计报告内容

1、题目名称;

2、题目内容;

3、基本指令和扩展指令的执行流程框图;

4、基本指令和扩展指令的微程序编码表;

5、八个控制存储器芯片中各存储单元的内容列表;

6、测试程序;

7、自评(从实现的功能上评价);

8、遇到的问题及解决方案;

9、总结(主要从综合应用知识、分析问题、解决问题方面总结)。

六、进度安排

第1周   周一   上午   课程设计动员

         周二 ~ 周五  (1)熟悉汇编、TEC—2000机开发环境

(2)基本指令设计

(3)扩展指令设计

(4)编写调试程序。

第2周   周一 ~ 周五   微指令写入芯片,运行测试程序,调试指令。        

第3周   周一 ~ 周三   编写课程设计报告。

周四、周五    验收和答辩总结。 

七、课程设计环境

1、硬件环境:  PC机一台、TEC—2000实验机一台、微程序控制器实验板一块。     

2、软件环境: (1)Win20##、DOS

(2)TEC—2000仿真终端程序PCEC

(3)TEC—2000监控程序。

八、软件设计方案

1.将设计好的微码写入控制存储器。

一次只对一片28C64控制存储器芯片进行读写,该芯片可插在扩展芯片的高位或低位,若插在高位,输入时信号编码为高八位,低八位补零;若插在低位,输入时信号编码为低八位,高位补零。若一次扩展两片28C64控制器芯片,要注意信号要与产生该信号的芯片相对。

将扩展新片的内存单元地址置为4000~5FFF,将MAPROM插入扩展芯片的位置,微程序入口地址对应的内存单元的地址为芯片的起始地址和该指令的编码值之和。具体操作如下:

E 4000

4000  00FF:04    00FF:05    00FF:06     00FF:09      00FF:08   

00FF:0A    00FF:07    00FF:0B    00FF:0D      00FF:0C 

00FF:0E    00FF:0F  

E 4020

4020  00FF:50     

E 4041

4041  00FF:11

E 4044

4044  00FF:10    00FF:10     00FF:10     00FF:10

E 4080

4080  00FF:1E   00FF:1B     00FF:12     00FF:19     00FF:15   

      00FF:15   00FF:12   00FF:17     00FF:1D

E 408C

408C  00FF:17   00FF:      00FF:     00FF: 23

E 40CE

40CE  00FF:1F  

将MPROM1~MPROM7依次插入扩展芯片的位置对其编程,内存单元的地址为芯片的起始地址和该指令操作功能所对应的微址之和,操作如下:

MPROM1产生下址信号,MPROM2产生CI3~0、SCC3~0信号

对MPROM1-2的操作为:MPROM1 在高位   MPROM2 在低位

E 4000

4000  00FF:00E0  00FF:00E0   00FF:00E0   00FF:0020

 00FF:3030  00FF:3030   00FF:3030   00FF:3030

 00FF:3030  00FF:3030   00FF:3030   00FF:3030

00FF:3030  00FF:3030   00FF:3030   00FF:3030

00FF:3034  00FF:3030   00FF:1436   00FF:3030  

00FF:3030  00FF:1A37   00FF:3030   00FF:1C37

  00FF:3030  00FF:00E0  00FF:3030  00FF:00E0

 00FF:3030  00FF:1C30  00FF:2430  00FF:00E0

00FF:00E0  00FF:00E0  00FF:3030  00FF:00E0

 00FF:3030

E 4030

4030  00FF:3A32   00FF:0230 

E 4050

4050  00FF:3030

MPROM3产生0MRW、0I2~0信号,MPROM4产生SAI8~I6、SBI5~I3信号,

对MPROM3-4的操作为:MPROM3 在高位   MPROM4 在低位

E 4000

4000  00FF:4131  00FF:4320  00FF:1010   00FF:4010

 00FF:41B8  00FF:41B9  00FF:41BC   00FF:41BB

 00FF:41BE  00FF:4199  00FF:419C   00FF:44B8

00FF:4338  00FF:4339  00FF:4378   00FF:4358

00FF:4010  00FF:4530  00FF:4710   00FF:2310

00FF:3730  00FF:4331  00FF:0010   00FF:4320

  00FF:1010  00FF:4318  00FF:0490   00FF:4490

 00FF:1738  00FF:4320  00FF:4320   00FF:4320

00FF:1700  00FF:4331  00FF:0220   00FF:4320

 00FF:1730

E 4030

4030  00FF:4700   00FF:4320 

E 4050

 00FF:41B8

MPROM5产生B口、A口信号,MPROM6产生0SST、SSHSCI信号,

对MPROM5-6的操作为:MPROM5 在高位   MPROM6 在低位

E 4000

4000  00FF:5501  00FF:5501  00FF:0000   00FF:0000

 00FF:0010  00FF:0011  00FF:0010   00FF:0010

 00FF:0010  00FF:0011  00FF:0010   00FF:0010

00FF:0011  00FF:0010  00FF:0060   00FF:0050

00FF:0000  00FF:5500  00FF:0000   00FF:0000

00FF:0000  00FF:4000  00FF:0000   00FF:4401

  00FF:0020  00FF:0000  00FF:0000   00FF:0000

 00FF:0000  00FF:5501  00FF:5501   00FF:5501

00FF:0000  00FF:4000  00FF:5500   00FF:4401

 00FF:5000

E 4030

4030  00FF:0000  00FF:5501 

E 4050

4050  00FF:0012 

MPROM7产生DC2、DC1信号,对MPROM7的操作为:

E 4000

4000  00FF:70   00FF:B0   00FF:10   00FF:00

 00FF:00   00FF:00   00FF:00   00FF:00

 00FF:00   00FF:00   00FF:00   00FF:00

00FF:00   00FF:00   00FF:00   00FF:00

00FF:00   00FF:02   00FF:32   00FF:01

00FF:00   00FF:30   00FF:03   00FF:30

  00FF:00   00FF:30   00FF:01   00FF:30

 00FF:00   00FF:30   00FF:30   00FF:30

00FF:00   00FF:30   00FF:01   00FF:30

 00FF:00

E 4030

4030  00FF:03  00FF: 0B

E 4050

4050  00FF:00   

九、测试程序

1.测试基本指令的程序:

1)测试MVRD,MVRR,PSHF,ADD,SUB,AND,CMP,JRNZ,POPF,RET,XOR,TEST,JRZ的程序

程序流程图:

程序:

(2000)     MVRD R0,0041            ;MVRD

              MVRD R1,0016

              MVRD R2,0084

              MVRR R3,R1               ;MVRR

              MVRR R6,R0

              MVRD R7,0000

(200A)    PSHF                           ;PSHF

              ADD R0,R1                  ;ADD,->R0=0057

              SUB R2,R1                  ;SUB,->R2=006E

              AND R3,R1                  ;AND,->R3=0016

              CMP R2,R1                  ;CMP

              JRNZ 2050                   ;JRNZ

(2010)     POPF                           ;POPF

              RET                             ;RET

(2050)     XOR R1,R6                  ;XOR,->R1=0057

              TEST R0,R7                 ;TEST

              JRZ  2010                   ;JRZ

运行结果:

2)测试OR,DEC,PUSH,INC,POP,SHR,JRC,SHL,JR,JMPA的程序

程序流程图:

程序:

(2000)     MVRD R0,0046            ;MVRD

              MVRD R1,0016

              MVRR R2,R1               ;MVRR

              MVRR R3,R0

              MVRR R6,R0

(2007)     OR R0,R1                    ;OR,->R0=0056

              DEC R1                       ;DEC,->R1=0015

              PUSH R2                            ;PUSH

              INC R2                        ;INC,->R2=0017

              POP R2                        ;POP,->R2=0016

              SHR R3                       ;SHR,->R3=0023

              CMP R1,R0                  ;CMP

              JRC 2050                            ;JRC

(200F)    SHL R6                        ;SHL,->R6=008C

              RET                             ;RET

(2050)     JR 2060                       ;JR

(2060)     JMPA 200F                  ;JMPA

运行结果:

3)测试LDRR,CALA,OUT,STRR,IN,JRNC的程序

程序流程图:

程序:

(2070)     2070: 0041 2071: 0042 2073:0043 2074:0043

(2000)     MVRD R3,0004                   ;MVRD

              MVRD R2,2070                   ;MVRD

(2004)     LDRR R0,[R2]                     ;LDRR

              CALA 200C                         ;CALA

              DEC R3                              ;DEC

              JRZ 200B                            ;JRZ

              INC R2                               ;INC

              JR 2004                              ;JR

(200B)    RET                                    ;RET

(200C)    OUT 80                               ;OUT

              MVRD R1,0020                   ;MVRD

              ADD R0,R1                         ;ADD

              STRR [R2],R0                     ;STRR

(2011)     IN 81                                  ;IN

              SHR R0                              ;SHR

              JRNC 2011                          ;JRNC

              RET                                    ;RET

运行结果:

2.测试扩展指令的程序:

1)验证指令ADC的程序。

程序:   

(2000)     MVRD R0,FFFF

              MVRD R1,1111

              ADD R0,R1

              RET

运行结果:R0=1110,R1=1111,F=10000011

E 2004

(2004) 0001:2001

运行结果:R0=1111,R1=1111,F=10000011

十、自评

测试程序的运行结果证明了29条基本指令和19条扩展指令是正确的。由此我们可以知道16位机微程序控制器指令系统的设计是正确的。我们的设计基本上达到了实验目的所要求的。

十一、遇到的问题及解决方案

测试扩展指令时,用E命令编码写入,但我们对指令格式不熟悉,导致测试时程序无法正确运行。经过我们大量的测试以及寻找相关资料,我们总结出了正确的格式并正确地调试了程序。

十二、总结

在整个设计过程中,虽然分工明确,但是大家仍然不时交流彼此的经验,分享收获,使知识得以互补,遇到困难时也能够互相帮助解决问题,最终使任务圆满完成。

相关推荐