提交 bec36597 编写于 作者: L LinJiawei

Brq: fix 'sel-lo' bug

上级 d4e97231
......@@ -122,14 +122,20 @@ class Brq extends XSModule {
}
val headIdxMaskHi = headIdxMaskHiVec.asUInt()
val headIdxMaskLo = (~headIdxMaskHi).asUInt()
val skipMaskHi = headIdxMaskHi & skipMask
val skipMaskLo = headIdxMaskLo & skipMask
val commitIdxHi, commitIdxLo, commitIdx = Wire(UInt(BrqSize.W))
commitIdxHi := PriorityEncoder(~(headIdxMaskHi & skipMask))
commitIdxLo := PriorityEncoder(~(headIdxMaskLo & skipMask))
commitIdxHi := PriorityEncoder(~skipMaskHi)
commitIdxLo := PriorityEncoder(~skipMaskLo)
val useLo = (skipMaskHi | headIdxMaskLo) === Fill(BrqSize, 1.U(1.W))
commitIdx := Mux(stateQueue(commitIdxHi).isWb && brQueue(commitIdxHi).misPred,
commitIdxHi,
Mux(stateQueue(commitIdxLo).isWb && brQueue(commitIdxLo).misPred,
Mux(useLo && stateQueue(commitIdxLo).isWb && brQueue(commitIdxLo).misPred,
commitIdxLo,
headIdx
)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册