文章目录:
  1. 搭建过程
猜猜是什么原因导致我现在刚准备睡()

实验要求:

使用logism自主搭建出一个支持所给指令集的32位CPU,并通过课下正确性测试。

我的CPU: https://github.com/lixu10/Logisim_SingleClock_CPU

搭建过程

一头雾水,根本不会搭啊。幸亏有学长的教程:一本书教你通关计组实验 - Kamonto's Little Planet ,简直是神!

然而搭完之后提交得到了WA的结果,经过一天多的Debug,终于解决了所有问题。

太晚了懒得写了()

遇到的第一个BUG:负责地址计算结果多选器的控制信号里面,J指令对应的控制信号写错了。

二:评测平台需要的返回数据MemData理解错了,应该是内存写入值,写成内存读到的值了。

三:NPC计算新的PC值时,处理beq跳转地址出错,应该是与PC+4相加,我用的PC与之相加。

四:还是上面的位置,beq跳转地址从imm26扩展为32位,开始写成0扩展了,应该是符号扩展。

另外Debug过程中还发现了评测机的一个BUG,似乎可以轻松卡出来AC(),希望我上机考试不要用到