package groundtest import Chisel._ import cde.Parameters import diplomacy._ import coreplex._ import uncore.devices.NTiles import rocket.TileId import uncore.tilelink.TLId class GroundTestCoreplex(implicit p: Parameters) extends BaseCoreplex with BroadcastL2 { val tiles = List.tabulate(p(NTiles)) { i => LazyModule(new GroundTestTile()(p.alterPartial({ case TLId => "L1toL2" case TileId => i }))) } override lazy val module = new GroundTestCoreplexModule(this, () => new GroundTestCoreplexBundle(this)) } class GroundTestCoreplexBundle[+L <: GroundTestCoreplex](_outer: L) extends BaseCoreplexBundle(_outer) { val success = Bool(OUTPUT) } class GroundTestCoreplexModule[+L <: GroundTestCoreplex, +B <: GroundTestCoreplexBundle[L]](_outer: L, _io: () => B) extends BaseCoreplexModule(_outer, _io) { io.success := outer.tiles.map(_.module.io.success).reduce(_&&_) }