您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 计算机组成原理课程设计
课程设计说明书题目:指令系统设计院系:计算机科学与工程学院专业班级:学号:学生姓名:指导教师:郭同柱2014年12月23日i安徽理工大学课程设计(论文)任务书计算机科学与工程院监控与嵌入式教研室学号学生姓名专业(班级)设计题目指令系统设计设计技术参数1.本系统采用DJ-CPTH超强型计算机组成原理教学实验系统搭建电路图,在实验箱上实现指令系统。2.利用软件工程中的可行性研究以及分析方法,进行系统分析。设计要求1.在基本模型机的基础上构建一组能实现输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移等功能的指令系统。2.利用新构建的指令系统编程,实现带进位的循环右移工作量1、课程设计说明书2000字。2、画流程图,编写微指令代码和程序。工作计划1、首先认真研究老师所给的题目,了解题目要求做什么。2、查阅资料,解决问题。3、编写源程序并调试之。4、写课程设计说明书。参考资料[1]张昆藏.计算机系统结构.北京:科学出版社,1994[2]著平玲娣,潘雪增.《计算机组成与设计》.浙江:浙江大学出版社,2004[3]白中英.计算机组成原理(第二版).北京:科学出版社,1998[4]DJ-CPTH超强型计算机组成原理与系统结构实验指导书指导教师签字教研室主任签字2014年11月28日ii安徽理工大学课程设计(论文)成绩评定表指导教师评语:成绩:指导教师:年月日iii摘要随着科学技术的发展,计算机被应用到各行各业,人们步入自动化、智能化的生活阶段。。利用实验仪器实现计算机组成原理课程及实验中所学到的实验原理和编程思想,实现了一系列的指令功能,最终达到将理论与实践相联系。本次课程设计课题是循环右移,设计是在CPTH计算机组成原理实验仪和DJ51仿真开发系统软件上进行的。设计出的指令包括传送,逻辑与,逻辑或,算术加,减运算,输入,输出,转移这八种指令,且运用直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。利用新构建的指令系统编程,实现带进位的循环右移的功能。这一课题的实现使我们对计算机组成原理有了进一步的认识,对各种微指令掌握更加熟练。在本次计算机组成原理课程设计中,我主要负责程序的检查和修改,能为团队做出贡献,我感到很高兴。关键词:计算机组成原理;理论与实践相联系;微程序;微指令;循环右移。iv目录1系统分析................................................................11.1设计背景..........................................................11.2设计目标..........................................................22系统设计................................................................32.1模型机的指令系统设计..............................................32.2模型机的微指令设计................................................32.3循环右移程序设计...................................................53系统实现................................................................63.1实现循环右移......................................................63.2分析...............................................................63.3程序微指令分析....................................................73.4实验结果...........................................................84总结....................................................................9参考文献.................................................................10安徽理工大学课程设计(论文)-1-1系统分析1.1设计背景通过计算机组成原理理论课和几次实验的学习,尝试设计八类机器指令,并编写相应的微程序,再经过调试指令和CPTH使其在微程序的控制下完成循环右移。本课程设计的模型机的指令码为6位,根据指令类型的不同,可以有0到2个操作数。在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。简言之,这次设计,循环右移将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位控制位实现。本设计是在CPTH,DJ51仿真开发系统实现的。24位控制位分别介绍如下:XRD:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM写信号。EMRD:程序存储器EM读信号。PCOE:将程序计数器PC的值送到地址总线ABUS上。EMEN:将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUS。IREN:将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPCEINT:中断返回时清除中断响应和中断请求标志,便于下次中断。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内部的标志寄存器。安徽理工大学课程设计(论文)-2-X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1-1:表1-1寄存器选择控制表X2X1X0输出寄存器000IN_OE外部输入门001IA_OE中断向量010ST_OE堆栈寄存器011PC_OEPC寄存器100D_OE直通门101R_OE右移门110L_OE左移门111没有输出WEN:将数据总线DBUS的值打入工作寄存器W中。AEN:将数据总线DBUS的值打入累加器A中。S2,S1,S0三位组合决定ALU做何种运算,见表1-2所示:表1-2运算器功能控制S2S1S0功能000A+W加001A-W减111A输出A011A&W与1.2设计目标本课程设计要求实现机器指令:输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移等功能的指令系统。最后要在设计的指令系统基础上,编写程序实现带进位的循环右移实现循移。安徽理工大学课程设计(论文)-3-2系统设计2.1模型机的指令系统设计根据设计要求,设计出的指令要包括传送,逻辑与,算术加,减运算,输入,输出,转移这7种指令。设计见表2-1。表2-1指令表指令类型助记符机器码功能取指_FETCH_000000xx00-03IR→PC传送MOVR?A000010xx08-08A→R?MOVA,R?000100xx10-13R?→A右移RRA000011xx0C-0FA右移一位→A左移RLA000110xx18-1BA左移一位→A不带进位加法ADDA,R?0001111xx1C-1FA+R→A不带进位减法SUBA,#*001000xx20-23A-*→ASUBA,R?001001xx24-27A-R?→A输出OUT001011xx2C-2FA→OUT逻辑与ANDA,#*000101xx14-17*&&A→A转移JZ*010001xx44-47*→PC输入IN000001xx04-07IN→A2.2模型机的微指令设计(1)微指令的24位控制位如下:XRDEMWREMRDPCOEEMENIRENEINTELPMARENMARDEOUTENSTENRRDRWRCNFENX2X1X1X0WENAENS2S1S0(2)设计出的微指令集见表2-2.表2-2微指令集助记符状态微地址微程序_FETCH_T000CBFFFF安徽理工大学课程设计(论文)-4-01FFFFFF02FFFFFF03FFFFFFINT104FFFF17T005CBFFFF06FFFFFF07FFFFFFMOVR?,AT108FFFB9FT009CBFFFF0AFFFFFF0BFFFFFFRRAT10CFFFCB7T00DCBFFFF0EFFFFFF0FFFFFFFMOVA,R?T110FFF7F7T011CBFFFF12FFFFFF13FFFFFFANDA,#*T214C7FFEFT115FFFE93T016CBFFFF17FFFFFFRLAT118FFFCD7T019CBFFFF1AFFFFFF1BFFFFFFADDA,R?T21CFFF7EFT11DFFFF90T01ECBFFFF1FFFFFFFSUBA,#*T220C7FFEFT121FFFE91安徽理工大学课程设计(论文)-5-T022CBFFFF23FFFFFFSUBA,R?T224FFF7EFT125FFFE91T026CBFFFF27FFFFFFOUTT12CFFDF9FT02DCBFFFF2EFFFFFF2FFFFFFFJZ*T144C6FFFFT045CBFFFF46FFFFFF47FFFFFF2.3循环右移程序设计循环右移,如图2-1所示。图2-1循环右移示意图程序设计思路:(1)将进行移位的数和01H进行逻辑与,并保存结果(即将最后一位保存下来)(2)将1的结果左移7次,即将其置为最高位,其余为为0(3)将进行移位的数右移一次,并且将其与2的结果相加,即为一次右移的结果(4)根据循环次数,循环1、2、3步骤。安徽理工大学课程设计(论文)-6-3系统实现3.1实现循环右移1.按照系统分析中得到的指令集,在CPT816实验软件中新建指令系统,生成.mac文件和.mic文件。2.在DJ-CPT816实验软件中新建.asm文件,输入程序:LOOP1:MOVA,R2MOVR1,ARRAMOVR0,AMOVA,R1ANDA,#01HRLARLARLARLARLARLARLAADDA,R0MOVR2,AMOVA,R3SUBA,#01HJZLOOP2MOVR3,ASUBA,R3JZLOOP1LOOP2:MOVA,R2OUT3.2分析程序开始执行一条取指的微指令,读入程序第一条指令。IPT:利用开关K23-K16输入一个立即数A,下面就是对A进行循环左移。SEDR0,A:将立即数A存入R0,利用R0对立即数A进行循环左移。安徽理工大学课程设计(论文)-7-PLUA,R0:将R0中的数与A累加并存入R0,也就是将A+A存入R0。JCLOOP:如果相加结果有进位则跳转到LOOP。LOOP:PLUA,#01H:A加上数01H,因为有进位才跳转到这步,所以进位须放置到A最后一位以实现循环左移。JMPLOOP1:没有进位则强制跳转到LOOP1,说明数A的最高位是0。
本文标题:计算机组成原理课程设计
链接地址:https://www.777doc.com/doc-5522621 .html