Merge pull request #976 from freechipsproject/system-buffer
SystemBus: add output buffering
This commit is contained in:
commit
173f185b17
@ -12,7 +12,7 @@ case class SystemBusParams(
|
|||||||
beatBytes: Int,
|
beatBytes: Int,
|
||||||
blockBytes: Int,
|
blockBytes: Int,
|
||||||
masterBuffering: BufferParams = BufferParams.default,
|
masterBuffering: BufferParams = BufferParams.default,
|
||||||
slaveBuffering: BufferParams = BufferParams.flow // TODO should be BufferParams.none on BCE
|
slaveBuffering: BufferParams = BufferParams.default
|
||||||
) extends TLBusParams
|
) extends TLBusParams
|
||||||
|
|
||||||
case object SystemBusParams extends Field[SystemBusParams]
|
case object SystemBusParams extends Field[SystemBusParams]
|
||||||
@ -29,12 +29,14 @@ class SystemBus(params: SystemBusParams)(implicit p: Parameters) extends TLBusWr
|
|||||||
|
|
||||||
private val tile_fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.allUncacheable))
|
private val tile_fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.allUncacheable))
|
||||||
private val port_fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.all))
|
private val port_fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.all))
|
||||||
|
private val pbus_fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.all))
|
||||||
master_splitter.node :=* tile_fixer.node
|
master_splitter.node :=* tile_fixer.node
|
||||||
master_splitter.node :=* port_fixer.node
|
master_splitter.node :=* port_fixer.node
|
||||||
|
pbus_fixer.node :*= outwardWWNode
|
||||||
|
|
||||||
def toSplitSlaves: TLOutwardNode = outwardSplitNode
|
def toSplitSlaves: TLOutwardNode = outwardSplitNode
|
||||||
|
|
||||||
val toPeripheryBus: TLOutwardNode = outwardWWNode
|
val toPeripheryBus: TLOutwardNode = pbus_fixer.node
|
||||||
|
|
||||||
val toMemoryBus: TLOutwardNode = outwardNode
|
val toMemoryBus: TLOutwardNode = outwardNode
|
||||||
|
|
||||||
|
@ -97,5 +97,5 @@ trait HasSystemErrorSlave extends HasSystemBus {
|
|||||||
private val params = p(ErrorParams)
|
private val params = p(ErrorParams)
|
||||||
val error = LazyModule(new TLError(params, sbus.beatBytes))
|
val error = LazyModule(new TLError(params, sbus.beatBytes))
|
||||||
|
|
||||||
error.node := TLBuffer(BufferParams.pipe)(sbus.toSlave)
|
error.node := sbus.toSlave
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user