roife / roife.github.io

My blog
10 stars 2 forks source link

posts/buaa-co-lab-p5/ #15

Open utterances-bot opened 1 year ago

utterances-bot commented 1 year ago

[BUAA-CO-Lab] P5 流水线 CPU-lite | ROIFE BLOG

上机总结 1 失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败

https://roife.github.io/posts/buaa-co-lab-p5/

lrg11 commented 1 year ago

想问下,blezalc或者blztal这类,需要通过rs,rt值来进行条件跳转的,会涉及到转发逻辑的修改吗,还是都可以在D阶段完成,条件成立都是用P C_F来加上立即数吧,课上发现,总是和标准答案在PC上小4,标答也没有写ra寄存器,不知道是条件判断错误还是,跳转或不跳转的地址没算对

roife commented 1 year ago

想问下,blezalc或者blztal这类,需要通过rs,rt值来进行条件跳转的,会涉及到转发逻辑的修改吗,还是都可以在D阶段完成,条件成立都是用P C_F来加上立即数吧,课上发现,总是和标准答案在PC上小4,标答也没有写ra寄存器,不知道是条件判断错误还是,跳转或不跳转的地址没算对

@lrg11 转发相关的只要正确设置了 T_use 和 T_new,应该就可以了

lrg11 commented 1 year ago

带link类的条件转移指令,是不是需要在w阶段,写ra寄存器的时候再判断一次rt的值,看条件是否满足,来决定是否写ra寄存器还是不写,我好像在d阶段判断,给regwrite使能信号赋值,但是没有流水到w阶段。另外大佬你的T_use和T_new是通过D_branch信号设置的,所以只要把blztal这类指令的D_branch也赋值,是不是就算正确设置了

lrg11 commented 1 year ago

或许大佬有P5,P6的课上实现,特别是转移指令,谢谢

roife commented 1 year ago

或许大佬有P5,P6的课上实现,特别是转移指令,谢谢

@lrg11 需要修改的部分我已经全部写在博客中了

lrg11 commented 1 year ago

好的,谢谢,还想问问部分跳转指令条件不满足要清空延迟槽是对F_instr进行清空吗,那不满足条件,是PC_D+4还是PC_D+8

lrg11 commented 1 year ago

呜呜,又挂在了条件跳转并link,PC总是比标准答案多了4

roife commented 1 year ago

好的,谢谢,还想问问部分跳转指令条件不满足要清空延迟槽是对F_instr进行清空吗,那不满足条件,是PC_D+4还是PC_D+8

@lrg11 感觉这个应该看指令的 RTL 是怎么定义的。

呜呜,又挂在了条件跳转并link,PC总是比标准答案多了4

先手动模拟一遍标准答案的(应该有下发的 MARS 插件,或者用通过的同学的 CPU 跑),然后再和自己的 CPU 对拍

lrg11 commented 1 year ago

标准答案 ?谢谢大佬