课程设计(论文)说明书设计指令系统

上传人:1777****777 文档编号:37488491 上传时间:2021-11-03 格式:DOC 页数:16 大小:1.62MB
返回 下载 相关 举报
课程设计(论文)说明书设计指令系统_第1页
第1页 / 共16页
课程设计(论文)说明书设计指令系统_第2页
第2页 / 共16页
课程设计(论文)说明书设计指令系统_第3页
第3页 / 共16页
点击查看更多>>
资源描述
课程设计说明书题目: 设计一指令系统 院 系: 计算机科学与工程学院 专业班级: 计算机09-9班 学 号: 2009* 学生姓名: * 指导教师: * 2011年 06 月 30日 安徽理工大学课程设计(论文)任务书 计算机科学与技术 院系 计算机硬件 教研室学 号88888888学生姓名88888888 专业(班级)计算机88班设计题目设计一指令系统设计技术参数通过CPTH计算机组成原理教学实验系统设计指令/微指令系统。设计要求1. 在基本模型机的基础上改进并实现IN,LDA,OUT,JMP,ADD,SUB等6条指令的功能。2. 设计相应的微程序。3. 在实验箱上实现指令系统。工作量1. 课程设计说明书2000字;2. 画出流程图,编写微指令代码和程序;3. 对各个指令代码进行分析,并运行测试。工作计划学习微程序控制器,了解实验箱中的各部分结构。分析题目,查阅资料,画出流程图,设计出微指令。按实验要求连线,编写程序在实验箱上运行。写出课程设计报告。参考资料1 陈书开,王毅.计算机组成与系统结构.武汉:武汉大学出版社,20052 张功萱.计算机组成原理.北京:清华大学出版社,2005年09月3 王诚.计算机组成原理实验指导书.北京:清华大学出版社,20024 杨小龙.计算机组成原理与系统结构实验教程.西安:西安电子科技大学出版社,20045 袁开榜.计算机组成原理.北京:高等教育出版社,1995指导教师签字*教研室主任签字 2011 年 6 月 30日指导教师评语:成绩: 指导教师: 年 月 日安徽理工大学课程设计(论文)成绩评定表目录内容摘要I绪言11 需求分析11.1设计背景11.2设计目标32 总体设计32.1 程序微指令分析32.2 算术运算基本模型机微程序概述53.详细设计53.1 CPTH模型机简介53.2模型机指令设计说明53.3 根据指令的功能设计相应的微程序73.4编程实现94 调试与运行95心得体会9参考文献11安徽理工大学课程设计(论文)内容摘要部件实验过程中,各部件单元的控制信号是人为模拟产生的,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。首先向存储器中装入数据和程序,然后检查写入是否正确,启动程序执行。另外,还需设计微程序:数据传送(LDA),加(ADD),减(SUB),输入(IN),输出(OUT),跳转(JMP)。以上各微指令设计完毕后,用设计好的指令实现逻辑运算,连接线路在CPTH计算机组成原理教学实验箱运行程序,并将实验结果显示输出。这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对以后的学习、工作中有深远的影响。关键词:指令,微程序,CPTH10-绪言随着社会科技的发展,计算机被应用到各行各业,人们步入自动化、智能化的生活阶段。本次课程设计课题是基本模型机的设计与实现,它正体现了这一点。利用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读出数据到DBUSIREN:将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPCEINT:中断返回时清除中断响应和中断请求标志,便于下次中断。ELP:PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。MAREN:将数据总线DBUS上数据打入地址寄存器MARMAROE:将地址寄存器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-1WEN:将数据总线DBUS的值打入工作寄存器W中AEN:将数据总线DBUS的值打入累加器A中S2,S1,S0三位组合决定ALU做何种运算,见表1-2表1-1 寄存器选择控制表X2 X1 X0输出寄存器0 0 0IN_OE 外部输入门0 0 1IA_OE 中断向量0 1 0ST_OE 堆栈寄存器0 1 1PC_OE PC寄存器1 0 0D_OE 直通门1 0 1R_OE 右移门1 1 0L_OE 左移门1 1 1没有输出表1-2 运算器功能控制S2 S1 S0功能0 0 0A+W 加0 0 1A-W 减0 1 0A|W 或续表1-20 1 1A & W 与1 0 0A+W+C 带进位加1 0 1A-W-C 带进位减1 1 0A A取反1 1 1A 输出A1.2设计目标 本课程设计要求实现机器指令:,IN(输入),OUT(输出),LDA(不带进位算术加),ADD(带进位算术加),SUB(带进位算术减),JMP(跳转指令)。并且要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。最后要在设计的指令系统基础上,编写程序实现带进位的循环左移。2 总体设计2.1 程序微指令分析将程序在DJ-CPT816软件上单步运行结束后可得微指令跟踪图如下表2-1:表2-1 微指令跟踪图助记符状态微地址微程序数据输出数据打入地址输出运算器UpcPcT000CBFFFF指令寄存器IRPC输出A输出写入100 INT144FFFF17 用户IN 寄存器A A输出 +1T045CBFFFF指令寄存器IRPC输出A输出写入105 JMP 09T19CC6FFFF 存贮器值EM 寄存器PC PC输出 A输出 +1 写入T09DCBFFFF指令寄存器IRPC输出A输出写入107 ADD A,#01T210C7FFEF 存贮器值EM 寄存器W PC输出 A输出 +1 +1T111FFFE90 ALU直通 寄存器A 加运算 +1续表2-1T012CBFFFF指令寄存器IRPC输出A输出写入109 OUTT148FFDF9F ALU直通 用户OUT A输出 +1T049CBFFFF指令寄存器IRPC输出A输出写入10A JMP01T19CC6FFFF 存贮器值EM 寄存器PC PC输出 A输出 +1 写入T09DCBFFFF指令寄存器IRPC输出A输出写入12.2算术运算基本模型机微首先对编好的程序进行保存,然后进行汇编,看是否有语法错误,再进行单步调试,按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,数据是否按照设计要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及UPC如何工作。 开始调试的时候是有点错,我还以为是指令错了,经过几次的核对,检验,和与草图对比,指令的跳转是没有问题的, 最后估计可能接线出错了。应接J1和J2座的,却接成了J1和J3座,跳转的指令出错,也可能是MA6MA0接线不对, 改正了后重新检查一编线路后,重新开始运行程序LED显示的十六进制数与MA6MA0微地址显示灯对应。拨动开关CLR(01)后,微地址清零。PC程序计数器清零,然后控制台SWBSWA开关置为“00”,按动启动开关START,微地址显示灯“010000”(20),再按动一次START,微地址灯显示“010010”(22),第三次按动START,微地址显示灯显示“010111”3.详细设计3.1 CPTH模型机简介 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中ADD A,#*将累加器A中的数据输出到端口中续表3-1SUB A,#*将累加器A中的数据输出到端口中JMP *跳转到指定地址OUT 将累加器A中的数据输出到输出端口LDA R?累加器A中取数 一.创建指令系统(助记符、机器码)(1)打开CPTH组成原理实验软件,选择文件|新建指令系统/微程序,清除原来的指令/微程序系统,观察软件下方的“指令系统”窗口(图3.1),所有指令码都“未使用”。图3.1指令系统窗口(2)选择第二行,即“机器码1”为0000 01XX行,在下方的“助记符”栏填入数据装载功能的指令助记符“IN”,由于此指定了将累加器A输出寄存器,所以不用选择“操作码1”和“操作码2”,也可在“操作数1”栏选择“A”,表示第一个操作数为累加器A,“操作数2”无需选择。按“修改”按钮确认。(3)选择第三行,即“机器码1”为0000 10XX行,在下方的“助记符”栏填入加法功能的指令助记符“LDA”,在“操作码1”栏选择“A”,表示第一操作数为累加器A,在“操作数2”栏选择“#*”,表示第二操作数为立即数。按“修改”按钮确认。(4)选择第四行,即“机器码1”为0000 11XX行,在下方的“助记符”栏填入指令助记符“OUT”,由于此指定了将累加器A输出寄存器,所以不用选择“操作码1”和“操作码2”,也可在“操作数1”栏选择“A”,表示第一个操作数为累加器A,“操作数2”无需选择。按“修改”按钮确认。(5)选择第五行,即“机器码1”为0001 00XX行,在下方的“助记符”栏填入输出数据功能的指令助记符“JMP”,在“操作码1”栏选择“*”,表示跳转地址为*,此指令无第二操作数,无需选择“操作数2”。按“修改”按钮确认。因为硬件设计时,跳转指令的跳转控制需要指令码的第3位和第2位IR3,IR2来决定,无条件跳转的控制要求IR3必须为1,所以无条件跳转的机器码选择此行,机器码为000011XX。关于跳转控制的硬件设计和实验可参考前面章节。(6)选择第六行,即“机器码1”为0001 01XX行,在下方的“助记符”栏填入输出数据功能的指令助记符“ADD”,在“操作码1”栏选择“A”,表示第一个操作数为累加器A,在“操作数2”栏选择“#*”,表示第二操作数为立即数。按“修改”按钮确认。(7)选择第七行,即“机器码1”为0001 10XX行,在下方的“助记符”栏填入输出数据功能的指令助记符“SUB”,在“操作码1”栏选择“A”,表示第一个操作数为累加器A,在“操作数2”栏选择“#*”,表示第二操作数为立即数。按“修改”按钮确认。图3.2指令助记符3.3 根据指令的功能设计相应的微程序 将窗口切换到“uM微程序”窗口,现在此窗口中所有微指令值都是0FFFFFFH,也就是无任何操作,我们需要在此窗口输入每条指令的微程序来实现该指令的功能。每个程序开始要执行的第一条微指令应是取指操作,因为程序复位后,PC 和uPC 的值都为0,所以微程序的0 地址处就是程序执行的第一条取指的微指令。取指操作要做的工作是从程序存储器EM 中读出下条将要执行的指令,并将指令的机器码存入指令寄存器IR和微程序计数器uPC中,读出下条操作的微指令。根据此功能,观察窗口下方的各控制信号,有“勾”表示信号为高,处于无效状态,去掉“勾”信号为低,为有效状态。要从EM中读数,EMRD 必需有效,去掉信号下面的“勾”使其有效;读EM的地址要从PC输出,所以PCOE要有效,允许PC输出,去掉PCOE下面的“勾”,PCOE有效同时还会使PC加1,准备读EM的下一地址;IREN是将EM读出的指令码存入uPC和IR,所以要去掉IREN的“勾”使其有效。这样,取指操作的微指令就设计好了,取指操作的微指令的值为CBFFFFH。然后把助记符_FATCH_,状态T0,微地址,微程序CBFFFFH,按照上表格式填入,其余类同现在我们来看把立即数装入累加器A要做哪些工作,首先要从EM中读出立即数,并送到数据总线DBUS,再从DBUS 上将数据打入累加器A中,按照这个要求,从EM中读数据,EMRD应该有效,EM的地址由PC输出,PCOE必需有效,读出的数据送到DBUS,EMEN也应有效,要求将数据存入A中,AEN也要有效,根据前面描述“JIAYI #*”指令有四个状态周期, T0状态取指微指令的值为CBFFFFH,T1状态取指微指令的值为CBFF90H,T2状态取指微指令的值为D7FFEF,T3状态取指微指令的值为EF7FFF。(取操作描述可见第 步)。如上,根据指令的执行过程分析,并参照实验指导书上微型机指令集得出其他的微程序。如图3.3图3.3微程序结果 (6)选择菜单文件|保存指令系统/微程序功能,将新建的指令系统/微程序保存下来,以便以后调用。为不与已有的指令系统冲突,将新的指令系统/微程序保存为“new.mac”。如图3.4。图3.4指令系统/微程序文件图3.4编程实现源代码LDA R1,#01ADD A,#01SUB A,#01INJMP LOOPLOOP:OUT将程序另存为A,ASM,选择文件| 跳入指令系/微程序,调入a.mac,将程序汇编成机器码,观察反汇编窗口,会现实出程序地址,机器码,反汇编指令。按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,数据是否按照设计要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及uPC如何工作是否正确。到此为止,我们利用CPTH 软件系统已经建成了一个新的指令系统/微程序。新的指令系统从汇编助记符到指令机器码到微指令都与原来的指令系统有所不同。我们只创建了四条指令,对于其它指令,用户可以做为练习来扩充完整,成为一个真正的指令系统。4 调试与运行使用软件中的F4-LOAD功能装入机器指令格式文件(1)将编程开关置为“RUN”,“STEP”置为“STEP”,“STOP”置为“RUN”状态。(2)拨动开关CLR(01),微地址寄存器清零,程序计数器清零,程序的首地址00H。(3)单步来运行一条微指令,每按动一次START键,即单步调试运行一条微指令。对照微程序流程图,观察微地址显示灯是否和流程一致。(4)当运行结束后,可检查数据寄存器中的结果是否和理论值一致。5心得体会通过在计算机组成原理实验课的学习,我对计算机组成原理这门课程有着更深的认识和理解,特别是这次课程设计。虽然设计出来的微指令系统比较简单,但这次课程设计使我学到了许多在书上学不到的东西。首先,我的动手能力得到了一定程度的提高,同时也一定程度上提高了自己独立思考的能力;其次,在这次课程设计中我也遇到了一些问题,原因在于自己对这门课程的一些概念还是理解得不够深刻,但是通过查阅相关资料,还有在老师和同学的帮助下,这些问题最终得到了还好的解决,这是我对课本上的知识也有了更加深刻的理解和掌握。之前看到课本上的什么微指令系统、微指令之类的,总是感觉稀里糊涂的,这些个概念对我来说很抽象,所以自然就很难理解了。而实验仪器则有助于我去理解这些指令到底是如何实现特定的功能的。而且,从所给的软件中很容易编写出自己的指令系统,只是一个指令的详细设计还是比较难的,因为有24位要按照所完成的功能编写0或1,这是此次课程设计的关键,但是如果掌握了各个位的作用,同时又很清楚自己设计的指令要完成的功能,那么设置0和1就不会那么麻烦。这次课程设计虽然只是简单的设计的六条指令,完成了简单的与或运算,但我明白了该如何设计好一条指令,掌握了设计指令的一些方法,这对我以后在实践过程中会是一次很好的经历 。参考文献1 陈书开,王毅.计算机组成与系统结构.武汉:武汉大学出版社,20052 张功萱.计算机组成原理.北京:清华大学出版社,2005年09月3 王诚.计算机组成原理实验指导书.北京:清华大学出版社,20024 杨小龙.计算机组成原理与系统结构实验教程.西安:西安电子科技大学出版社,20045 袁开榜.计算机组成原理.北京:高等教育出版社,1995
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!