Improve CsrPlugin CombinatorialPaths
This commit is contained in:
parent
7096c63d50
commit
372063582c
|
@ -643,6 +643,7 @@ class CsrPlugin(config: CsrPluginConfig) extends Plugin[VexRiscv] with Exception
|
||||||
interruptJump := interrupt && pipelineLiberator.done
|
interruptJump := interrupt && pipelineLiberator.done
|
||||||
|
|
||||||
val hadException = RegNext(exception) init(False)
|
val hadException = RegNext(exception) init(False)
|
||||||
|
pipelineLiberator.done.clearWhen(hadException)
|
||||||
|
|
||||||
|
|
||||||
val targetPrivilege = CombInit(interruptTargetPrivilege)
|
val targetPrivilege = CombInit(interruptTargetPrivilege)
|
||||||
|
@ -666,7 +667,7 @@ class CsrPlugin(config: CsrPluginConfig) extends Plugin[VexRiscv] with Exception
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when(hadException || (interruptJump && !exception)){
|
when(hadException || interruptJump){
|
||||||
jumpInterface.valid := True
|
jumpInterface.valid := True
|
||||||
jumpInterface.payload := (if(!mtvecModeGen) mtvec.base @@ "00" else (mtvec.mode === 0 || hadException) ? (mtvec.base @@ "00") | ((mtvec.base + trapCause) @@ "00") )
|
jumpInterface.payload := (if(!mtvecModeGen) mtvec.base @@ "00" else (mtvec.mode === 0 || hadException) ? (mtvec.base @@ "00") | ((mtvec.base + trapCause) @@ "00") )
|
||||||
memory.arbitration.flushAll := True
|
memory.arbitration.flushAll := True
|
||||||
|
|
Loading…
Reference in New Issue