2023北航计组p3课上部分

P3课上部分总结

(课下等p4结束后发布)

T1 qaq

题面

格式:qaq $s1 $s2 $s3
R型指令,func忘了
取GPR[rs]平方低32位,GPR[rt]平方低32位。两者相与,结果存到rd中

实现

非常显然,就是在ALU里新增一号运算,然后修改一下cpu controller,在R型指令里新增对这条指令的支持,就可以了。

T2 booez

题面

格式:booez $t1 $t2 label
I型指令,op忘了
若 $t1[15:0] 里1有奇数个1,$t2[31:16]有偶数个0,则跳转到label,否则不跳转

实现

我们非常自然会联想到beq,这两条指令非常相似。此处笔者在写博客的时候才发现自己课上做复杂了。
只需要模仿beq,但是ALU采用新的运算,判断题意给的表达式是否成立,若成立则结果为0(目的是让zero为0),否则为1即可。
笔者是新增了ALU的输出信号(摊手),有点笨

T3 csws

题面

格式:csws rt offset(base)
例:csws $t0 0($t1)
若$t0[31]==1,则将$t0保存到 Mem[$t1+offset]
否则,将0保存到Mem[$t1+offset]
(应该能看懂我凌乱的表达吧)

实现

这个和sw非常接近,只需要新增一个控制数据文件输入数据选择的信号,然后新增一个多路选择器,选择是将寄存器数据直接存进去还是做题目的计算后存进去,就可以了。

总结

虽然知道助教很辛苦,但是还是想吐槽一下,考试过程中前一个小时没法提交这种比较逆天的错误。最后延期了半个小时,不知道会不会大家造成影响。

update:是机房光纤的锅,和可爱的助教没有关系:)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰雾与红

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值