CsrPlugin redo interface do not need next pc calculation
This commit is contained in:
parent
4ad1215873
commit
41008551c1
|
@ -447,9 +447,7 @@ class CsrPlugin(val config: CsrPluginConfig) extends Plugin[VexRiscv] with Excep
|
||||||
|
|
||||||
|
|
||||||
if(supervisorGen) {
|
if(supervisorGen) {
|
||||||
redoInterface = pcManagerService.createJumpInterface(pipeline.execute)
|
redoInterface = pcManagerService.createJumpInterface(pipeline.execute, -1)
|
||||||
redoInterface.valid := False
|
|
||||||
redoInterface.payload.assignDontCare()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exceptionPendings = Vec(Bool, pipeline.stages.length)
|
exceptionPendings = Vec(Bool, pipeline.stages.length)
|
||||||
|
@ -643,10 +641,13 @@ class CsrPlugin(val config: CsrPluginConfig) extends Plugin[VexRiscv] with Excep
|
||||||
satpAccess(CSR.SATP, 31 -> satp.MODE, 22 -> satp.ASID, 0 -> satp.PPN)
|
satpAccess(CSR.SATP, 31 -> satp.MODE, 22 -> satp.ASID, 0 -> satp.PPN)
|
||||||
|
|
||||||
|
|
||||||
if(supervisorGen) onWrite(CSR.SATP){
|
if(supervisorGen) {
|
||||||
execute.arbitration.flushNext := True
|
redoInterface.valid := False
|
||||||
redoInterface.valid := True
|
redoInterface.payload := decode.input(PC)
|
||||||
redoInterface.payload := execute.input(PC) + 4
|
onWrite(CSR.SATP){
|
||||||
|
execute.arbitration.flushNext := True
|
||||||
|
redoInterface.valid := True
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue