Fix PutBlock after Release bug
There is logic in the broadcast hub to skip the outer acquire if there is an outgoing release, since the data will be written out through the release channel. However, this will cause an issue in the case of PutBlock requests. If the tail beats of the PutBlock show up after the outer release has already been sent, the data will be corrupted. The fix is to make the outer release block if there are pending inner PutBlock beats.
This commit is contained in:
@ -175,6 +175,7 @@ class BufferedBroadcastAcquireTracker(trackerId: Int)(implicit p: Parameters)
|
||||
|
||||
// If there was a writeback, forward it outwards
|
||||
outerRelease(
|
||||
block_orel = pending_put_data(vol_ognt_counter.up.idx),
|
||||
coh = outer_coh.onHit(M_XWR),
|
||||
data = data_buffer(vol_ognt_counter.up.idx))
|
||||
|
||||
|
Reference in New Issue
Block a user