Add TLBuffers on the L1 backends and blind exit points (#513)
* [coreplex] add TLBuffers on the exit points from the Tile and Coreplex * [config] WithBootROMFile
This commit is contained in:
parent
74b6a8d02b
commit
9a6634cd40
@ -212,3 +212,7 @@ class WithoutFPU extends Config((site, here, up) => {
|
|||||||
class WithFPUWithoutDivSqrt extends Config((site, here, up) => {
|
class WithFPUWithoutDivSqrt extends Config((site, here, up) => {
|
||||||
case FPUKey => Some(FPUConfig(divSqrt = false))
|
case FPUKey => Some(FPUConfig(divSqrt = false))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
class WithBootROMFile(bootROMFile: String) extends Config((site, here, up) => {
|
||||||
|
case BootROMFile => bootROMFile
|
||||||
|
})
|
||||||
|
@ -28,9 +28,9 @@ trait CoreplexNetwork extends HasCoreplexParameters {
|
|||||||
intBar.intnode := mmioInt
|
intBar.intnode := mmioInt
|
||||||
|
|
||||||
cbus.node :=
|
cbus.node :=
|
||||||
|
TLBuffer()(
|
||||||
TLAtomicAutomata(arithmetic = true)( // disable once TLB uses TL2 metadata
|
TLAtomicAutomata(arithmetic = true)( // disable once TLB uses TL2 metadata
|
||||||
TLWidthWidget(l1tol2_beatBytes)(
|
TLWidthWidget(l1tol2_beatBytes)(
|
||||||
TLBuffer()(
|
|
||||||
l1tol2.node)))
|
l1tol2.node)))
|
||||||
|
|
||||||
mmio :=
|
mmio :=
|
||||||
|
@ -20,7 +20,7 @@ trait HasSynchronousRocketTiles extends CoreplexRISCVPlatform {
|
|||||||
}))}
|
}))}
|
||||||
|
|
||||||
rocketTiles.foreach { r =>
|
rocketTiles.foreach { r =>
|
||||||
r.masterNodes.foreach { l1tol2.node := _ }
|
r.masterNodes.foreach { l1tol2.node := TLBuffer()(_) }
|
||||||
r.slaveNode.foreach { _ := cbus.node }
|
r.slaveNode.foreach { _ := cbus.node }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,9 +36,10 @@ trait TopNetwork extends HasPeripheryParameters {
|
|||||||
val intBus = LazyModule(new IntXbar)
|
val intBus = LazyModule(new IntXbar)
|
||||||
|
|
||||||
peripheryBus.node :=
|
peripheryBus.node :=
|
||||||
|
TLBuffer()(
|
||||||
TLWidthWidget(socBusConfig.beatBytes)(
|
TLWidthWidget(socBusConfig.beatBytes)(
|
||||||
TLAtomicAutomata(arithmetic = peripheryBusArithmetic)(
|
TLAtomicAutomata(arithmetic = peripheryBusArithmetic)(
|
||||||
socBus.node))
|
socBus.node)))
|
||||||
}
|
}
|
||||||
|
|
||||||
trait TopNetworkBundle extends HasPeripheryParameters {
|
trait TopNetworkBundle extends HasPeripheryParameters {
|
||||||
|
@ -103,9 +103,9 @@ trait PeripheryMasterAXI4Mem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val mem = mem_axi4.map { node =>
|
val mem = mem_axi4.map { node =>
|
||||||
val foo = LazyModule(new TLToAXI4(config.idBits))
|
val converter = LazyModule(new TLToAXI4(config.idBits))
|
||||||
node := foo.node
|
node := AXI4Buffer()(converter.node)
|
||||||
foo.node
|
converter.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,10 +140,11 @@ trait PeripheryMasterAXI4MMIO {
|
|||||||
beatBytes = config.beatBytes))
|
beatBytes = config.beatBytes))
|
||||||
|
|
||||||
mmio_axi4 :=
|
mmio_axi4 :=
|
||||||
|
AXI4Buffer()(
|
||||||
// AXI4Fragmenter(lite=false, maxInFlight = 20)( // beef device up to support awlen = 0xff
|
// AXI4Fragmenter(lite=false, maxInFlight = 20)( // beef device up to support awlen = 0xff
|
||||||
TLToAXI4(idBits = config.idBits)( // use idBits = 0 for AXI4-Lite
|
TLToAXI4(idBits = config.idBits)( // use idBits = 0 for AXI4-Lite
|
||||||
TLWidthWidget(socBusConfig.beatBytes)( // convert width before attaching to socBus
|
TLWidthWidget(socBusConfig.beatBytes)( // convert width before attaching to socBus
|
||||||
socBus.node))
|
socBus.node)))
|
||||||
}
|
}
|
||||||
|
|
||||||
trait PeripheryMasterAXI4MMIOBundle {
|
trait PeripheryMasterAXI4MMIOBundle {
|
||||||
@ -206,9 +207,10 @@ trait PeripheryMasterTLMMIO {
|
|||||||
beatBytes = config.beatBytes))
|
beatBytes = config.beatBytes))
|
||||||
|
|
||||||
mmio_tl :=
|
mmio_tl :=
|
||||||
|
TLBuffer()(
|
||||||
TLSourceShrinker(config.idBits)(
|
TLSourceShrinker(config.idBits)(
|
||||||
TLWidthWidget(socBusConfig.beatBytes)(
|
TLWidthWidget(socBusConfig.beatBytes)(
|
||||||
socBus.node))
|
socBus.node)))
|
||||||
}
|
}
|
||||||
|
|
||||||
trait PeripheryMasterTLMMIOBundle {
|
trait PeripheryMasterTLMMIOBundle {
|
||||||
|
Loading…
Reference in New Issue
Block a user