Propagate sourceGen backpressure into MultiCoalescer
This commit is contained in:
@@ -730,6 +730,7 @@ class CoalescerSourceGen(
|
|||||||
// TODO: make sourceGen.io.reclaim Decoupled?
|
// TODO: make sourceGen.io.reclaim Decoupled?
|
||||||
|
|
||||||
io.outReq <> io.inReq
|
io.outReq <> io.inReq
|
||||||
|
io.inReq.ready := io.outReq.ready && sourceGen.io.id.valid
|
||||||
// overwrite bits affected by sourcegen backpressure
|
// overwrite bits affected by sourcegen backpressure
|
||||||
io.outReq.valid := io.inReq.valid && sourceGen.io.id.valid
|
io.outReq.valid := io.inReq.valid && sourceGen.io.id.valid
|
||||||
io.outReq.bits.source := sourceGen.io.id.bits
|
io.outReq.bits.source := sourceGen.io.id.bits
|
||||||
@@ -1031,10 +1032,10 @@ class Uncoalescer(
|
|||||||
// TODO: inflight table is really a more sophisticated sourcegen. Let it
|
// TODO: inflight table is really a more sophisticated sourcegen. Let it
|
||||||
// also take care of sourcegen instead of having a separte pass
|
// also take care of sourcegen instead of having a separte pass
|
||||||
// (CoalescerSourceGen).
|
// (CoalescerSourceGen).
|
||||||
when(!inflightTable.io.enq.ready) {
|
// when(!inflightTable.io.enq.ready) {
|
||||||
assert(!io.coalReq.valid,
|
// assert(!io.coalReq.valid,
|
||||||
"tried to fire a coalesced request when uncoalescer is not ready")
|
// "tried to fire a coalesced request when uncoalescer is not ready")
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Construct a new entry for the inflight table using generated coalesced request
|
// Construct a new entry for the inflight table using generated coalesced request
|
||||||
def generateInflightTableEntry: InflightCoalReqTableEntry = {
|
def generateInflightTableEntry: InflightCoalReqTableEntry = {
|
||||||
|
|||||||
Reference in New Issue
Block a user