设计指令系统Word文件下载.docx
《设计指令系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《设计指令系统Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
![设计指令系统Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/26/528937f3-4b3b-45c7-8089-c6ad95e688b4/528937f3-4b3b-45c7-8089-c6ad95e688b41.gif)
计
技
术
参
数
通过CPTH计算机组成原理教学实验系统设计指令/微指令系统。
要
求
1.在基本模型机的基础上改进并实现IN,LDA,OUT,JMP,
ADD,SUB等6条指令的功能。
2.设计相应的微程序。
3.在实验箱上实现指令系统。
工
作
量
1.课程设计说明书2000字;
2.画出流程图,编写微指令代码和程序;
3.对各个指令代码进行分析,并运行测试。
划
学习微程序控制器,了解实验箱中的各部分结构。
分析题目,查阅资料,画出流程图,设计出微指令。
按实验要求连线,编写程序在实验箱上运行。
写出课程设计报告。
考
资
料
[1]陈书开,王毅.计算机组成与系统结构.武汉:
武汉大学出版社,2005
[2]张功萱.计算机组成原理.北京:
清华大学出版社,2005年09月
[3]王诚.计算机组成原理实验指导书.北京:
清华大学出版社,2002
[4]杨小龙.计算机组成原理与系统结构实验教程.西安:
西安电子科技大学出版社,2004
[5]袁开榜.计算机组成原理.北京:
高等教育出版社,1995
指导教师签字
****
教研室主任签字
2011年6月30日
指导教师评语:
成绩:
年月日
安徽理工大学课程设计(论文)成绩评定表
目录
内容摘要I
绪言1
1需求分析1
1.1设计背景1
1.2设计目标3
2总体设计3
2.1程序微指令分析3
2.2算术运算基本模型机微程序概述5
3.详细设计5
3.1CPTH模型机简介5
3.2模型机指令设计说明5
3.3根据指令的功能设计相应的微程序7
3.4编程实现9
4调试与运行9
5心得体会9
参考文献11
内容摘要
部件实验过程中,各部件单元的控制信号是人为模拟产生的,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
首先向存储器中装入数据和程序,然后检查写入是否正确,启动程序执行。
另外,还需设计微程序:
数据传送(LDA),加(ADD),减(SUB),输入(IN),输出(OUT),跳转(JMP)。
以上各微指令设计完毕后,用设计好的指令实现逻辑运算,连接线路在CPTH计算机组成原理教学实验箱运行程序,并将实验结果显示输出。
这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对以后的学习、工作中有深远的影响。
关键词:
指令,微程序,CPTH
绪言
随着社会科技的发展,计算机被应用到各行各业,人们步入自动化、智能化的生活阶段。
本次课程设计课题是基本模型机的设计与实现,它正体现了这一点。
利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。
本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序。
1需求分析
1.1设计背景
通过计算机组成原理理论课和几次实验的学习,尝试使用八类机器指令中的三到四种设计,并编写相应的微程序,完成由基本单元电路构成一台基本模型机,再经过调试指令和模型机使其在微程序的控制下自动产生各部件单元的正常工作控制信号。
本课程设计的模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。
在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。
在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。
简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。
本设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的
24位控制位分别介绍如下:
XRD:
外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。
EMWR:
程序存储器EM写信号
EMRD:
程序存储器EM读信号
PCOE:
将程序计数器PC的值送到地址总线ABUS上
EMEN:
将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUS
IREN:
将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPC
EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP:
PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。
MAREN:
将数据总线DBUS上数据打入地址寄存器MAR
MAROE:
将地址寄存器MAR的值送到地址总线ABUS上
OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里
STEN:
将数据总线DBUS上数据存到堆栈寄存器里
RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定
RWR:
写寄存器组R0-R3,寄存器R?
CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位
FEN:
将标志位存入ALU内部的标志寄存器
X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1-1
WEN:
将数据总线DBUS的值打入工作寄存器W中
AEN:
将数据总线DBUS的值打入累加器A中
S2,S1,S0三位组合决定ALU做何种运算,见表1-2
表1-1寄存器选择控制表
X2X1X0
输出寄存器
000
IN_OE外部输入门
001
IA_OE中断向量
010
ST_OE堆栈寄存器
011
PC_OEPC寄存器
100
D_OE直通门
101
R_OE右移门
110
L_OE左移门
111
没有输出
表1-2运算器功能控制
S2S1S0
功能
A+W加
A-W减
A|W或
续表1-2
A&
W与
A+W+C带进位加
A-W-C带进位减
~AA取反
A输出A
1.2设计目标
本课程设计要求实现机器指令:
,IN(输入),OUT(输出),LDA(不带进位算术加),ADD(带进位算术加),SUB(带进位算术减),JMP(跳转指令)。
并且要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
最后要在设计的指令系统基础上,编写程序实现带进位的循环左移。
2总体设计
2.1程序微指令分析
将程序在DJ-CPT816软件上单步运行结束后可得微指令跟踪图如下表2-1:
表2-1微指令跟踪图
助记符
状态
微地址
微程序
数据输出
数据打入
地址输出
运算器
Upc
Pc
T0
00
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
00IN
T1
44
FFFF17
用户IN
寄存器A
A输出
+1
45
05JMP09
9C
C6FFFF
存贮器值EM
寄存器PC
PC输出
+1
9D
07ADDA,#01
T2
10
C7FFEF
寄存器W
11
FFFE90
ALU直通
加运算
续表2-1
12
09OUT
48
FFDF9F
用户OUT
49
0A
JMP
01
2.2算术运算基本模型机微
首先对编好的程序进行保存,然后进行汇编,看是否有语法错误,再进行单步调试,
按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,数据是否按照设计要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及UPC如何工作。
开始调试的时候是有点错,我还以为是指令错了,经过几次的核对,检验,和与草图对比,指令的跳转是没有问题的,最后估计可能接线出错了。
应接J1和J2座的,却接成了J1和J3座,跳转的指令出错,也可能是MA6∽MA0接线不对,
改正了后重新检查一编线路后,重新开始运行程序LED显示的十六进制数与MA6∽MA0微地址显示灯对应。
拨动开关CLR(0→1)后,微地址清零。
PC程序计数器清零,然后控制台SWB~SWA开关置为“00”,按动启动开关START,微地址显示灯“010000”(20),再按动一次START,微地址灯显示“010010”(22),第三次按动START,微地址显示灯显示“010111”
3.详细设计
3.1CPTH模型机简介
CPTH模型机包括了一个标准CPU所具备所有部件,这些部件包括:
运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。
微程序控制部分也可以用组合逻辑控制来代替。
模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。
相比而言8位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。
3.2模型机指令设计说明
表3-1模型机指令
指令助记符
功能描述
IN
从输入端口读数据到累加器A中
ADDA,#*
将累加器A中的数据输出到端口中
续表3-