diff --git a/src/main/scala/vexriscv/plugin/Fetcher.scala b/src/main/scala/vexriscv/plugin/Fetcher.scala index e0d8e92..2a50962 100644 --- a/src/main/scala/vexriscv/plugin/Fetcher.scala +++ b/src/main/scala/vexriscv/plugin/Fetcher.scala @@ -289,9 +289,11 @@ abstract class IBusFetcherImpl(val catchAccessFault : Boolean, // } if(injectionPort != null){ - injectionPort.ready := !decode.arbitration.isStuck + val state = RegNext(injectionPort.valid) init(False) clearWhen(injectionPort.ready) + injectionPort.ready := !decode.arbitration.isStuck && state when(injectionPort.valid) { decode.arbitration.isValid := True + decode.arbitration.haltItself setWhen(!state) decode.insert(INSTRUCTION) := injectionPort.payload } } diff --git a/src/main/scala/vexriscv/plugin/IBusSimplePlugin.scala b/src/main/scala/vexriscv/plugin/IBusSimplePlugin.scala index 49978f0..b965819 100644 --- a/src/main/scala/vexriscv/plugin/IBusSimplePlugin.scala +++ b/src/main/scala/vexriscv/plugin/IBusSimplePlugin.scala @@ -109,8 +109,8 @@ class IBusSimplePlugin(interfaceKeepData : Boolean, catchAccessFault : Boolean, catchAccessFault = catchAccessFault, resetVector = BigInt(0x80000000l), keepPcPlus4 = false, - decodePcGen = true, - compressedGen = true, + decodePcGen = false, + compressedGen = false, cmdToRspStageCount = 1, rspStageGen = false, injectorReadyCutGen = false,