Pass D$ backpressure to D-channel, rather than asserting
This commit is contained in:
parent
edcd2c696c
commit
ac4339a8e7
@ -432,9 +432,10 @@ class DCacheModule(outer: DCache) extends HellaCacheModule(outer) {
|
||||
}
|
||||
|
||||
// data refill
|
||||
val doRefillBeat = grantIsRefill && tl_out.d.fire()
|
||||
dataArb.io.in(1).valid := doRefillBeat
|
||||
assert(dataArb.io.in(1).ready || !doRefillBeat)
|
||||
// note this ready-valid signaling ignores E-channel backpressure, which
|
||||
// benignly means the data RAM might occasionally be redundantly written
|
||||
dataArb.io.in(1).valid := tl_out.d.valid && grantIsRefill && canAcceptCachedGrant
|
||||
when (grantIsRefill && !dataArb.io.in(1).ready) { tl_out.d.ready := false }
|
||||
dataArb.io.in(1).bits.write := true
|
||||
dataArb.io.in(1).bits.addr := s2_req_block_addr | d_address_inc
|
||||
dataArb.io.in(1).bits.way_en := s2_victim_way
|
||||
|
Loading…
Reference in New Issue
Block a user