Skip to content

Commit

Permalink
[rtl] fix mask update in lane.
Browse files Browse the repository at this point in the history
  • Loading branch information
qinjun-li committed Dec 16, 2024
1 parent 8f13557 commit f1e1608
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 deletions.
2 changes: 1 addition & 1 deletion t1/src/Lane.scala
Original file line number Diff line number Diff line change
Expand Up @@ -686,7 +686,7 @@ class Lane(val parameter: LaneParameter) extends Module with SerializableModule[
val maskFailure: Bool = stage0.updateLaneState.maskExhausted && stage0.enqueue.fire
// update mask register
when(maskUpdateFire) {
record.mask.bits := DontCare
record.mask.bits := maskDataVec(index)
}
when(maskUpdateFire ^ maskFailure) {
record.mask.valid := maskUpdateFire
Expand Down
7 changes: 3 additions & 4 deletions t1/src/T1.scala
Original file line number Diff line number Diff line change
Expand Up @@ -964,10 +964,9 @@ class T1(val parameter: T1Parameter)
probe.valid := write.fire && write.bits.mask.orR
probe.bits := write.bits.instructionIndex
}
probeWire.instructionValid := maskAnd(
!slots.last.state.wMaskUnitLast && !slots.last.state.idle,
indexToOH(slots.last.record.instructionIndex, parameter.chainingSize)
).asUInt
probeWire.instructionValid := slots
.map(s => maskAnd(!s.state.idle, indexToOH(s.record.instructionIndex, parameter.chainingSize)).asUInt)
.reduce(_ | _)
probeWire.responseCounter := responseCounter
probeWire.laneProbes.zip(laneVec).foreach { case (p, l) => p := probe.read(l.laneProbe) }
probeWire.lsuProbe := probe.read(lsu.lsuProbe)
Expand Down

0 comments on commit f1e1608

Please sign in to comment.