武汉理工大学
课 程 设 计
课程名称 计算机组成原理
设计题目 模型机设计与实现
班 级 软件工程0904
学 号 012091680421
姓 名 朱鹏
指导教师 田 小 华
日 期 20##年7月7日
2011 年 7 月 7日
课程设计任务书
学生姓名: 朱鹏 专业班级: 软件工程0904
指导教师: 田小华 工作单位: 计算机学院
题 目: 基本模型机设计与实现
初始条件:
1.完成<<计算机组成原理>>课程教学与实验
2.TDN-CM计算机组成原理教学实验系统
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.掌握复杂指令系统计算机的微控制器功能与结构特点
2.熟悉TDN-CM教学实验系统的微指令格式
3.设计五条机器指令,并编写对应的微程序
4.在TDN-CM教学实验系统中调试机器指令程序,确认运行结果
5.建立复杂指令系统计算机的整机概念模型
时间安排:
1.第19周周5(7月1日):全体集中讲解课程设计原理与方法
2.第20周周1~5(7月4~8日):分班实验,调试机器指令程序
指导教师签名: 20## 年 6 月 30 日
系主任(或责任教师)签名: 2011 年 7 月 日
《组成原理课程设计》说明书
一.课程设计题目
①学号为01-07号的同学:
绘制8位运算器实现的电路图;
②学号为08-14号的同学:
绘制8位运算器进位控制电路的电路图;
③学号为15-21号的同学:
绘制8位运算器移位运算电路图;
④学号为22-28号的同学:
绘制静态存储器(6116)电路图;
⑤学号为29-42号的同学:
绘制静态存储器(2114)电路图
二.设计要求
①利用数字功能电路,完成电路设计;
②电路图中,以功能电路为基本单元,实现电路引脚连接;
③电路连接图中,应反映信号的基本逻辑关系,实现芯片的管脚连接;
④电路应完成规定的功能,并在TDN-CM+ 教学实验系统中调试和实现;
⑤用A4规格的复印纸,绘制电路连接图,撰写设计报告。
三.附加说明
①学号为01-07号的同学:绘制8位运算器实现的电路图
②学号为08-14号的同学:绘制8位运算器进位控制电路的电路图;
③学号为15-21号的同学:绘制8位运算器移位运算电路图;
④学号为22-28的同学,利用6116设计8K×16位静态存储器的逻辑框图;
⑤学号为29-42的同学,利用2114设计8K×8位静态存储器的逻辑框图。
1 课程设计目的
通过课程设计,掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机,为其定义5条机器指令,并编写相应的微程序,上机调试掌握整机概念。通过对一个简单模型机的设计与实现,对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解,掌握各部联机运行情况,进一步建立整机概念。培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。
其次,通过实习总结计算机组成原理课程的学习内容:层次化设计法、多路开关,逻辑运算部件,微程序控制的运算器设计、微程序控制的存储器设计、简单计算机的设计等内容。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。
2 课程设计设备
TDN-CM计算机组成原理实验系统,排线若干
3 课程设计内容
3.1课程设计原理
3.1.1 本课程设计采用六条机器指令:IN,ADD,STA,TRY,OUT,JMP,并依照指令进行相关操作。其指令格式如下:
内容 助计符 说明
0000 0000 IN “INPUT DEVICE”→R0
0001 0000 ADD [addr] R0+[addr] →R0
0010 0000 STA [addr] R0→[addr]
0011 0000 OUT [addr] [addr]→BUS
0100 0000 TRY [addr] R0(S3S2S1S0MCn)[addr] →R0
0101 0000 JMP [addr] [addr]→PC
其中IN为单字长(8)位,其余为双字长指令。
3.1.2 开关SWA和SWB的定义及数据通路框图如下:
为了向RAM中装入程序和数据,先查写入是否正确,并能启动程序执行,还须设
计三台控制台操作。
存储器度操作:拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START滚动开关,可对RAM连续手动读操作。
存储器写操作:拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START滚动开关,可对RAM连续手动写操作。
启动程序:拨动总清开关CLR后,控制台开关SWB、SWA为“11”时,按START滚动开关,即可转入到第01好“取址”微指令,启动程序运行。
上述三条控制台指令用到的两个开关SWB、SWA的状态设置,其定义如下:
3.1.3设计用到的微指令的格式定义及微程序流程图如下:
微指令格式定义
3.1.4依照微程序流程图,生成如下指令代码表:
微指令代码表
3.1.5机器指令程序设计:
机器指令程序序列
地址 内容 助计符 说明
0000 0000 0000 0100 IN R0 “INPUT DEVICE(班号4)”→R0
0000 0001 0001 0000 ADD [0AH],R0 R0+[0AH] →R0
0000 0010 0000 1010
0000 0011 0010 0000 STA R0,[0BH] R0→[0BH]
0000 0100 0000 1011
0000 0101 0011 0000 OUT [0BH] [0BH] →LED
0000 0110 0000 1011
0000 0111 0100 0000 JMP 00H 00H→ PC
0000 1000 0000 0000
0000 1001
0000 1010 0010 0110 学号(26号同学)
0000 1011 求和结果(班号加学号)
3.2 实验步骤:
3.2.1 画出实验接线图如下:
3.2.2实验预备操作步骤:
3.2.2.1 按实验接线图接好实验线路
3.2.2.2 为微程序控制器编程
A.将编程开关置为PROM(编程)状态。
B.将实验板上的“STATE UNIT”中的“STEP”置位为“STEP”,“STOP”置为“RUN”。
C. 用二进制模拟开关置微地址MA5-MA0。
D.在MK24-MK1开关上置微代码,24位开关对应24位显示灯,开关量0亮1灭。
E.启动时序电路,即将微代码写入到EPROM2816的相应地址单元中。
F.重复C-E步骤,将微代码表的内容写入2816。
G.将编程开关设置为READ(校验)状态。
H.将实验板上的“STATE UNIT”中的“STEP”置位为“STEP”,“STOP”置为“RUN”。
I.用二进制模拟开关置好微地址MA5-MA0。
J.按动“START”键,启动时序电路,读出微代码,观察显示灯MD24-MD1的状态,检查读出的微代码是否与写入的相同如果不同则将开关置为PROM,重新执行编程操作。
3.2.3按如下步骤操作:
3.2.3.1 微控器的编程开关拨至RUN,STEP→STEP,STOP→RUN
3.2.3.2 将微机与实验箱用串口连接,开机进入WINDOWS2000,进入D:盘的CM+子目录,运行CMP.EXE,进入实验环境,选用COM1口.
3.2.3.3 选F2:写入机器指令
3.2.3.4 选F3:写微指令
3.2.3.5 选F6:调试机器指令,运行前将CLK开关:1→0→1
①F1_STEP PM:单步运行机器指令
②F2_STEP CM: 单步运行微指令
③F3_EXEC: 连续运行微指令
④F8_RETURN:退出DEBUG
3.2.3.6 记录实验结果
实验outputFBH
3.2.3.7 对比理论计算结果
与理论值一致
4.课程设计总结
4.1 给出每条机器指令的微程序
IN指令的微程序
01Q:000000011110110110000010
02Q:000000001100000001001000
10Q:000000000001000000000001
01Q:000000011110110110000010
ADD指令的微程序
01Q:000000011110110110000010
02Q:000000001100000001001000
11Q:000000011110110110000011
03Q:000000001110000000000100
04Q:000000001011000000000101
05Q:000000011010001000000110
06Q:100101011001101000000001
01Q:000000011110110110000010
STA指令的微程序
01Q:000000011110110110000010
02Q:000000001100000001001000
12Q:000000011110110110000111
07Q:000000001110000000001101
15Q:000000101000001000000001
01Q:000000011110110110000010
OUT指令的微程序
01Q:000000011110110110000010
02Q:000000001100000001001000
13Q:000000011110110110001110
16Q:000000001110000000001111
17Q:000000001010000000010101
25Q:000001110000101000000001
01Q:000000011110110110000010
TRY指令的微程序
01Q:000000011110110110000010
02Q:000000001100000001001000
32Q:000000001110000000011011
33Q:000000001011000000011100
34Q:000000011010001000011101
35Q:000001111001101000000001
01Q:000000011110110110000010
JMP指令的微程序
01Q:000000011110110110000010
02Q:000000001100000001001000
15Q:000000011110110110010110
26Q:000000001101000110000001
01Q:000000011110110110000010
IN,ADD,STA,TRY,OUT,JMP
IN指令的微程序地址为01Q-02Q-10Q-01Q
ADD指令的微程序地址为01Q-02Q-11Q-03Q-04Q-05Q-06Q-01Q
STA指令的微程序地址为01Q-02Q-12Q-07Q-15Q-01Q
TRY指令的微程序地址为01Q-02Q-14Q-32Q-33Q-34Q-35Q-01Q
OUT指令的微程序地址为01Q-02Q-13Q-16Q-17Q-25Q-01Q
JMP指令的微程序地址为01Q-02Q-15Q-26Q-01Q,
4.2 给出TRY指令的理论计算过程
机器指令TRY的理论计算过程
软件0904班, 第22号同学, 班号=04H,学号=15H, F=X加Y(算术加)
X=R0=班号= 00000100B=04H
Y=M[0A]=学号=00010110B=15H
ADD [0AH],R0功能:R0加M[0AH]→R0
00000100B
加 00010101B
00011001B =19H
5 绘制8位运算器进位控制电路的电路图
5.1移位运算电路的基本原理
移位运算实验原理如图4-1所示,本实验使用一片74LS299(U34)作为移位发生器,其八位输入/输出端引到8芯排座ALUO2,实验时用8芯排线连至数据总线插座BUS4。299B`信号由开关299B提供,控制其使能端,T4为其时钟脉冲,手动方式实验时将T4与手动脉发生器输出端SD相连,即J23跳线器上T4连SD。由信号S0 、S1、 M控制其功能状态,
移位运算电路的基本原理图
74LS299功能表 5-1
5.2移位运算器涉及原件说明
74LS299(U34)作为移位发生器,下图为其芯片及其功能表
5.3 8位运算器移位运算电路图
6 课程设计心得、经验教训及注意事项
通过这次的计算机组成原理的课程设计,我对计算机内部元件的工作原理有了进一步的了解与认识。许多在课堂上没有听懂,没有学会的知识在课程设计的过程中暴露无遗,不过积极的方面是通过课程设计,我把这些知识上的明显漏洞给补上了。我对机器指令及微指令的的编码方法不了解,对计算机各部件的组成和工作原理也不是很理解。为了弄清楚这些问题,我又把课本拿出来重新学习相关的章节。虽然理论知识很重要,但是像我们这种工学类的课程,更重要的还是实践。理论联系实际,才能更好的掌握所学的知识。在机房上机的时候也遇到了一些问题,不过在请教了同学和老师之后,这些问题也都一个个迎刃而解。
这次的课程设计题目是基本模型机的设计与实现,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。并为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。以前都只是在使用计算机,对它内部的部件组成和构造不是特别的清楚,在课程设计的最初阶段,我没有急于进行具体的设计,而是先理清思路,明确自己要做的工作是什么,如何来实现基本模型机的相关功能。这些前期的准备工作虽然用去了我很多的时间,但是最后的结果证明,我这样的方法是正确的。课程设计就像是一个系统工程,内容多而复杂,必须先在整体上进行宏观的把握,然后再具体的进行实施。如果开始的方向就不对,那后面的改进就会很麻烦。
温故了这个学期所学的相关知识,心里也更加有信心。后面的相关设计参照课程设计任务书的内容进行了相应的改变,并顺利的在计算机上得到了实现。将实验设备通过串口连接计算机,通过联机软件将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,通过联机软件显示和观察该段程序的运行,验证编写的指令和微指令的执行情况是否符合设计要求。这样的测试方法我还是第一次使用,感觉很新鲜。计算机组成原理更倾向于计算机底层部件的应用,而不像我们平时都在使用的那些界面友好交互性很强的软件,所以有些错误不是很容易发现,只能通过自己耐心的反复调试来解决。这中间也请教了同学和老师,他们对我的帮助都很大。
通过这次课程设计,我的收获很多。课程设计不仅巩固我的理论知识,将理论和实践结合起来,锻炼了我的动手能力,也让我认识到自己的不足之处,争取以后能克服这些缺点,更进一步提高自己各个方面的能力。
参考文献
【1】 石磊 《计算机组成原理简明教程》 北京:清华大学出版社 20##年3月
【2】唐朔飞 《计算机组成原理》 北京:高等教育出版社 20##年1月
【3】薛胜军 《计算机组成原理》 武汉:武汉理工大学出版社 20##年5月
【4】白中英 计算机组成原理 北京: 科学出版社
【5】杨小龙 计算机组成原理与系统结构试验教程 西安 西安电子科技大学出版社