自制CPU(一)单周期

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自制CPU(一)单周期

设计是基于MIPS指令集的单周期,多周期,流水线CPU。最终实现也是在FPGA板上跑了一个小程序,开发版使用的是basys3.基础指令集等在此就不在为大家细说了,他人的博客已经讲述的很清晰了。代码和数据通路均已上传至CSDN下载频道,大家可以自行下载。我们这里先讲CPU究竟是如何进行操作的。

 CPU再进行一次操作的时候实际上就是在指令存储器中读出一条指令,在取出这条指令之后,将他的前6为拆分出来,进行判别他是哪种指令。根据前六位操作码的分类来控制数据通路中的不同部件的使能来控制数据的流向。

 R型指令就是选择将Rs和Rt作为地址访问寄存器堆,读出其中数据输入至ALU的数据读口,由func来确定ALU的运算的类型,计算结束之后再将输出的数据写会到寄存器堆的Rw地址对应的存储单元。

 I型指令的基础指令和R型的基本形似,只不过将数据busB改换为立即数进行零扩展后的数据操作,写回至Rt中。I型指令的非常重要的三条指令为load(加载),store(存储),beq(分支跳转)。load,store指令将Rs和立即数符号扩展后相加作为内存单元地址,load指令是将内存单元内容送至Rt,store是将Rt中的值送至内存单元。beq指令是将rshert之中的数据进行比较,相等则跳转到立即数和当前指令所处位置和1三者相加的位置。

 三种指令如何操作了解了,下面设计就会很简单,根据不同的指令的不同数据通路,让主控单元输出不同控制数据正常流入下一级。

 讲的比较简略,如有不理解的欢迎提问或者留言。

相关文档
最新文档