Invalidate head when dequeued but allowShift was false

This commit is contained in:
Hansung Kim
2023-04-28 15:46:45 -07:00
parent a49931ae60
commit fec788d648
2 changed files with 46 additions and 4 deletions

View File

@@ -213,6 +213,11 @@ class CoalShiftQueue[T <: Data]( gen: T,
(io.queue.enq.fire && !paddedUsed(i + 1) && used(i)) || pad(validAfterInv)(i + 1),
(io.queue.enq.fire && paddedUsed(i - 1) && !used(i)) || validAfterInv(i)
)
// additionally, head entry should get invalidated when dequeue fired
// but queue didn't shift (e.g. because allowShift was false)
when (io.queue.deq.fire && !shift) {
valid(0) := false.B
}
}
when(io.queue.enq.fire) {