The periphery bus for IO devices.
Parameters used by the peripherial bus.
case class PeripheryBusParams(
beatBytes: Int,
blockBytes: Int,
masterBuffering: BufferParams = BufferParams.default,
slaveBuffering: BufferParams = BufferParams.none,
arithmetic: Boolean = true,
frequency: BigInt = BigInt(100000000) // 100 MHz as default bus frequency
) extends TLBusParams {
}
- beatBytes
Int
(param) number of bytes per beat. - blockBytes
Int
(param) number of bytes per burst. - masterBuffering
BufferParams.default
(param) buffer depth on the master (inner) side. - slaveBuffering
BufferParams.none
(param) buffer depth on the slave (outer) side. - arithmetic
true
(param) support arithmetic atomic operations. - frequency
BigInt(100000000)
(param) 100MHz as default bus frequency.
class PeripheryBus(params: PeripheryBusParams)(implicit p: Parameters) extends TLBusWrapper(params)
- toFixedWidthSingleBeatSlave
(w:Int) => TLOutwardNode
attach a fragmenter to change beat size tow
. - toLargeBurstSlave
(m:Int) => TLOutwardNode
attach a fragmenter to change block size tom
. - fromSystemBus
() => TLInwardNode
get the peripheral bus inward port attached with an atomic automata.
The internal connections:
[atomics] master_buffer xbar slave_buffer slave_ww []
systemBus ==> -------------- ==> ------------- *==> ---- ==>* ------------ ==>* ----------- ==> ---------- ==> FixWidthSlave
AtomicAutomata Buffer Xbar Buffer | WidthWidget Fragmenter
|
| []
\---------------- ==> ---------- ==> LargeBurstSlave
Fragmenter
Provides buses that serve as attachment points, for use in traits that connect individual devices or external ports.
- pbus
PeripheryBus
the peripheral bus.
Last updated: 10/08/2017
CC BY-NC-SA 4.0, © (2017) Wei Song
Apache 2.0, © (2016-2017) SiFive, Inc
BSD, © (2012-2014, 2016) The Regents of the University of California (Regents)