Skip to content

Commit

Permalink
VSUopQueue: fix bug in isLastElem and lastUop flags
Browse files Browse the repository at this point in the history
  • Loading branch information
linjuanZ authored and huxuan0307 committed Nov 20, 2023
1 parent 8921891 commit 43bc933
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/main/scala/xiangshan/mem/vector/VSUopQueue.scala
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ class VsUopQueue(implicit p: Parameters) extends VLSUModule {
x.uop := io.storeIn.bits.uop
x.uop.vpu.vl := io.storeIn.bits.src_vl.asTypeOf(VConfig()).vl
x.uop.numUops := numUops
x.uop.lastUop := (io.storeIn.bits.uop.uopIdx +& 1.U) === numUops
x.uop.lastUop := (uopIdx +& 1.U) === numUops
x.flowMask := flowMask
x.byteMask := GenUopByteMask(flowMask, alignedType)(VLENB - 1, 0)
x.data := Mux(isNewVd, io.storeIn.bits.src_vs3, vs3Reg)
Expand Down Expand Up @@ -320,7 +320,12 @@ class VsUopQueue(implicit p: Parameters) extends VLSUModule {
alignedType = issueAlignedType
)
x.uopQueuePtr := flowSplitPtr
x.isLastElem := (elemIdx +& 1.U) === Mux(issueEntry.usWholeReg, (issueNFIELDS << log2Up(VLENB)),(issueNFIELDS << issueVLMAXLog2))
// x.isLastElem := (elemIdx +& 1.U) === Mux(issueEntry.usWholeReg, (issueNFIELDS << log2Up(VLENB)),(issueNFIELDS << issueVLMAXLog2))
x.isLastElem := Mux(
issueEntry.usWholeReg,
(elemIdx +& 1.U) === (issueNFIELDS << log2Up(VLENB)),
issueUop.lastUop && (flowIdx +& 1.U) === issueFlowNum // the last element in the last uop
)
}
}

Expand Down

0 comments on commit 43bc933

Please sign in to comment.