Skip to content

Commit

Permalink
fix(VLSU): fix segment difftest arbiter logic (#3463)
Browse files Browse the repository at this point in the history
  • Loading branch information
Anzooooo authored Sep 2, 2024
1 parent 885ce8e commit 2e0c78b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
5 changes: 3 additions & 2 deletions src/main/scala/xiangshan/backend/MemBlock.scala
Original file line number Diff line number Diff line change
Expand Up @@ -1417,8 +1417,9 @@ class MemBlockImp(outer: MemBlock) extends LazyModuleImp(outer)
if (env.EnableDifftest) {
sbuffer.io.vecDifftestInfo .zipWithIndex.map{ case (sbufferPort, index) =>
if (index == 0) {
sbufferPort.valid := Mux(vSegmentFlag, vSegmentUnit.io.vecDifftestInfo.valid, lsq.io.sbufferVecDifftestInfo(0).valid)
sbufferPort.bits := Mux(vSegmentFlag, vSegmentUnit.io.vecDifftestInfo.bits, lsq.io.sbufferVecDifftestInfo(0).bits)
val vSegmentDifftestValid = vSegmentFlag && vSegmentUnit.io.vecDifftestInfo.valid
sbufferPort.valid := Mux(vSegmentDifftestValid, vSegmentUnit.io.vecDifftestInfo.valid, lsq.io.sbufferVecDifftestInfo(0).valid)
sbufferPort.bits := Mux(vSegmentDifftestValid, vSegmentUnit.io.vecDifftestInfo.bits, lsq.io.sbufferVecDifftestInfo(0).bits)

vSegmentUnit.io.vecDifftestInfo.ready := sbufferPort.ready
lsq.io.sbufferVecDifftestInfo(0).ready := sbufferPort.ready
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/xiangshan/mem/vector/VSegmentUnit.scala
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,7 @@ class VSegmentUnit (implicit p: Parameters) extends VLSUModule
Option(s"VSegmentUnitPipelineConnect")
)

io.vecDifftestInfo.valid := state === s_send_data && segmentActive
io.vecDifftestInfo.valid := io.sbuffer.valid
io.vecDifftestInfo.bits := uopq(deqPtr.value).uop

/**
Expand Down

0 comments on commit 2e0c78b

Please sign in to comment.