1
0

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:
Henry Cook 2017-01-17 11:57:23 -08:00 committed by GitHub
parent 74b6a8d02b
commit 9a6634cd40
5 changed files with 15 additions and 8 deletions

View File

@ -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
})

View File

@ -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 :=

View File

@ -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 }
} }

View File

@ -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 {

View File

@ -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 {