Better fix
This commit is contained in:
parent
391cff69d3
commit
9fff419346
|
@ -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._
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue