欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    微程序设计组成原理课程设计报告.doc

    • 资源ID:2386006       资源大小:1MB        全文页数:18页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微程序设计组成原理课程设计报告.doc

    目录I成绩评定表1.2II成绩评定表2.3III课程设计任务书.4一、 摘要.5二、 微程序控制器原理.5三、 总体设计(系统构成).6四、 详细设计.7五、 测试.13六、 设计中出现的问题和解决方法.17七、 结论.18八、 参考文献.18九、 个人总结.18本科学生课程设计任务书课程设计题目微程序设计学院计算机学院专业网络工程年级2008已知参数和设计要求:用微程序控制器实现以下指令功能调用:CALLaddr ;指令功能与80X86相同,addr是8位二进制地址 返回:RET 存储器到存储器传送:MOV memi , memj; memi ß(memj), i<>j,memi内存单元地址带右移的加法运算:ADD Ri , Rj , N; Ri ß(Ri)+(Rj)>>N ,Rj中内容不变 N=0-7学生应完成的工作:根据模型计算机的数据路径以及微程序控制器的工作原理,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。参考实验5.3、6.1。上机调试并输出正确结果,给出完整的设计报告。目前资料收集情况(含指定参考资料):计算机组成原理实验指导书计算机组成和设计,David A.Patterson编,清华大学出版社,2003年12月计算机组织与结构,William Stallings编,高等教育出版社,2001年8月计算机组成与系统结构,李亚民编,清华大学出版社,2000年4月课程设计的工作计划: 序号课程设计工作进度起止日期1课程设计任务书下发2010.12.62文献查阅和资料准备2010.12.6-2010.12.203课程设计编码的设计与测试2011.1.4-2011.1.54撰写设计报告和设计验收2011.1.6-2011.1.9任务下达日期 2010 年 12 月 6 日完成日期 2011 年 1 月 9 日指导教师 (签名)学生 (签名)一.摘要利用CPU与简单模型机设计实验中所学到的实验原理以及编程思想,硬件设备,自拟编写指令的应用程序,用微程序控制器实现了一系列的指令功能。分析了本次课程设计需要实现得指令,并结合前几次实验所学知识,我们选择了简单模型机来完成此次设计。本实验要实现一个简单的 CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序CPU 在写入相应的微指令后,就具备了执行机器指令的功能。在本设计中完成了基本的数据输入输出(IN,OUT),带左移的加法运算(ADD Ri , Rj , N; Ri ß(Ri)+(Rj)<<N ,Rj中内容不变),存储器到存储器的传送(MOV memi , memj)以及CALL与RET指令的实现。整个过程可分为分析功能,设计程序流程图,编写微指令,编写微程序,联机输入调试几部分。 关键词:微程序控制器原理 设计流程图 微指令编码 编写微程序 二、 微程序控制器原理2.1设计要求 用微程序控制器实现以下指令功能,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。参考实验5.3、6.1,在此基础上增加如下指令调用:CALLaddr ;指令功能与80X86相同,addr是8位二进制地址 返回:RET ;返回存储器到存储器传送:MOV memi , memj; memi ß(memj), i<>j,memi内存单元地址带左移的加法运算:ADDRi , Rj , N; Ri ß(Ri)+(Rj)<<N ,Rj中内容不变 2.2微程序设计的基本思想将微操作用微指令表示,固化在存储单元,编制对机器指令进行取指、译码和执行的微指令序列(微程序),执行该微程序,完成该机器指令的执行。其基本结构如下: 图12.3设计原理及设计思想要实现以上指令功能,结合所学知识,我们选择简单模型机来实现。本设计的核心是一个简单的cpu,cpu由运算器(ALU),微程序控制器(MC),通用寄存器(R0),指令寄存器(IR),程序计数器(PC)和地址寄存器(AR)组成。这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。其基本组成如下图所示: 图2系统的程序计数器(PC)和地址寄存器(AR)集成在一片CPLD 芯片中 。CLR 连接至CON单元的总清端CLR,按下CLR 按钮,将使PC 清零,LDPC 和T3 相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU 内总线上的数据打入PC。此次设计,本机模型共实现七条指令:IN(输入),OUT(输出),ADDR(带左移的加法),CALL(调用),RET(返回),MOV mem1,mem2(移动),HLT(停机)。三、总体设计(系统构成) 分析理解完设计要求过后,利用cpu的运算器(ALU),微程序控制器(MC),通用寄存器(R0),指令寄存器(IR),程序计数器(PC)和地址寄存器(AR)等各个功能部件,完成以下步骤,实现微程序设计。 I.通过分析cpu各个功能部件之间的关系,根据所选模型机,连接电路。II. 根据数据通路,写出每条指令的执行过程,画出微程序流程图。 III.根据微程序流程图,参照A,B,C字段的含义,设计微指令。 IV.编写机器指令微代码和微指令程序。 V.通过联机操作方式,输入程序并测试。四、 详细设计4.1步骤一:选择并连接电路因为选择的是简单模型机,则参照以下简单模型机电路图连接电路:连线完成后,仔细检查是否有错连,漏连以及反连的情况,确认无误后,打开电源,听是否有“滴滴”的报警声,若没有,则连线完成。4.2步骤二: 根据需要设计的指令,画出微程序流程图 分析指令,根据计算机的工作过程,结合取址阶段,执行阶段cpu的各个工作,设计出以下微程序流程图:0B30A<<1R0A+BR0R0RR0BR0ANOPPCARPC+1PCR0OUTBPCINARINARPCB#MEMR0MEMPCR0MEMINR0NOPPCARPC+1PCMEMIRP<1>01010101010101ADDINOUTHLTMOVCALLRET0001033030040506073233353A08090A3E3C图34.3步骤三:根据微程序流程图,参照A,B,C字段的含义,设计微指令利用程序计数器作为每一个小节程序段的开始,当拟定“取指”指令后,利用P<1>字段进行判别测试各个指令的程序入口。微指令格式及A,B,C字段含义如下: 图4其中MA5MA0 为6 位的后续微地址,A、B、C 为三个译码字段,分别由三个控制位译码出多位。C 字段中的P<1>为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支, S3-S0的具体功能如下图: 根据以上指令格式以及程序流程图的设计,将每条指令微代码化,结果如下:地址十六进制高五位S3-S0A字段B字段C字段MA5-MA00000000100000000000000000000000101006D430000000001101011010000110310707000010000011100000111000030001404000000000001010000000100040024050000000000100100000001010504B206000000001010001000000110.060014070000010000010100000001110703B2010000000010100010000000013218300100011011001100000000000133280401001010000000010000000001350000350000000000000000001101013A186008000110000110000000001000081030190001000000110000000010010918600A0001100001100000000010100A2004010010000000000100000000013E006D4B0000000001101101010010110B002C0C0000000000101100000011000C1051410000000001010001010000013C00D341001100001101001101000001将其化为十六进制微程序如下:$M 00 000001 ;NOP$M 01 006D43 ;PC->AR,PC+1$M 03 107070 ;MEM->IR,P<1> ;/带左移的加法/$M 30 001404 ;R0->A$M 04 002405 ;R0->B$M 05 04B206 ;A+B->R0$M 06 001407 ;R0->A$M 07 03B201 ;A<<1->R0 ;/IN/$M 32 183001 ;IN->R0 ;/OUT/$M 33 280401 ;R0->OUT ;/HLT停机/$M 35 000035 ;NOP ;/MOV/$M 3A 186008 ;IN->AR$M 08 103009 ;MEM->R0$M 09 18600A ;IN->AR$M 0A 200401 ;R0->MEM ;/CALL/$M 3E 006D4B ;PC->AR,PC+1$M 0B 002C0C ;PC->B$M 0C 105141 ;MEN->PC ;/RET/$M 3C 00D341 ;B->PC4.4步骤四:编写机器指令微代码和微指令程序机器指令和微指令格式说明如下:IN: 完成需要相加的两个数据i,j的输入,并分别存入A,B中。OUT:完成程序运行结果的输出,显示在相应的OUT单元ADDR:完成带左移的加法MOV:完成存储器到存储器的传送,先送出MEM中的地址到R0,继而改变MEM地址,再将R0的地址送回MEM,以达到存储器到存储器的传送要求。CALL:实现程序的调用,完成指令间的跳转。RET:返回CALL所调用时的PC值HLT:停机操作最后形成的实验程序如下:;*$p 00 20;BEGIN: IN R0$p 01 00;ADDR R0 R0(带左移的加法)$p 02 30;OUT R0$p 03 E0;CALL FUN1$p 04 20$p 05 50;HLT停机$p 20 A0;MOV men men$p 21 30;OUT R0$P 22 C0; RET;* ;/取指令/$M 00 000001 ;NOP$M 01 006D43 ;PC->AR,PC+1$M 03 107070 ;MEM->IR,P<1> ;/带左移的加法/$M 30 001404 ;R0->A$M 04 002405 ;R0->B$M 05 04B206 ;A+B->R0$M 06 001407 ;R0->A$M 07 03B201 ;A<<1->R0 ;/IN/$M 32 183001 ;IN->R0 ;/OUT/$M 33 280401 ;R0->OUT ;/HLT停机/$M 35 000035 ;NOP ;/MOV/$M 3A 186008 ;IN->AR$M 08 103009 ;MEM->R0$M 09 18600A ;IN->AR$M 0A 200401 ;R0->MEM ;/CALL/$M 3E 006D4B ;PC->AR,PC+1$M 0B 002C0C ;PC->B$M 0C 105141 ;MEN->PC ;/RET/$M 3C 00D341 ;B->PC4.5步骤5:通过联机操作方式,输入程序并测试联机输入:选择联机软件的“【转储】【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程序和微程序写入指定单元。选择联机软件的“【转储】【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标左键单击指令区的微存TAB 按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6 位数据并回车,编辑框消失,并以红色显示写入的数据。联机运行:将时序与操作台单元的开关KK1 和KK3 置为运行档,进入软件界面,选择菜单命令 “【实验】【简单模型机】”,打开简单模型机数据通路图。按动CON 单元的总清按钮CLR,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序,当模型机执行完JMP 指令后,检查OUT 单元显示的数是否为IN 单元值的2 倍。在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、数据总线以及微指令显示和下位机是否一致。五、 测试 对应微指令$M 01 006D43 ;PC->AR,PC+1(取指中) 对应微指令$M 32 183001 ;IN->R0(IN中)对应微指令$M 05 04B206 ;A+B->R0(ADDR中)对应微指令$M 07 03B201 ;A<<1->R0(ADDR中) 对应微指令$M 33 280401 ;R0->OUT(OUT中) 对应微指令$M 0C 105141;MEN->PC (CALL中)对应微指令$M 0A 200401;R0->MEM(mov中)实验结果:实验结果完全符合当初的设计,各个微指令都实现了预先的设计目标,机器程序的测试也达到了预期的效果。程序执行的各个阶段均按正确的数据通路运行。六、设计中出现的问题和解决方法(一)出现问题:问题一:编码前画流程图时散转到ADD,IN,OUT,MOV,CALL,RET时,不知道微指令地址如何规定。问题二:将机器指令和微指令以联机写入的方式写入后,打入03h,发现做了ADD并将结果右移一次之后,在R0出现了C0(本应为0C)。(二)对应的解决方法: 问题一解决方法:询问指导老师后,知道微指令地址等于散转地址加机器操作码的值。按此规则规定各微指令地址:ADD为30,IN为32,OUT为33,HLT为35,CALL为3E,RET为3C。问题二出现运行错误可能是指令写错了,或者就是接线的问题,我们找了实验的时候的正确代码,联机写入运行,发现出现相同的问题,于是将前者的原因排除,检查连线,发现OUT单元的D0.D7接口与数据总线的XD7.XD0接口连线有误。七、总结这次组成原理课程设计,我们两人一组,在平时组成原理实验的基础上,完成微程序设计。我们一起查阅所需资料,在实验室编写程序,并在完成后撰写课程设计实验报告。我们积极配合,在一天的时间内,基本完成了本次课程设计要求的基本要求和功能。通过紧张有序的课程设计实践,不仅让我们对基本模型机、微程序的编制、写入过程有了进一步的了解, 也让我们觉得自己的动手能力有了很大的提高。在课堂上,我们学习了一系列与这次课程设计相关的知识,包括微指令格式,微程序控制器工作原理,一台指令的执行过程,以及在指令执行过程时的数据通路等等,但是经过这次课程设计,我们懂得了如何将这些具备的知识融合起来,根据需要的指令来编写机器代码和微程序,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。通过本次课程设计,所取得收获与暴露的不足如下:·收获:深入掌握部件单元电路,并在此基础上,构建简单模型机和复杂模型机。能够根据需要的机器指令,编写微程序。 掌握了机器指令码和微指令码如何编写,能够熟练的联机操作并根据数据通路检验代码的正误,调试程序。·不足:因为对机器指令码与微指令码不熟悉,所以在编码过程中,必须对照着表格,一点点的写出0,1串,致使效率很低,并且很容易发生错误。八.参考文献1计算机组成原理实验指导书,计算机学院编2计算机组成原理,蒋本珊编,清华大学出版社,2004年3月3计算机组织与结构,William Stallings编,高等教育出版社,2001年8月4计算机组成与系统结构,李亚民编,清华大学出版社,2000年4月九.个人总结9.1计算机组成原理课程设计主要任务分配 这次课程设计,由黄进(20085670)和王博君(20085680)两人一组完成,具体任务分配情况如下: 黄进同学:编写实验程序,负责编写CALL指令,OUT指令,ADDR指令的微指令,连接电路,联机运行和测试 王博君同学:设计流程图,负责编写MOV指令,IN指令,RET指令的微指令,连接电路,联机运行和测试9.2计算机组成原理课程设计个人总结 黄进通过本次课程设计,我学会 了综合运用所学知识来设计并实现一个基本模型机,既巩固的知识,也锻炼的自己的动手能力。通过此次锻炼,我有如下几点心得总结:1.在这次计算机组成原理课程设计中,掌握了微程序设计的基本原理及步骤,了解了简单cpu的组成和它们之间的工作原理和协调方式。在自己动手编写微程序的过程中,掌握了微程序的编写运用,模型机的数据路径及微程序控制器的工作原理。在我负责的任务中,编写各个机器指令的微指令时,我开始对于控制信号A,B,C字段各个信号的具体含义并不十分清楚,导致编码时遇到困难。经过老师的讲解后,弄清楚了其含义,顺利编写出了微指令。2.在编写实验程序的过程中,对散转P<1>的理解有错误,导致微程序和机器指令不能对应,经过仔细检查与和同组同学讨论,最后正确做到了各个程序段的入口选择。同时,也认识到了实践的重要性,课堂上学到的知识只有经过亲自动手检验,才会更加印象深刻。3.这次课程设计增强了我的动手能力,尤其是关于硬件方面的设计能力,得到了提高。同时提高了我发现问题,分析问题和解决问题的能力,增强了我的团体合作意识。通过这次实验,我知道了如何从最基础的知识入手逐渐深入到题目的最终实现。理解了团队合作的力量,通过团队的分工合作,互相探讨,互相帮助,一起分享设计思想,排除困难。这也是我与人合作的宝贵经验。4.与此同时,我也发现了自己的一些不足。首先是做事不谨慎的缺点。在最后的调试过程中,发现数据一直无法正确输入,在老师的指点下,发现是电路连接有问题。经过反复检查,发现个别线路连接反了。因为粗心的毛病,最后程序的检测花了很多时间。成败决定于细节,哪怕是一条线路的错连,一个代码的误编,都会导致整个设计错误。所以,注重细节,做事一丝不苟仍是我努力的方向。9.3计算机组成原理课程设计个人总结 王博君这次的课程设计,很好的让我把平时所学的知识融会贯通,并运用于实验与设计,我更加深入的掌握了简单CPU的组成原理,部件单元电路的功能,模型机的设计,机器指令与微指令的编写,下面,我将具体阐述如下。 机器指令存放于主存,CPU必须与主存连接,在CPU的微程序控制器中写入相应的微指令后,就具备了实现机器指令的功能; 画模型机的微指令流程图; 将微程序流程图按照微指令格式转为微指令代码表,编写时必须按照下面的规则编写0、1串,编完后再转为十六进制;A,B,C三个字段对应完成的微操作微指令格式下址地址地段编写二进制代码 根据需要完成的操作,编写机器指令; 根据简单模型机的线路图接线; 将机器指令与微指令写入以txt为后缀的文件中,写入并进行联机操作; 根据数据通路检验并进行调试。通过设计,我懂得了如何通过构建模型机与对应的机器指令、微指令来实现所需指令,更加系统的明白了机器指令、微指令、微操作之间的联系和各自的功能,统筹的知道了计算机的指令执行时的内部工作原理,深化了对计算机组成原理的理解与认识。同时,小组合作设计的过程让我又一次感受了合作的重要性,提高了我的合作能力与沟通交流能力。

    注意事项

    本文(微程序设计组成原理课程设计报告.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开