Fix DebugPlugin step by step

This commit is contained in:
Dolu1990 2020-04-07 12:13:40 +02:00
parent 2dac7dae32
commit 5aa0b86d96
1 changed files with 3 additions and 4 deletions

View File

@ -213,18 +213,17 @@ class DebugPlugin(val debugClockDomain : ClockDomain, hardwareBreakpointCount :
iBusFetcher.haltIt()
}
when(stepIt) {
//Assume nothing will stop the CPU in the decode stage
when(stepIt && iBusFetcher.incoming()) {
iBusFetcher.haltIt()
when(decode.arbitration.isValid) {
haltIt := True
decode.arbitration.flushNext := True
}
}
//Avoid having two C instruction executed in a single step
if(pipeline(RVC_GEN)){
val cleanStep = RegNext(stepIt && decode.arbitration.isFiring) init(False)
decode.arbitration.removeIt setWhen(cleanStep)
execute.arbitration.flushNext setWhen(cleanStep)
}
io.resetOut := RegNext(resetIt)