计算机组成原理课程设计41846.doc_第1页
计算机组成原理课程设计41846.doc_第2页
计算机组成原理课程设计41846.doc_第3页
计算机组成原理课程设计41846.doc_第4页
计算机组成原理课程设计41846.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东英才学院 课程设计(论文)设 计 题 目 :微程序控制运算器的设计课 程 名 称 : 计算机组成原理 院 (系) 部 : 信息工程学院 学 生 姓 名 : 邵 帅 班 级 : 11科计技本科班 专 业 : 计算机科学与技术 成 绩 : 指 导 教 师 : 王若成 设 计 时 间 : 2013年12月 山东英才学院教务处制二O一三年十二月微程序控制的运算器的设计摘 要本设计详细介绍了在可编程ispLSI1032E系统下,采用层次化设计方法,通过把八位全加器、八位计数器、八位寄存器作为底层电路,以设计八位计算机运算器的设计原理和设计过程,其中ALU为8位的加法器,具有加法和加1功能,两操作数由八位寄存器R0、R1提供,其结果放入R2中,具体何种操作可由微命令任意设定。Abstract The detailed design of the programmable ispLSI1032E system, the use of hierarchical design method, the eight bit full adder, eight bit counter, eight bit registers as the underlying circuit, the design of eight bit computing the design principle and the design process, where ALU is a 8 bit adder, additive and plus 1function, the two operand is provided by the eight bit registers R0, R1, and the results in R2, which can be set arbitrarily by micro operation command.目 录一、设计任务与要求11、运算器的结构12、微程序控制器13、微指令格式24、编写微指令25、调试步骤2二、设计方案与论证31、确定总体结构32、寄存器设置33、微程序计数器的设置34、加法器设置3三、逻辑设计41、微程序计数器的设计42、八位寄存器的设计63、加法器的设计7四、设计过程与步骤81、创建新项目82、选择虚拟器件83、设计原理图输入84、源文件编译95、设计项目适配106、编程下载107、在实验箱上进行逻辑验证11五、所遇到的问题及解决办法11六、结论与心得11七、参考文献13八、教师评语14九、附录15附录一:微程序控制的运算器设计原理图15附录二:本课程设计软硬件平台介绍18一、设计任务与要求设某计算机运算器,其中ALU为8位的加法器,具有加法和加1功能,两操作数由八位寄存器R0、R1提供,其结果放入R2中,具体何种操作可由微命令任意设定。1、运算器的结构 运算器的结构,如图1所示。图1.运算器的结构图2、微程序控制器 微程序控制器的结构图,如图2所示。图2.微程序控制器框图当模式开关置于统调时,控制存储器ROM2#、ROM1#、IR15-8、IR7-0、L15-8、L7-0、CPIR、A0A7均连入1032E系统中。其中,自行设计的微程序计数PC向控制存储器提供8位微地址,在控存读信号的作用下,读出一条长16位的微指令代码,并在打入命令CPIR的作用下,送入IR15-8、IR7-0。L15-8、L7-0用于显示微指令寄存器IR15-8、IR7-0的内容。每当按一次脉冲键便产生一个负脉冲,该脉冲的作用是: 1.作为读控存的命令。 2.负脉冲当作CPIR将读出的微指令打入微指令寄存器IR。 3.负脉冲的上升沿使PC1形成下一条微指令的地址。 4.负脉冲反相后的上升沿作为寄存器打入脉冲。3、微指令格式 微指令格式,如图3所示。图3.微指令格式字段分配:mIR15-mIR8:定义为8位操作数;mIR7:为1,C0=1;为0 C0=0;mIR6:为1,产生CPR0;mIR5:为1,产生CPR1;mIR4:为1,产生CPR2;4、编写微指令实验要求:用二进制代码写出下面3 条指令的微程序:例如55+AAR2执行过程55R0 AAR1 R0+R1R2 结束。 0101 0101 0100 00001010 1010 0010 00000000 0000 0001 00005、调试步骤首先,将模式开关置于统调,涉及运算器和uPC逻辑线路并下载至1032E中;再将模式开关置于分调,键入微指令十六进制代码至空存ROM2#、ROM1#中,微指令从0号单元开始存放。然后,将模式开关置于统调,按一次RET2键将uPC置零,每按一次脉冲键读出一条微指令。当微程序执行完时检查并记录结果。二、设计方案与论证1、确定总体结构程序设计的总体结构,如图4所示。图4.系统的总体结构2、寄存器设置R0、R1、R2 为8位的通用寄存器;R0、R1 R2为不带复位的寄存器。系统中R0、R1为通用寄存器,可存放源操作数、R2为通用寄存器,可存放中间结果或最终结果;每个寄存器均由8个D触发器构成。3、微程序计数器的设置uPC采用的是8位二进制异步加法计数器,微程序计数器的值通过加1实现的。复位信号有效时,计数器uPC清零。4、加法器设置采用8位带串行进位的并行加法器。 为实现加、减法运算,系统用于计算的操作数一律采用补码表示。加法器由8个一位全加器构成,一位全加器之间采用串行进位。微程序设计技术,是利用软件设计方法来设计硬件的一门技术。基本思想是仿照通常的编制程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里,当机器运行时,又一条一条读出这些微指令,并由此产生全机所需的各种微操作控制信号,使相应部件执行所规定的操作。该课程设计采用微程序设计方法,通过确定总体结构、逻辑设计、确定控制方式、测试用例等几个步骤,完成简单运算器及其外围设备的电路设计,实现55R0 AAR1 R0+R1R2等指令的简单功能,该方案是可行的。三、逻辑设计1、微程序计数器的设计在数字电路中,把记忆输入CP脉冲个数的操作叫做计数,能实现技术操作的电子电路称为计数器。主要特点:1. 一般的说,计数器除了输入计数脉冲cp信号之外,很少有另外的输入信号,其输出通常也都实现态的函数,而输入计数脉冲CP是当作触发器的时钟信号对待的。2. 从电路组成看,其主要组成单元是时钟触发器。计数就是计CP脉冲的个数,每来一个CP脉冲,计数器就加一个1,随着输入计数脉冲个数的增加,计数器中的数值也增大,当计数器计满时再来CP脉冲,计数器归零的同时给高位进位。根据二进制递增计数规律。以三位二进制加法计数器为例,如其状态图如图5所示.100110/1/1/1/11011111/1/1000000110100011/1/1Q2Q1Q0 /C 图5. 三位二进制加法计数器状态图a)选择触发器D触发器,凡是具有置0 置1功能的电路,都叫D触发器特性方程:Qn+1=DCP上升沿时刻有效b)求时钟方程由于要求构成的是异步计数器,显然各个触发器的时钟信号都应使用输入计数脉冲CP.c)求输出方程C=Q2nQ1nQ0nd)求状态方程 CP 根据状态图的规定,可画出异步三位二进制计数器的原理图,如图6所示。图6.异步三位二进制计数器的原理图 同理,八位二进制计数器原理图如图7所示: 图7. 八位二进制计数器原理图 八位二进制计数器电子元器件生成,如图8所示:图8. 八位二进制计数器电子元器件2、八位寄存器的设计寄存器:具有寄存功能的电路。寄存器是一种基本的时序电路,在各种数字系统中几乎无所不在,因为任何数字系统,都必须把需要处理的数据,代码寄存器来,以便随时取用。特点:(1)具有存储功能的触发器组合构成。(2)任务是暂时存储二进制数据或代码,部队存储内容进行处理,逻辑功能比较单一。本实验要求设计一个8位的寄存器,其中d7d0、q7q0分别为寄存器的输入和输出,cp为寄存器的时钟脉冲。图电路为8位寄存器的线路原理图,如图9所示。图9. 八位寄存器的线路原理图 八位寄存器电子元器件生成,如图10所示:图10. 八位寄存器电子元器件3、加法器的设计在项目管理器窗口中,打开菜单中的Source项,选择new命令,在弹出对话框中选择Schematic,并按OK随即弹出一个对话框,要求输入原理图名称,只要在文件名栏输入如:Add8.sch并按保存按钮即进入原理图编辑窗口。将如下八位全加器原理图输入即可。加法器的原理图,如图11所示。图11. 全加器原理图当将八位全加器原理图编辑完成并确认没有错误之后,在原理图编辑窗口中,打开File菜单,点击其中的Matching Symbol菜单项,此时,便生成了新的Add8元器件,出现在Local库中。如图12所示:图12. 全加器Add8电子元器件四、设计过程与步骤1、创建新项目(1)启动ispEXPERT SYSTEM;在Windows98下,选Lattice Semiconductor项的ispEXPERT SYSTEM,单击后进入ispEXPERT SYSTEM Project Navigator 窗口。(2)建立新项目,建立新项目的方法是:选择项目管理其窗口中上排的菜单选项用鼠标单击File菜单下的New Project,弹出Create New Project对话框,首先从最上部的小窗口选择驱动器(假设使用D盘),然后用鼠标左键单击建“新文件夹”按钮,在对话框的提示栏中键入USER,并选择OK,这样就在D盘的根目录下建立了一个“USER”文件夹.(3)在“文件名”窗口键入项目名“wcxkzysq.syn”以取代原来默认的New.syn,按“打开”确认,新项目建立完毕并自动进入项目管理器。2、选择虚拟器件进入项目管理器之后,在其左边窗口可以看到虚拟器件:Virtual Device。现在需要选择使用的具体目标器件,双击Virtual Device,弹出Choose Device对话框。我们的实验平台所用的器件为ispLSI1032E,则可在Device family窗口中选择ispLSI1000(1000系列),再在Device窗口中按动Device器件目录中滚动条找到ispLSI1032E-70LJ84并选择OK即可。如图13所示:图12. 选择器件窗口3、设计原理图输入在ispEXPERT中如何使用原理图输入的方法进行设计,主要步骤如下:(1)原理图命名在项目管理器窗口下,选择总菜单Source项下的New选项,此时将出现New Source对话框。选择其中的Schematic(原理图),并单击ok确认。接着在随后弹出的对话框的“文件名(N)”项下键入原图名wcxkzysq.sch以取代原来的*.sch,并选择保存,即进入原理图编辑窗口。(2)在原理图编辑器的图纸上添加器件,如附录一。选择器件的方法:在块接工具条中,点击符号打开器件库(或选择Add菜单下的Symbol),器件库的上部窗口Library表示器件的类别,下部窗口Symbol表示该类别所对应的器件。本设计中先从Library中找到Add8,count8,Register8等电子元器件。(3)添加连线;在快捷工具条中点击画线按钮(或选择Add菜单中的Wire项),进入画线状态,单击左键定义连线的始端,将光标移至县的另一端,单击左键便可定义这根线。在连完一根线之后,单击右键就可以结束这一连线,开始下一根线,依次完成全部的连线。(4)为信号命名;单击快捷工具栏中的信号命名按钮(或选择Add菜单下的Net Name项),这时窗口的下方出现命令:Net Name-Enter Name=,在此键入“uir8”并按回车键,连线名“uir8”会粘在鼠标的光标上,将十字光标的中心点移至该信号线的连线头上,单击鼠标即可。用同样的方法在其余连线上加上信号名。(5)添加I/O Markers;单击快捷工具按钮(或选择菜单下的I/O Markers项),在弹出的对话框中选择“input”,在将鼠标的光标移至输入信号的连线末端(位于连线和连线名之间),并单击左键,这是会出现一个输入I/O Markers框,标记里面是连线名,用同样的方法分别为其它加上输入I/O Markers。至此,原理图就全部输入完毕。存盘退出即可。(6) 引脚所定 锁定ispLSI器件引脚方法:单击快捷工具按钮(或在菜单条上选择Add 项中的Symbol Attribute 命令),这是会出现一个Symbol Attribute Editor对话框。单击需要定义属性的输出I/O Pad,对话框里会出现一系列可供选择的属性,选中“SynarioPin”属性,并且把文本框中的“*”替换成所需要的管脚号如34,然后用鼠标在图纸的任意位置单击一下,I/O Pad小方框中的“*”便被34代替,(注意:不同的器件,其各引脚的标号定义和功能都是不一样的,在定义管脚时请查阅ispLSI1032E的引脚标号和功能)。单击其余需要锁定引脚的I/O Pad,重复上述步骤,完成全部引脚锁定工作,最后选择File菜单下的Save选项存盘。4、源文件编译 源文件建立完毕之后,下一步是执行每一个源文件所对应的处理过程。在主项目管理器中选择不同的源文件分别进行编译。编译结束后如果出现两个绿色的勾,说明你的设计完全正确。如果出现的是黄色的!,说明设计中有“Warnings”出现,一般情况下不会有问题。如果出现的是红色的“”,则说明设计中存在着严重的错误,必须对照automake.log报告仔细分析,找出设计中的错误予以排除,然后重新编译。5、设计项目适配所谓适配就是将以上完成的逻辑设计针对以选定的器件,在EDA软件的帮助下,形成能写进芯片的熔丝图文件(*.jed),本例中也就是将设计项目适配到isp1032E中去。这是一个将逻辑设计转化成为适合于具体isp器件的设计过程。通过适配,将生成标准的JED熔丝图文件,以供编程到具体的芯片中之用。适配的具体步骤是: (1)基本参数设定;对于以选择的器件ispLSI1032E。选用鼠标左键单击右窗栏的(wcxkzq.sch)项,使其变深色,再单击右边栏的Compiler Schematic。此时,栏下部的Properties按钮会变为深色,单击此按钮后会跳出一窗口,其中的各有关项设定如下:“ISP”设为True,即在系统可编程的3条编程下载线定义为专用下载口线,不可用为第二功能。“ISP Except Y2”设为False,其功能同上。“Pullup”设为True,其功能可从“Help”键中得到。“Security” 设为True,即加密允许。点击Close退出。(2)适配控制属性参数设定。 用鼠标单击右窗栏的ispLSI1032E-70LJ84项,使其变深色,再单击右边栏的Fit Design。与上相同,栏下部的Properties按钮会变为深色,单击此按钮后会跳出一窗口。请根据其中的有关的内容,对Properties窗口中的各有关项目进行设定,为方便设计,在这里也可点击Defaults键使各项取默认项。点击Close退出。 用鼠标单击左边窗口的ispLSI1032E-70LJ84项,使其变深色,然后双击右边栏的Fit Design,使项目管理器完成对源文件的编译、连接、和逻辑分割,最后将所有设计的逻辑进行适配或者说映射到所选择的PLD器件中去。适配结束后,如果通不过,在有关项目上会出现红色的叉,并弹出automake.log报告,找出问题的所在,重新进行适配运行,直到成功。如果出现黄色的惊叹号,这也算成功。但您不妨看一下automake.log报告,了解一下warnings产生的原因。6、编程下载 所谓编程下载就是将已完成的逻辑设计“烧录”到具体器件中去。其基本步骤如下:(1)按照微机组成原理实验系统的使用说明,将实验系统的工作电源连接好,再使用专用下载电缆将实验系统和微机连接好。(2)用鼠标双击ISP Daisy Chain Download编程下载项目,此时弹出一窗口“LSC ISP Daisy Chain Download Version7.1”。(3)用鼠标点击菜单中的Configuration项,并选择Scan Board,或单击窗口工具栏中Scan按钮。如果电路板连接无误,这时电路板上的ISP器件的型号应当出现在菊花连下载窗口中。(4)在Operation下拉框中,选择pv选项。(5)单击Browse按钮,将弹出一个对话框,在该对话框中选择在上面设计中生成的JED文件add.jed,并按“打开”按钮退出。此时,点击Command菜单项目下的Run Operation,或直接点击工具栏上的按钮(上面有一个跑步的小人),下载软件机会将JED文件以串行方式烧写到ISP器件中去。如果下载成功,会出现“PASS”字样,然后在实验箱上进行验证,如果硬件检查结果正确则设计全部完成。7、在实验箱上进行逻辑验证 (1)将模式开关置于分调,通过右下脚的小键盘,键入微指令十六进制代码至空存ROM2#、ROM1#中,微指令从0号单元开始存放。代码如下:0101 0101 0100 00001010 1010 0010 00000000 0000 0001 0000(2)将模式开关置于统调,按一次RET2键将uPC置零,每按一次脉冲键读出一条微指令,根据状态指示灯验证是否得到预期的结果。五、所遇到的问题及解决办法 当原理图画完并且编译运行通过,连接单片机系统进行下载测试时,发现系统只能输出一条记录。通过分析发现,导致这种情况出现的原因主要是,计数器没有进行状态变化,程序指针无法指向下一条指令,导致指令无法送入寄存器。解决办法是更换八位计数器的器件,换为具有清零端的register中的FD11,通过调试成功解决问题,实验成功。六、结论与心得通过本课程的学习让我们了解了微程序控制的运算器的历史、原理和编码的步骤还有它的实际应用和不足之处、也使我对微程序控制的运算器有了重新的认识。通过对论文的不断更改我反思了很多,也学到了很多。通过本课程的学习,我也认识到了自己还有很多不足,还有很多需要进一步学习的地方,在接下来的学习中我会花更多时间来认真加深知识的理解与运用。历时将近一个月的时间终于将实验调试成功并把这篇论文写完,在论文的写作过程中遇到了很多的困难和障碍,但是遇到不懂不会的,通过上网查资料、询问老师同学,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师王若成老师,他对我进行了无私的指导和帮助,无论是课堂上精彩的讲解还是对我所反错误的单独指导,我都有了很大的进步。感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。由于我的学术水平有限,所写论文难免有不足之处,请各位老师和同学批评和指正!七、参考文献1 唐朔飞.计算机组成原理 M2版.北京:高等教育出版社,2008.2 刘荣兴,等.计算机组成原理课程设计M.山东:山东大学出版,2002.83 孙德文,等.微型计算机技术M.修订版.北京:高等教育出版社,2006.4 白中英,等.计算机组成原理M.3版.北京:科学出版社,2002.八、教师评语九、附录附录一:微程序控制的运算器设计原理图微程序控制的运算器设计原理图,如图所示:微程序控制的运算器设计原理图附录二:本课程设计软硬件平台介绍1、硬件平台本课程设计的硬件平台主要由“在系统可编程”大规模集成电路ispLSI1032E系统与单片机系统构成。1032E是其核心器件,其逻辑功能主要由1032E之外的开关及显示器来体现。所谓“在系统可编程”(In_system programmability简称ISP),是指在用户自己设计的目标系统中或线路板上为重构逻辑而对逻辑器件进行编程或反复编程。因此,在用户ispLSI构成系统时可以先装配后编程。即器件安装或焊接在线路板中后,仍然可让用户在不改变电路系统设计或线路板硬件设置的情况下,为重构逻辑而对ispLSI进行编程或反复编程。正因为这种独特的系统可编程技术,使得使用ispLSI的数字逻辑系统比使用常规的数字集成电路在设计上更方便,逻辑功能更灵活,硬件的功能可以随时加以修改或按预定的程序改变其组态。2、软件系统操作系统采用windows XP;与硬件平台配套使用的应用软件为Lattice Semiconductor公司的ispDesignEXPERT Version 8.4.06.39_DE_STARTER和ispEXPERT Compiler Version 8.4.06.39。3、硬件平台结构 硬件平台结构,如图14所示。图14.实验平台的结构框图该实验平台主要有两部分组成:可编程ispLSI1032E系统,就其结构上讲包括ispLSI1032E芯片、开关、LED(发光二极管)、时钟及复位键等;单片机系统,包括单片机、存储器、显示及键盘等。(1)可编程ispLSI1032E系统 输入装置 开关:K158和K70 分别接在1032E的3326脚与6053脚。时钟信号:连续时钟发生器经跨接插座J2后连接在1032E的20脚,占空比1:1;单脉冲发生器接在1032E的73脚,按一下脉冲键,便产生一个宽度为20ms的负脉冲。复位键RET2:接在1032E的24脚上,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论