OSCPU / ysyx

一生一芯的信息发布和内容网站
123 stars 8 forks source link

分支预测错误情况下的difftest调用 #14

Open wangpengabc opened 3 years ago

wangpengabc commented 3 years ago

遇到分支预测错误的情况,需要flush掉流水线,如何暂停difftest的指令提交,等到新的流水指令到来的时候再继续提交指令,以及difftest调用NEMU继续执行

wangpengabc commented 3 years ago

已经找到解决办法,只需要将提交指令那一级流水的valid 位作为DifftestInstrCommit Bundle中的valid位的输入即可:

difftest.io.valid     := RegNext(io.in.valid)
difftest.io.pc        := RegNext(io.in.bits.mem_wb_memu_data.wb_commit_difftest.pc)
  difftest.io.instr     := RegNext(io.in.bits.mem_wb_memu_data.wb_commit_difftest.instr)