RooKie_Z的CO理论作业合集

RooKie_Z的CO理论作业合集

写在前面

这是 RooKie_Z 的CO理论作业合集,记录了 2023秋肖利民老师班 所有的CO理论作业和 RooKie_Z 对应的作答.

阅读更多
RooKie_Z P7 基于Verilog CPU的MIPS微体系设计文档

RooKie_Z P7 基于Verilog CPU的MIPS微体系设计文档

写在前面

这是RooKie_Z的P7基于Verilog CPU的MIPS微体系设计文档,在课上测试中本CPU取得了 满分💯的成绩。

总体设计概述

本次要求实现的指令集为add, sub, and, or, slt, sltu, lui,addi, andi, ori,lb, lh, lw, sb, sh, sw,mult, multu, div, divu, mfhi, mflo, mthi, mtlo,beq, bne, jal, jr,mfc0, mtc0, eret, syscall ,在P6的基础上新增加了mfc0, mtc0, eret, syscall

CPU部分与P6相比添加了重要模块CP0协处理器,其余的端口定义和转发、阻塞规则与P6相同,详见附带的P6设计文档,在此处不再赘述

考虑到宏观PC的处理,我把CP0协处理器放置在了M

数据通路

添加转发后的数据通路

CP0插入流水线与异常码流水

做这样设计的原因如下:

我们称M级为宏观级. F, D, E级的指令”未曾执行”, M级指令“正在执行”, W级指令“执行完毕”. 相当于把流水线CPU封装为一个单周期 CPU.

MIPS微系统整体设计

阅读更多
RooKie_Z P6 Verilog流水线CPU设计文档

RooKie_Z P6 Verilog流水线CPU设计文档

写在前面

这是RooKie_Z的P6流水线CPU设计文档,在课上测试中本CPU取得了 满分💯的成绩。

总体设计概述

本次要求实现的指令集为add, sub, and, or, slt, sltu, lui,addi, andi, ori,lb, lh, lw, sb, sh, sw,mult, multu, div, divu, mfhi, mflo, mthi, mtlo,beq, bne, jal, jr,可以看到,除了一部分位移指令和异常相关的指令,指令集内各类型指令均有覆盖。由于P5架构较为完备,大部分指令已于P5课下实现,故本次设计仅添加乘除单元MDU,并结合课程组所给tb对数据通路稍作修改,并未进行大的重构。

阅读更多
RooKie_Z P5 Verilog流水线CPU设计文档

RooKie_Z P5 Verilog流水线CPU设计文档

写在前面

这是RooKie_Z的P5流水线CPU设计文档,在课上测试中本CPU取得了 满分💯的成绩。

总体设计概述

本次要求实现的指令集为add, sub, ori, lw, sw, beq, lui, jal, jr, nop,与P3、P4相同,但是工作量却天差地别,我的黑眼圈也很能说明这点。言归正传,在考虑到更好地满足转发的要求与利于课上进行增量开发的前提下,我对于P4的代码进行了一部分重构,但总体上更改并不大,具体的设计方案参考自高小鹏老师的PPT和CoekJan学长的博客,他们的详尽叙述帮我省下了大量琢磨AT方法的时间。CoekJan,YYDS!!!

阅读更多
RooKie_Z P4 Verilog单周期CPU设计文档

RooKie_Z P4 Verilog单周期CPU设计文档

写在前面

这是RooKie_Z的P4单周期CPU设计文档,在课上测试中本CPU取得了 满分💯的成绩。

总体设计概述

本次要求实现的指令集为 add, sub, ori, lw, sw, beq, lui, jal, jr, nop,要求与P3相似,考虑到我P3已经实现了这些指令,并且经过课上测试,感觉CPU总体架构模块化较为清晰完备,故本次暂不重构直接翻译Logisim电路

同样的,与P3类似本次依然做好了实现 各类branch,jump,link指令和诸如lb,lbu,lh,lhu,sb,sh等指令的工作,以备不时之需,但相较Logisim,显然Verilog里面的指令可以更加花哨,这时就比较考验写组合逻辑电路的手法了

阅读更多