Open wangpengabc opened 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)
遇到分支预测错误的情况,需要flush掉流水线,如何暂停difftest的指令提交,等到新的流水指令到来的时候再继续提交指令,以及difftest调用NEMU继续执行