资源描述
计算机组成原理课程设计之组成原理课程设计
23
2020年4月19日
文档仅供参考
武汉理工大学
课 程 设 计
课程名称 计算机组成原理
设计题目 模型机设计与实现
班 级 软件工程0804
学 号 6
姓 名___ 曹旭磊______
指导教师 田 小 华
日 期 元月16日
课程设计任务书
学生姓名: 曹旭磊 专业班级: 软件0804
指导教师: 田小华 工作单位: 计算机学院
题 目: <基本模型机的数据通路逻辑框图设计>
初始条件:
1.完成<<计算机组成原理>>课程教学与实验
2.TDN-CM计算机组成原理教学实验系统
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.掌握复杂指令系统计算机的微控制器功能与结构特点
2.熟悉TDN-CM教学实验系统的微指令格式
3.设计五条机器指令,并编写对应的微程序
4.在TDN-CM教学实验系统中调试机器指令程序,确认运行结果
5.建立复杂指令系统计算机的整机概念模型
时间安排:
1.第18周周1(元月7日):全体集中讲解课程设计原理与方法
2.第19周周1~5(元月10~14日):分班实验,调试机器指令程序
指导教师签名: 年 元 月 08 日
系主任(或责任教师)签名: 年 元 月 日
<组成原理课程设计>说明书
一.课程设计题目
①01-12学号的同学:<基本模型机的运算器逻辑框图设计>
②13-24学号的同学:<基本模型机的存储器逻辑框图设计>
③25-38学号的同学:<基本模型机的数据通路逻辑框图设计>
二.课程设计要求
⑴完整说明基本模型机的构建方法和操作过程,包括以下内容:
①基本模型机的实验原理, 绘出数据通路框图
②微指令格式,微程序流程图, 微指令二进制代码表
③实验步骤
④十六进制格式文件
⑤实验接线图
⑵按照自已的学号,完成<基本模型机的XYZ逻辑框图设计>
⑶在教学实验系统中调试和实现基本模型机
⑷用A4规格的复印纸,撰写设计报告
1 课程设计目的:
运用和实践计算机组成原理课程中各章的内容,经过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬连线控制器的认识,建立清晰的整机概念。对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机,而且绘制出模型机的数据通路的逻辑框图。
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的状态设置,其定义如下:
SWB
SWA
控制台指令
0
0
1
0
1
1
读内存(KRD)
写内存(KWE)
启动程序(RP)
3.1.3设计用到的微指令的格式定义及微程序流程图如下:
微指令格式定义
3.1.4 依照微程序流程图,生成如下指令代码表:
微指令代码表
微地址
S3S2S1S0MCnWEA9A8
A
B
C
μA5 ~ μA0
联机微地址
微指令内容
00Q
0 0 0 0 0 0 0 1 1
000
000
100
0 1 0 0 0 0
00H
018110H
01Q
0 0 0 0 0 0 0 1 1
110
110
110
0 0 0 0 1 0
01H
01ED82H
02Q
0 0 0 0 0 0 0 0 1
100
000
001
0 0 1 0 0 0
02H
00C048H
03Q
0 0 0 0 0 0 0 0 1
110
000
000
0 0 0 1 0 0
03H
00E004H
04Q
0 0 0 0 0 0 0 0 1
011
000
000
0 0 0 1 0 1
04H
00B005H
05Q
0 0 0 0 0 0 0 1 1
010
001
000
0 0 0 1 1 0
05H
01A206H
06Q
1 0 0 1 0 1 0 1 1
001
101
000
0 0 0 0 0 1
06H
959A01H
07Q
0 0 0 0 0 0 0 0 1
110
000
000
0 0 1 1 0 1
07H
00E00DH
10Q
0 0 0 0 0 0 0 0 0
001
000
000
0 0 0 0 0 1
08H
001001H
11Q
0 0 0 0 0 0 0 1 1
110
110
110
0 0 0 0 1 1
09H
01ED83H
12Q
0 0 0 0 0 0 0 1 1
110
110
110
0 0 0 1 1 1
0AH
01ED87H
13Q
0 0 0 0 0 0 0 1 1
110
110
110
0 0 1 1 1 0
0BH
01ED8EH
14Q
0 0 0 0 0 0 0 1 1
110
110
110
0 1 1 0 1 0
0CH
01ED9AH
15Q
0 0 0 0 0 0 0 1 1
110
110
110
0 1 0 1 1 0
0DH
01ED96H
16Q
0 0 0 0 0 0 0 0 1
110
000
000
0 0 1 1 1 1
0EH
00E00FH
17Q
0 0 0 0 0 0 0 0 1
010
000
000
0 1 0 1 0 1
0FH
00A015H
20Q
0 0 0 0 0 0 0 1 1
110
110
110
0 1 0 0 1 0
10H
01ED92H
21Q
0 0 0 0 0 0 0 1 1
110
110
110
0 1 0 1 0 0
11H
01ED94H
22Q
0 0 0 0 0 0 0 0 1
010
000
100
0 1 0 1 1 1
12H
00A117H
23Q
0 0 0 0 0 0 0 1 1
000
000
000
0 0 0 0 0 1
13H
018001H
24Q
0 0 0 0 0 0 0 0 0
010
000
000
0 1 1 0 0 0
14H
00 H
25Q
0 0 0 0 0 1 1 1 0
000
101
000
0 0 0 0 0 1
15H
070A01H
26Q
0 0 0 0 0 0 0 0 1
101
000
110
0 0 0 0 0 1
16H
00D181H
27Q
0 0 0 0 0 1 1 1 0
000
101
000
0 1 0 0 0 0
17H
070A10H
30Q
0 0 0 0 0 1 1 0 1
000
101
100
0 1 0 0 0 1
18H
068B11H
31Q
0 0 0 0 0 0 0 0 0
000
000
000
0 0 0 0 0 0
19H
000000H
32Q
0 0 0 0 0 0 0 0 1
110
000
000
0 1 1 0 1 1
1AH
00E01BH
33Q
0 0 0 0 0 0 0 0 1
011
000
000
0 1 1 1 0 0
1BH
00B01CH
34Q
0 0 0 0 0 0 0 1 1
010
001
000
0 1 1 1 0 1
1CH
01A21DH
35Q
0 0 0 0 1 1 0 1 1
001
101
000
0 0 0 0 0 1
1DH
9D9A05H
36Q
0 0 0 0 0 0 1 0 1
000
001
000
0 0 0 0 0 1
1EH
028201H
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 将微机与实验箱用串口连接,开机进入WINDOWS ,进入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:
02Q:
10Q:
01Q:
ADD指令的微程序
01Q:
02Q:
11Q:
03Q:
04Q:
05Q:
06Q:
01Q:
STA指令的微程序
01Q:
02Q:
12Q:
07Q:
15Q:
01Q:
OUT指令的微程序
01Q:
02Q:
13Q:
16Q:
17Q:
25Q:
01Q:
TRY指令的微程序
01Q:
02Q:
32Q:
33Q:
34Q:
35Q:
01Q:
JMP指令的微程序
01Q:
02Q:
15Q:
26Q:
01Q:
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指令的理论计算过程:
功能选择
M=1
M=0 算术运算
S3S2S1S0
逻辑运算
n=1 无进位
n=0 有进位
0000
F=
F=A
F=A加1
0001
F=
F=A+B
F=(A+B)加1
0010
F=B
F=+
F=(+)加1
0011
F=0
F=减1
F=0
0100
F=
F=A加
F= A加加1
0101
F=
F=(A+B)加
F=(A+B)加加1
0110
F=A⊕B
F=A减B减1
F= A减B
0111
F=
F=减1
F=
1000
F=+B
F=A加AB
F=A加AB加1
1001
F=
F=A加B
F=A加B加1
1010
F=B
F=(+) 加AB
F=(+) 加AB加1
1011
F=AB
F=AB减1
F=AB
1100
F=1
F=A加A
F=A加A加1
1101
F=+
F=(A+B) 加A
F=(A+B) 加A加1
1110
F=A+B
F=(+) 加A
F=(+) 加A加1
1111
F=A
F=A减1
F=A
机器指令TRY的理论计算过程
①当对应学号为01-16号时;S3S2S1S0=学号-1, MCn=11(逻辑运算)
当对应学号为17-32号时;S3S2S1S0=学号-16-1, MCn=01(算术无进位)
当对应学号为33-40号时;S3S2S1S0=学号-32-1, MCn=00(算术有进位)
②软件 0804班,第26号同学, S3S2S1S0=1001, MCn=01,F=(A+B)
∵A=R0=班号+学号= 00000100+00100110=00101010, B=班号=00000100
A+B=00101110
∴对于指令TRY[12H],完成逻辑或运算F=00101110B=2EH
③机器指令序列运行一遍后,13H单元的内容为11111011B=2EH
5数据通路逻辑框图的设计
5.1数据通路的总体设计
1.计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
2.数据的通路从程序计数器PC的地址送到主存的地址寄存器,根据地址寄存器的内容找到相应的存储单元。
3.1存储器中的数据是指令时,那么数据是从RAM送到总线,再从总线送到IR中。
3.2存储器中的数据是需要加工的数据时,那么数据是从RAM送到总线,再动总线送到通用寄存器中等待加工。
3.3数据加工过程中,两个数据是从总线上将数据分别分时压入两个暂存器中,等待运算部件的加工,在数据加工完成以后。运算结果是经过三太门送到总线上。三态门的控制时由微控制器来控制。
5.2数据通路中涉及原件说明
5.2.1运算器
运算器模块主要由两片74LS181、暂存器两片74LS273等构成。其中74LS181可经过控制器相应的控制指令来进行某种运算,具体由S0、S1、 S2、S3、S4、M来决定。T4是它的工作脉冲,正跳变有效。
运算器说明
由于运算器处理的数据为2个8位数据,而74LS181芯片是四位逻辑运算芯片,因此运算器中应该有两个74LS181。其中输入引脚分别为DR1的D0~D7和DR0的D0~D7.输出引脚为8位经过ALU-B(74LS245)然后连接数据总线。
5.2.2程序计数器(PC)及地址寄存器AR
程序计数器由两片74LS161(4位二进制计数器)构成
地址寄存器AR由一片74LS273(8位D触发器)构成
PC-B由一片74LS244(收发器(双向的三态缓冲器))构成
5.2.3微指令寄存器(IR)
当存储器中的数据是指令时,那么数据是从RAM送到总线,再从总线送到IR中。
微指令寄存器(IR)由一片74LS273构成。其芯片介绍如下
5.2数据通路逻辑框图
6课程设计心得、经验教训及注意事项
经过本次课程设计让我对<计算机组成原理>这一门课程有了更加深刻的认识。同时此次实验对模型机的设计以及原理有了更加理性的认识,并掌握了一些基本的软硬件设计知识并对其进行了基本的运用。在模型机的设计中运用了很多知识,也学习了许多设计技巧。而且巩固了自己Protel 99 SE软件的使用。在实验过程中需要自己更加仔细耐心地对待每一个细节,对每一个接线都需要认真对待,不可马虎。由于在实验前准备了相关的工作,阅读了实验指导书而且在实验中的仔细认真,最后我们在班级里面最先完成实验。
在实验前我发现自己对于实验指导书上的许多知识不是很了解,可是经过课后经过图书馆的资料以及网上的资源了解到了数据通路中许多自己没有掌握的知识。例如在设计的时候发现ALU标记使用的是74181芯片实现两个四位相加,而实际情况则是两个8位二进制数输入。因此翻阅了相关资料以及和选题第一组的讨论最后明白了其中的原理(使用2片74181分别处理低四位和高四位),这只是本次试验中学到知识的一个很小一部分。让我受益最多的是如何阅读相关技术文档以及和同学的讨论交流,最后使用Protel 99 SE软件完成了本次绘图的工作。
在以后的学习工作中,需要更加加强自己的实际动手能力以及培养自己的耐心。
参考文献
【1】 计算机组成原理 白中英 主编 科学出版社
【2】 <计算机组成原理> 石磊
【3】 <计算机组成原理与系统结构试验教程> 杨小龙 西安电子科技大学出版社
指导教师评语:
评分:
签名:
年元月 日
展开阅读全文