多级流水CPU设计-单片机课程设计[毕业设计,精品论文].doc

多级流水CPU设计-单片机课程设计[毕业设计,精品论文].doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
摘  要 目 录 1. 前言 1 1.1 实验目的 1 1.2 实验环境 1 2. 流水线工作原理 3 3. 系统设计 5 3.1 概念设计 5 3.2 指令系统 5 3.3 时序设计 6 4. 结构设计 9 4.1 总体逻辑结构设计 9 4.2 分模块结构设计 11 5. 代码实现及测试 13 5.1 代码实现 13 5.2 程序测试 19 5.3 测试结果 21 6. 实验总结 25 前言 实验目的 本实验需要自己设计并最终用FPGA实现一个CPU芯片。利用已有的计算机组成原理知识,以及对计算机系统结构的初步学习,设计一个包括指令系统、寻址方式、寄存器组、存储系统、流水线结构等的CPU。设计的CPU必须具有复位功能,以便使用TEC-CA实验台上的“CPU复位”按钮对CPU复位,使CPU处于调试前的初始状态。CPU复位脉冲按负脉冲设计。 熟练掌握VHDL硬件描述语言,对CPU的各个功能模块进行代码编写,并学会将各个功能部分组织连接成一个完整CPU体系结构。 学会利用先进的硬件设计工具软件Quartus II对程序进行仿真和调试。并熟练掌握FPGA-CPU在“TEC-CA开放式CPU实验教学系统”上的调试方法。 调试程序DebugController 使用该软件对外部存储器进行读写操作,并能监控FPGA-CPU的状态和通过设置断点调试FPGA-CPU正在执行的程序。 流水线工作原理 流水线处理技术是在重叠、先行控制的基础上发展起来的,包括指令控制功能和功能处理过程都可采用流水处理。 在先行控制方式中将一条指令的执行分为“分析”和“执行”两个子过程。这两个子过程分别使用指令分析器和运算器两个独立的部件来完成。所以可以利用多条指令执行时,在时间上相互错开,轮流重叠地利用这两个独立部件,来加快程序的执行速度。若实现“分析”与“执行”中的每一个子过程都需要Δt1=T/2时间,则4条指令流水执行只需5Δt1,比起4条指令顺序执行所需的8Δt1时间少了近一半。 如果将指令的“分析”子过程再进一步划分成“指令译码”和“取操作数”两个子过程,分别由“译码”和“取数”两个独立的子部件执行,并使所有子部件的经过时间都改进成Δt2=T/4,指令执行顺序如图2-1所示。 图表 21指令执行顺序图 图2-2是指令流水执行的时空图。图中横坐标为时间,纵坐标为空间(即各个子过程),标有数字的方格说明占用该空间与时间的任务号,在本例中表示机器处理的第1、第2、第3、第4、第5条指令,最多可以有4条指令在不同的部件中同时进行处理。这样计算机每隔Δt2就能输出一条指令的执行结果。 图表 22指令流水执行时空图 按此思路,流水线的定义可以具体描述为:将一个复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个独立部件同时进行不同的操作,完成对不同子过程的处理,这种工作方式称为流水线。 在计算机流水线的实际应用过程中,为平滑缓冲各子部件之间的速度差异,在子部件之间往往都要设置高速接口缓冲器或一定容量的高数缓冲器来保存中间结果。也就是通常所说的n级流水处理中的级间寄存器。 系统设计 概念设计 指令流水的基本思路是把每条指令划分为几个执行步骤,这些步骤在执行过程中使用不同的资源从而在时间上能重叠起来,提高了整体工作负载的吞吐率。 我们将每条指令划分为“取指”、“译码”、“执行”、“访存”、“写回”这五个执行步骤。如图3-1所示。 图表 31多级流水CPU设计图 指令系统 指令系统设计的好坏影响整个系统各个方面的性能。我们采用了实验指导书中的指令系统。如表3-2所示: 汇编语句 操作码 功能描述 指令类型 ADD DR,SRDR+SR(DR 算术逻辑指令 SUB DR,SRDR-SR(DR DEC DRDR-1(DR INC DRDR+1(DR CMP DR,SRDR-SR 比较 AND DR,SRDR and SR(DR 逻辑与 OR DR,SRDR or SR(DR 逻辑或 XOR DR,SRDR xor SR ( DR 异或 TEST DR,SRDR and SR, 测试 SHL DR逻辑左移,最低位补0,最高位移入C SHR DR 逻辑右移,最高位补0,最低位移入C SAR DR算

文档评论(0)

好老师 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档