设计是基于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三者相加的位置。
三种指令如何操作了解了,下面设计就会很简单,根据不同的指令的不同数据通路,让主控单元输出不同控制数据正常流入下一级。
讲的比较简略,如有不理解的欢迎提问或者留言。
MAX9918, MAX9919, MAX9920 -20V
中断唤醒系统demo
上海集成电路综合性产业基地启动仪式举行
嵌入式系统常规电源设计
内存频率是什么_内存频率高有什么好处
自制CPU(一)单周期
沈望傅:我用我的中国情结带动中国创新
芯海科技推出全国产化高可靠SAR ADC CS1795X和CS1790X
LED屏的点间距和视距计算
传博通将在5月中旬搬到美国
胜负已分?Micro LED和OLED谁才是胜者?
远程抄表-LoRa水电气无线抄表解决方案
基于电动汽车快速充电技术研究及发展趋势
基于一种宽带数字接收机的信道化设计
交易所自动搬砖交易软件开发量化策略交易软件
神奇的创世之城VR虚拟土地
曙光智算AC平台突破传统受限加速科学计算
关于绝缘端子在不一样应用范畴中的界定
智慧数字化校园科技加强校园安全
LCL滤波器的使用要求