Fix DebugPlugin step by step
This commit is contained in:
parent
2dac7dae32
commit
5aa0b86d96
|
@ -213,18 +213,17 @@ class DebugPlugin(val debugClockDomain : ClockDomain, hardwareBreakpointCount :
|
||||||
iBusFetcher.haltIt()
|
iBusFetcher.haltIt()
|
||||||
}
|
}
|
||||||
|
|
||||||
when(stepIt) {
|
when(stepIt && iBusFetcher.incoming()) {
|
||||||
//Assume nothing will stop the CPU in the decode stage
|
iBusFetcher.haltIt()
|
||||||
when(decode.arbitration.isValid) {
|
when(decode.arbitration.isValid) {
|
||||||
haltIt := True
|
haltIt := True
|
||||||
decode.arbitration.flushNext := True
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Avoid having two C instruction executed in a single step
|
//Avoid having two C instruction executed in a single step
|
||||||
if(pipeline(RVC_GEN)){
|
if(pipeline(RVC_GEN)){
|
||||||
val cleanStep = RegNext(stepIt && decode.arbitration.isFiring) init(False)
|
val cleanStep = RegNext(stepIt && decode.arbitration.isFiring) init(False)
|
||||||
decode.arbitration.removeIt setWhen(cleanStep)
|
execute.arbitration.flushNext setWhen(cleanStep)
|
||||||
}
|
}
|
||||||
|
|
||||||
io.resetOut := RegNext(resetIt)
|
io.resetOut := RegNext(resetIt)
|
||||||
|
|
Loading…
Reference in New Issue