tilelink2: Fragmenter client must request global FIFO
This commit is contained in:
parent
36f4584bb1
commit
2d8a49cc06
@ -37,11 +37,13 @@ class TLFragmenter(val minSize: Int, val maxSize: Int, val alwaysMin: Boolean =
|
|||||||
supportsPutFull = expandTransfer(m.supportsPutFull),
|
supportsPutFull = expandTransfer(m.supportsPutFull),
|
||||||
supportsPutPartial = expandTransfer(m.supportsPutPartial),
|
supportsPutPartial = expandTransfer(m.supportsPutPartial),
|
||||||
supportsHint = expandTransfer(m.supportsHint))
|
supportsHint = expandTransfer(m.supportsHint))
|
||||||
def mapClient(c: TLClientParameters) = c.copy(
|
|
||||||
sourceId = IdRange(c.sourceId.start << fragmentBits, c.sourceId.end << fragmentBits))
|
|
||||||
|
|
||||||
val node = TLAdapterNode(
|
val node = TLAdapterNode(
|
||||||
clientFn = { c => c.copy(clients = c.clients.map(mapClient)) },
|
// We require that all the responses are mutually FIFO
|
||||||
|
// Thus we need to compact all of the masters into one big master
|
||||||
|
clientFn = { c => c.copy(clients = Seq(TLClientParameters(
|
||||||
|
sourceId = IdRange(0, c.endSourceId << fragmentBits),
|
||||||
|
requestFifo = true))) },
|
||||||
managerFn = { m => m.copy(managers = m.managers.map(mapManager)) })
|
managerFn = { m => m.copy(managers = m.managers.map(mapManager)) })
|
||||||
|
|
||||||
lazy val module = new LazyModuleImp(this) {
|
lazy val module = new LazyModuleImp(this) {
|
||||||
|
Loading…
Reference in New Issue
Block a user