[嵌入式设计]基于TEC-XP的流水CPU设计——基本部分设计答辩PPT.pptVIP

[嵌入式设计]基于TEC-XP的流水CPU设计——基本部分设计答辩PPT.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[嵌入式设计]基于TEC-XP的流水CPU设计——基本部分设计答辩PPT.ppt

——基本部分设计 基于TEC-XP的流水CPU设计 课题背景 随着集成电路技术的迅速发展,人们对于希望能够在一个芯片上实现一个系统的全部功能的期望值越来越高。本次设计通过使用VHDL语言和FPGA现场可编程门阵列来编写程序,正好可以满足人们的需求。 课题目的 本次设计是在TEC-XP学习机上实现流水CPU的设计。我们将流水CPU设计划分为基本部分设计和扩展部分的设计。其中基本部分设计,包括:指令流水CPU的实现、I/O控制的实现;而扩展部分的设计,包括:冲突处理、中断、通过串口进行通信。 系统的设计方案 本次设计中要设计一个支持指令流水的CPU,首先就要找到一个易于划分流水段的指令系统。我们这次设计采用的是MIPS指令系统。就是专门为支持指令流水设计的指令系统,并在当前的RISC体系结构中得到广泛的应用。 基于流水CPU的设计原理,我们把CPU划分为5个步骤,利用流水锁存器,完整利用整个CPU,提高效率。在工作效率上大大超越单周期CPU和多周期CPU 。 设计的主要内容 一、确定指令功能与格式 二、指令执行步骤 三、运算器模块 四、运算选择器模块 五、PC加法器模块 六、IFID模块 一、确定指令功能与格式 本课题共完成29条基本指令和19条扩展指令的设计。这其中包括了add、and、move、or等指令。 本次设计我们把CPU的流水线设计分为以下5个流水段:取指令阶段、指令译码阶段、指令执行阶段、访存阶段、写回阶段。 每个阶段的功能如下: 1、取指令阶段(InstructionFetch) 在这个阶段中,CPU从指令内存中取出地址为PC的指令,并保存到指令寄存器中。 2、指令译码阶段(InstructionDecode) 在这个阶段中,在指令寄存器中保存的指令送入Decode Unit进行分析,生成指令执行所需的控制信号,同时从RegisterFile中读出指令需要的寄存器操作数的值。 3、指令执行阶段(Execution) 在这一阶段中,ALU执行算术、逻辑以及移位等操作。对于访问内存的指令,要在这一阶段计算出访存的地址。 4、访存阶段(Memory) 访存指令lw、sw在这一阶段访问内存。 5、写回阶段(WriteBack) 这一阶段将通过ALU计算或者访问内存得到的新的寄存器的值写入RegisterFile中。 二、指令执行步骤 指令的执行步骤主要取决于指令的功能和格式。在操作中,每条指令都在2到3个操作步骤内完成。根据指令的功能可在取指,执行和存储一个时钟周期内完成。 第1步:完成取指,用程序技术器PC内容作地址,完成从存储器读出指令并保存到指令寄存器中,并计算出下一条相邻指令的地址。 第2步:执行运算,依照不同指令的具体功能,在运算器,控制器中完成不同的操作。 第3步:执行存储器的读写操作。 三、运算器模块 运算器模块主要是用来完成算数、逻辑、移位等运算功能。其中由Opcode(4位组成的操作码)来判断运算器进行的是什么类型的操作。OperA与OperB是两个操作数,ALUout则是运算输出。 四、运算选择器模块 运算选择器模块是为运算器模块进行预分类处理的。其中,由Forward的值决定着Oper的值,并送到运算器中运算。当Forward值为01时,Oper值为mem的值;当Forward值为10时,Oper值为alu的值;当Forward值为其他值时,Oper值为regval的值。 五、PC加法器模块 PC加法器模块是进行计数的模块。根据控制信号IfJump决定PC值的选取,起初的设计是将进行地址加法的部分放到这一部分当中,在后期的实现当中将这一部分放到的ID阶段进行实现,解决了PC值修改的冲突。 六、IFID模块 此模块又可叫为取值译码模块。它是主要是负责取指译码, 两个寄存器的值和中断的相关数据。在这个阶段中,CPU从指令内存中取出地址为PC的指令,并保存到指令寄存器中。在指令寄存器中保存的指令送入Decode Unit进行分析,生成指令执行所需的控制信号,同时从RegisterFile中读出指令需要的寄存器操作数的值,译出RD(目的寄存器)、RS(源寄存器)。 运算器模块的仿真与调试 教学机测试结果 课题中存在问题的改进意见 在设计过程中我们发现了MIPS16e指令系统是不独立于MIPS32指令系统的,而且具有很高的复杂性,有些在MIPS32指令系统中的应用在MIPS16e指令系统不通用。所以我们通过查阅资料等方法,寻找在这两种标准下的几点区别: 1、指令系统的全部寄存器都是16位的,不同于MIPS16e的32位寄存器。 2、指令系统只能访问8个通用寄存器,不同于MIPS16e的访问范围(8个通用寄存器和另外24个可以通过move访问的寄存器

文档评论(0)

zhangningclb + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档