Better fix

This commit is contained in:
Dolu1990 2019-03-29 09:18:44 +01:00
parent 391cff69d3
commit 9fff419346
1 changed files with 6 additions and 4 deletions

View File

@ -734,7 +734,7 @@ class CsrPlugin(config: CsrPluginConfig) extends Plugin[VexRiscv] with Exception
//Used to make the pipeline empty softly (for interrupts) //Used to make the pipeline empty softly (for interrupts)
val pipelineLiberator = new Area{ val pipelineLiberator = new Area{
when(interrupt && decode.arbitration.isValid){ when(interrupt){
decode.arbitration.haltByOther := True decode.arbitration.haltByOther := True
} }
@ -767,9 +767,6 @@ class CsrPlugin(config: CsrPluginConfig) extends Plugin[VexRiscv] with Exception
} }
when(hadException || interruptJump){ when(hadException || interruptJump){
//Avoid having the fetch confused by the incomming privilege switch
fetcher.haltIt()
jumpInterface.valid := True jumpInterface.valid := True
jumpInterface.payload := (if(!xtvecModeGen) xtvec.base @@ "00" else (xtvec.mode === 0 || hadException) ? (xtvec.base @@ "00") | ((xtvec.base + trapCause) @@ "00") ) jumpInterface.payload := (if(!xtvecModeGen) xtvec.base @@ "00" else (xtvec.mode === 0 || hadException) ? (xtvec.base @@ "00") | ((xtvec.base + trapCause) @@ "00") )
beforeLastStage.arbitration.flushAll := True beforeLastStage.arbitration.flushAll := True
@ -803,6 +800,11 @@ class CsrPlugin(config: CsrPluginConfig) extends Plugin[VexRiscv] with Exception
} }
} }
//Avoid having the fetch confused by the incomming privilege switch
when(hadException){
fetcher.haltIt()
}
lastStage plug new Area{ lastStage plug new Area{
import lastStage._ import lastStage._