自己动手写CPU
文章平均质量分 78
自己动手一步步实现一个MIPS_CPU
艺术家都是疯子
加油^0^~人生有梦各自精彩
展开
-
自己动手写CPU_step6.2_算术运算指令之乘法
define EXE_MUL 6'b000010 // rs × rt -> rd(保存结果低32位)`define EXE_MULTU 6'b011001 // rs × rt -> {HI,LO} 无符号。原创 2024-09-07 17:07:50 · 833 阅读 · 0 评论 -
自己动手写CPU_step6.1_算数运算指令
例:0x0000,0001 CLZ指令结果:31 0x8000,ffff CLZ指令结果是0。例:0xffff,0000 CLO指令结果:16 0x0000,ffff CLO指令结果是0。70402021 CLO clo(reg2) => reg4 结果应该是16。SLT指令:(rs < rt) => rd(1/0) 如果rs小于rt寄存器的值,将1写入rd否则写0。原创 2024-09-02 19:50:45 · 593 阅读 · 0 评论 -
自己动手写CPU_step6_算术运算指令
define EXE_ADD 6'b100000 // rs + rt -> rd(检查溢出)`define EXE_ADDU 6'b100001 // rs + rt -> rd(不检查溢出)`define EXE_SLT 6'b101010 // (rs < rt) -> rd(比较结果为1/0)`define EXE_CLZ 6'b100000 // clz(rs) -> rd(从最高位开始直到遇到1,之前所有0的个数保存至rd)原创 2024-09-01 23:48:07 · 416 阅读 · 0 评论 -
自己动手写CPU_step5_移动指令
MEM WB 如果安正常的执行顺序,mfhi指令的EX阶段使用的hi寄存器值是第一条指令的结果,但是,这和我们实际需要的结果不同,我们需要的hi寄存器值应该是上一条指令产生的结果。即如果需要HILO寄存器的值,先判断有没有MEM阶段来的值,再判断有没有WB阶段来的值,如果都没有的话就是正常获取HILO寄存器的值,也即没有冲突。在EX_MEM、MEM、MEM_WB模块中添加由对应的HILO寄存器的值和写使能信号传导至HILO寄存器。仿真结果可知,前8条指令的运行结果与预期的一致。原创 2024-08-28 20:00:12 · 1184 阅读 · 0 评论 -
自己动手写CPU_step4_逻辑运算|移位指令
/R型指令通过OP=6'd0标识`define EXE_SPECIAL 6'b000000 //R型指令//I型指令通过OP字段区分`define EXE_ANDI 6'b001100 //与指令(立即数参与) rs and imm -> rt`define EXE_ORI 6'b001101 //或指令(立即数参与) rs or imm -> rd`define EXE_XORI 6'b001110 //异或指令(立即数参与) rs xor imm -> rt。原创 2024-08-22 22:45:13 · 844 阅读 · 0 评论 -
自己动手写CPU_step3_流水线数据相关问题
在第2篇的仿真测试结果中,我们是重复且循环读写一组寄存器,这些寄存器之间不存在数据相关问题,但是,如:以上四条指令都存在数据相关,即指令1中的结果尚未写入r1,指令2、3、4便读取了r1寄存器的值,这个值是错误的,导致这些指令执行结果错误。原创 2024-08-19 23:15:01 · 648 阅读 · 0 评论 -
自己动手写CPU_step2_构建SOPC
由图可知,在210ns时,开始了第一次取指令操作pc=0,230ns时开始了第二次的取指令pc=4,同时进行指令1的译码操作,以此类推;在290ns时是指令1的写回阶段,此时的结果是reg1(来源初始寄存器全0)和reg2(来源指令中的立即数)的或运算结果,结果写回指定的地址寄存器。上一篇中实现的五级流水线需要一个输入,这个输入是指令数据,而指令数据是通过取指阶段的PC控制的,PC会一直循环的取指令。至此,CPU中第一条指令ORI设计完成,后续将实现更多指令!最小SOPC实现之后,就可以开始仿真测试了。原创 2024-08-19 21:18:50 · 371 阅读 · 1 评论 -
自己动手写CPU_step1_五级流水线设计
为什么要做这么个东西?本人正在准备秋招,复习408的计组时,看到冯诺依曼架构(运算器、控制器、存储器和输入输出),突发奇想,学了这么久计算机,自己能不能做一个计算机呢?于是网上搜了一下,使用FPGA就可以实现自制CPU,正好手头有一个正点原子的开发板,于是开启了这个自己动手写CPU的探索之旅。总而言之,兴趣使然。如果你也和我一样,对FPGA感兴趣,对CPU实现感兴趣,欢迎交流讨论。原创 2024-08-19 20:38:44 · 376 阅读 · 0 评论