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:
parent
cb81ea516c
commit
f0e9a2a081
@ -175,6 +175,7 @@ class BufferedBroadcastAcquireTracker(trackerId: Int)(implicit p: Parameters)
|
|||||||
|
|
||||||
// If there was a writeback, forward it outwards
|
// If there was a writeback, forward it outwards
|
||||||
outerRelease(
|
outerRelease(
|
||||||
|
block_orel = pending_put_data(vol_ognt_counter.up.idx),
|
||||||
coh = outer_coh.onHit(M_XWR),
|
coh = outer_coh.onHit(M_XWR),
|
||||||
data = data_buffer(vol_ognt_counter.up.idx))
|
data = data_buffer(vol_ognt_counter.up.idx))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user