Merge pull request #611 from ucb-bar/expose-back-side-bus
rename l2FrontendBus as fsb, expose bsb
This commit is contained in:
commit
986e1754be
@ -26,11 +26,18 @@ trait CoreplexNetwork extends HasCoreplexParameters {
|
|||||||
val mmio = TLOutputNode()
|
val mmio = TLOutputNode()
|
||||||
val mmioInt = IntInputNode()
|
val mmioInt = IntInputNode()
|
||||||
val l2in = TLInputNode()
|
val l2in = TLInputNode()
|
||||||
|
val l2out = TLOutputNode()
|
||||||
|
|
||||||
intBar.intnode := mmioInt
|
intBar.intnode := mmioInt
|
||||||
|
|
||||||
// Allows a variable number of inputs from outside to the Xbar
|
// Allows a variable number of inputs from outside to the Xbar
|
||||||
l1tol2.node :=* l2in
|
private val l2in_buffer = LazyModule(new TLBuffer)
|
||||||
|
l1tol2.node :=* l2in_buffer.node
|
||||||
|
l2in_buffer.node :=* l2in
|
||||||
|
|
||||||
|
private val l2out_buffer = LazyModule(new TLBuffer(BufferParams.flow, BufferParams.none))
|
||||||
|
l2out :*= l2out_buffer.node
|
||||||
|
l2out_buffer.node :*= l1tol2.node
|
||||||
|
|
||||||
cbus.node :=
|
cbus.node :=
|
||||||
TLBuffer()(
|
TLBuffer()(
|
||||||
@ -96,6 +103,7 @@ trait CoreplexNetworkBundle extends HasCoreplexParameters {
|
|||||||
val mmio = outer.mmio.bundleOut
|
val mmio = outer.mmio.bundleOut
|
||||||
val interrupts = outer.mmioInt.bundleIn
|
val interrupts = outer.mmioInt.bundleIn
|
||||||
val l2in = outer.l2in.bundleIn
|
val l2in = outer.l2in.bundleIn
|
||||||
|
val l2out = outer.l2out.bundleOut
|
||||||
}
|
}
|
||||||
|
|
||||||
trait CoreplexNetworkModule extends HasCoreplexParameters {
|
trait CoreplexNetworkModule extends HasCoreplexParameters {
|
||||||
@ -130,7 +138,7 @@ trait BankedL2CoherenceManagers extends CoreplexNetwork {
|
|||||||
val node = TLOutputNode()
|
val node = TLOutputNode()
|
||||||
for (bank <- 0 until l2Config.nBanksPerChannel) {
|
for (bank <- 0 until l2Config.nBanksPerChannel) {
|
||||||
val offset = (bank * l2Config.nMemoryChannels) + channel
|
val offset = (bank * l2Config.nMemoryChannels) + channel
|
||||||
in := TLBuffer(BufferParams.flow)(l1tol2.node)
|
in := TLBuffer(BufferParams.flow, BufferParams.none)(l1tol2.node)
|
||||||
node := TLFilter(AddressSet(offset * l1tol2_lineBytes, mask))(out)
|
node := TLFilter(AddressSet(offset * l1tol2_lineBytes, mask))(out)
|
||||||
}
|
}
|
||||||
node
|
node
|
||||||
|
@ -36,7 +36,8 @@ trait HasTopLevelNetworks extends HasPeripheryParameters {
|
|||||||
val socBus = LazyModule(new TLXbar) // Wide or unordered-access slave devices (TL-UH)
|
val socBus = LazyModule(new TLXbar) // Wide or unordered-access slave devices (TL-UH)
|
||||||
val peripheryBus = LazyModule(new TLXbar) // Narrow and ordered-access slave devices (TL-UL)
|
val peripheryBus = LazyModule(new TLXbar) // Narrow and ordered-access slave devices (TL-UL)
|
||||||
val intBus = LazyModule(new IntXbar) // Interrupts
|
val intBus = LazyModule(new IntXbar) // Interrupts
|
||||||
val l2FrontendBus = LazyModule(new TLBuffer) // Master devices talking to the frontside of the L2
|
val fsb = LazyModule(new TLBuffer(BufferParams.none)) // Master devices talking to the frontside of the L2
|
||||||
|
val bsb = LazyModule(new TLBuffer(BufferParams.none)) // Slave devices talking to the backside of the L2
|
||||||
val mem = Seq.fill(nMemoryChannels) { LazyModule(new TLXbar) } // Ports out to DRAM
|
val mem = Seq.fill(nMemoryChannels) { LazyModule(new TLXbar) } // Ports out to DRAM
|
||||||
|
|
||||||
// The peripheryBus hangs off of socBus;
|
// The peripheryBus hangs off of socBus;
|
||||||
|
@ -214,7 +214,7 @@ trait PeripherySlaveAXI4 extends HasTopLevelNetworks {
|
|||||||
masters = Seq(AXI4MasterParameters(
|
masters = Seq(AXI4MasterParameters(
|
||||||
id = IdRange(0, 1 << config.idBits))))))
|
id = IdRange(0, 1 << config.idBits))))))
|
||||||
|
|
||||||
l2FrontendBus.node :=
|
fsb.node :=
|
||||||
TLSourceShrinker(1 << config.sourceBits)(
|
TLSourceShrinker(1 << config.sourceBits)(
|
||||||
TLWidthWidget(config.beatBytes)(
|
TLWidthWidget(config.beatBytes)(
|
||||||
AXI4ToTL()(
|
AXI4ToTL()(
|
||||||
@ -282,7 +282,7 @@ trait PeripherySlaveTL extends HasTopLevelNetworks {
|
|||||||
clients = Seq(TLClientParameters(
|
clients = Seq(TLClientParameters(
|
||||||
sourceId = IdRange(0, 1 << config.idBits))))))
|
sourceId = IdRange(0, 1 << config.idBits))))))
|
||||||
|
|
||||||
l2FrontendBus.node :=
|
fsb.node :=
|
||||||
TLSourceShrinker(1 << config.sourceBits)(
|
TLSourceShrinker(1 << config.sourceBits)(
|
||||||
TLWidthWidget(config.beatBytes)(
|
TLWidthWidget(config.beatBytes)(
|
||||||
l2FrontendTLNode))
|
l2FrontendTLNode))
|
||||||
|
@ -15,7 +15,8 @@ trait RocketPlexMaster extends HasTopLevelNetworks {
|
|||||||
|
|
||||||
val coreplex = LazyModule(new DefaultCoreplex)
|
val coreplex = LazyModule(new DefaultCoreplex)
|
||||||
|
|
||||||
coreplex.l2in :=* l2FrontendBus.node
|
coreplex.l2in :=* fsb.node
|
||||||
|
bsb.node :*= coreplex.l2out
|
||||||
socBus.node := coreplex.mmio
|
socBus.node := coreplex.mmio
|
||||||
coreplex.mmioInt := intBus.intnode
|
coreplex.mmioInt := intBus.intnode
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user