目录
课程设计任务书------------------------------------ 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的定义和数据通路框图
3.1.2 微指令格式
微程序流程图
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
《计算机组成原理简明教程》,主编,石磊,出版社:清华大学出版社
《计算机组成及汇编语言原理》,主编:(美)迪尤肯大学,出版社:机械工业出版社
一、设计题目
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命令编码写入,但我们对指令格式不熟悉,导致测试时程序无法正确运行。经过我们大量的测试以及寻找相关资料,我们总结出了正确的格式并正确地调试了程序。
十二、总结
在整个设计过程中,虽然分工明确,但是大家仍然不时交流彼此的经验,分享收获,使知识得以互补,遇到困难时也能够互相帮助解决问题,最终使任务圆满完成。
西安科技大学课程设计报告课程名称计算机组成原理课题名称复杂模型计算机的设计专业计算机科学与技术班级计科1001班姓名李用维念文洪吴…
长治学院课程设计报告课程名称计算机组成原理课程设计设计题目设计一台性能简单的计算机系别计算机系专业计科1101班组别第三组学生姓名…
课程设计题目教学院专业班级姓名指导教师硬件加减法器的设计计算机学院计算机科学与技术年月日1课程设计任务书20xx20xx学年第1学…
课程设计说明书题目设计指令系统院系计算机科学与工程学院专业班级计算机1003班学号学生姓名指导教师刘向举年1月10日20xx安徽理…
沈阳工程学院计算机组成原理课程设计设计题目基本模型机的设计与实现第六组系别班级学生姓名学号指导教师职称起止日期20xx年6月25日…
合肥学院课程综述论文题目系部专业班级学生姓名计算机组成原理总结计算机科学与技术计算机网络工程11网络工程(2)IceBin20xx…
这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识…
计算机组成原理课程设计个人总结经过将近一个月的的计算机组成原理课程设计,让我们体会到了苦尽甘来的滋味,这次课程设计使我对上学期蒋永…
学习计算机组成原理的感受专业:电商一班姓名:菅月梅学号:12061101011大学的课程不像中学那样死板,我们有了更多去实践的机会…
学习计算机组成原理的心得体会学习了一个学期的《计算机组成原理》这门课程。在郄君老师给我们讲《计算机组成原理》这门课程的学期了,我们…