Removed dummy tile instances
This commit is contained in:
commit
1d7f1a8182
@ -90,9 +90,17 @@ class ReferenceChipCrossbarNetwork(endpoints: Seq[Component])(implicit conf: Log
|
|||||||
val io = Vec(endpoints.map(_ match { case t:Tile => {(new TileLinkType).flip}; case h:CoherenceHub => {new TileLinkType}})){ new TileLinkType }
|
val io = Vec(endpoints.map(_ match { case t:Tile => {(new TileLinkType).flip}; case h:CoherenceHub => {new TileLinkType}})){ new TileLinkType }
|
||||||
|
|
||||||
//If we allow all physical networks to be identical, we can use
|
//If we allow all physical networks to be identical, we can use
|
||||||
|
<<<<<<< HEAD
|
||||||
//reflection to automatically create enough networks for any given
|
//reflection to automatically create enough networks for any given
|
||||||
//bundle containing LogicalNetworkIOs
|
//bundle containing LogicalNetworkIOs
|
||||||
val tl = new TileLinkType
|
val tl = new TileLinkType
|
||||||
|
=======
|
||||||
|
//reflection to automatically create enough for any given bundle containing LogicalNetworkIOs
|
||||||
|
val tl = new TileLinkType
|
||||||
|
//val dataTypesPassedThroughEachPhysicalNetwork = tl.getClass.getMethods.filter( x =>
|
||||||
|
// classOf[LogicalNetworkIO[Data]].isAssignableFrom(x.getReturnType)).map(
|
||||||
|
// _.invoke(tl).asInstanceOf[LogicalNetworkIO[Data]].m.erasure)
|
||||||
|
>>>>>>> f19fdc1c7d15c6fc9a1fce7cd97619a124ae2c91
|
||||||
val payloadBitsForEachPhysicalNetwork = tl.getClass.getMethods.filter( x =>
|
val payloadBitsForEachPhysicalNetwork = tl.getClass.getMethods.filter( x =>
|
||||||
classOf[LogicalNetworkIO[Data]].isAssignableFrom(x.getReturnType)).map(
|
classOf[LogicalNetworkIO[Data]].isAssignableFrom(x.getReturnType)).map(
|
||||||
_.invoke(tl).asInstanceOf[LogicalNetworkIO[Data]].bits)
|
_.invoke(tl).asInstanceOf[LogicalNetworkIO[Data]].bits)
|
||||||
@ -101,8 +109,14 @@ class ReferenceChipCrossbarNetwork(endpoints: Seq[Component])(implicit conf: Log
|
|||||||
|
|
||||||
//Use reflection to get the subset of each node's TileLink
|
//Use reflection to get the subset of each node's TileLink
|
||||||
//corresponding to each direction of dataflow and connect each sub-bundle
|
//corresponding to each direction of dataflow and connect each sub-bundle
|
||||||
|
<<<<<<< HEAD
|
||||||
//to the appropriate port of the physical crossbar network, inserting
|
//to the appropriate port of the physical crossbar network, inserting
|
||||||
//shims to convert headers and process flits in the process.
|
//shims to convert headers and process flits in the process.
|
||||||
|
=======
|
||||||
|
//to the appropriate port of the physical crossbar network, converting the
|
||||||
|
//headers in the process.
|
||||||
|
//TODO: Introduce SerDes and flit/phit partitoning here
|
||||||
|
>>>>>>> f19fdc1c7d15c6fc9a1fce7cd97619a124ae2c91
|
||||||
endpoints.zip(io).zipWithIndex.map{ case ((end, io), id) => {
|
endpoints.zip(io).zipWithIndex.map{ case ((end, io), id) => {
|
||||||
val tileProducedSubBundles = io.getClass.getMethods.zipWithIndex.filter( x =>
|
val tileProducedSubBundles = io.getClass.getMethods.zipWithIndex.filter( x =>
|
||||||
classOf[TileIO[Data]].isAssignableFrom(x._1.getReturnType)).map{ case (m,i) =>
|
classOf[TileIO[Data]].isAssignableFrom(x._1.getReturnType)).map{ case (m,i) =>
|
||||||
@ -119,9 +133,15 @@ class ReferenceChipCrossbarNetwork(endpoints: Seq[Component])(implicit conf: Log
|
|||||||
}
|
}
|
||||||
case y:CoherenceHub => {
|
case y:CoherenceHub => {
|
||||||
hubProducedSubBundles.foreach{ case (sl,i) =>
|
hubProducedSubBundles.foreach{ case (sl,i) =>
|
||||||
|
<<<<<<< HEAD
|
||||||
physicalNetworks(i).io.in(id) <> HubToCrossbarShim(sl) }
|
physicalNetworks(i).io.in(id) <> HubToCrossbarShim(sl) }
|
||||||
tileProducedSubBundles.foreach{ case (sl,i) =>
|
tileProducedSubBundles.foreach{ case (sl,i) =>
|
||||||
sl <> CrossbarToTileShim(physicalNetworks(i).io.out(id)) }
|
sl <> CrossbarToTileShim(physicalNetworks(i).io.out(id)) }
|
||||||
|
=======
|
||||||
|
physicalNetworks(i).io.in(id) <> HubToCrossbarShim(sl)}
|
||||||
|
tileProducedSubBundles.foreach{ case (sl,i) =>
|
||||||
|
sl <> CrossbarToTileShim(physicalNetworks(i).io.out(id))}
|
||||||
|
>>>>>>> f19fdc1c7d15c6fc9a1fce7cd97619a124ae2c91
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
@ -204,8 +224,18 @@ class OuterMemorySystem(htif_width: Int, tileEndpoints: Seq[Tile])(implicit conf
|
|||||||
val llc = new DRAMSideLLC(512, 8, 4, llc_tag_leaf, llc_data_leaf)
|
val llc = new DRAMSideLLC(512, 8, 4, llc_tag_leaf, llc_data_leaf)
|
||||||
val mem_serdes = new MemSerdes(htif_width)
|
val mem_serdes = new MemSerdes(htif_width)
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
implicit val logNetConf = new LogicalNetworkConfiguration(conf.ntiles+1, conf.tile_id_bits+1, 1, conf.ntiles)
|
implicit val logNetConf = new LogicalNetworkConfiguration(conf.ntiles+1, conf.tile_id_bits+1, 1, conf.ntiles)
|
||||||
val testNet = new ReferenceChipCrossbarNetwork(List(hub)++tileEndpoints)
|
val testNet = new ReferenceChipCrossbarNetwork(List(hub)++tileEndpoints)
|
||||||
|
=======
|
||||||
|
val ic = ICacheConfig(128, 2, conf.co.asInstanceOf[CoherencePolicyWithUncached], ntlb = 8, nbtb = 16)
|
||||||
|
val dc = DCacheConfig(128, 4, conf.co.asInstanceOf[CoherencePolicyWithUncached], ntlb = 8,
|
||||||
|
nmshr = 2, nrpq = 16, nsdq = 17)
|
||||||
|
val rc = RocketConfiguration(2, conf.co.asInstanceOf[CoherencePolicyWithUncached], ic, dc,
|
||||||
|
fpu = true, vec = true)
|
||||||
|
implicit val logNetConf = new LogicalNetworkConfiguration(3, 4, 1, 2)
|
||||||
|
val testNet = new ReferenceChipCrossbarNetwork(List(hub,new Tile()(rc),new Tile()(rc)))
|
||||||
|
>>>>>>> f19fdc1c7d15c6fc9a1fce7cd97619a124ae2c91
|
||||||
|
|
||||||
for (i <- 0 until conf.ntiles) {
|
for (i <- 0 until conf.ntiles) {
|
||||||
hub.io.tiles(i) <> io.tiles(i)
|
hub.io.tiles(i) <> io.tiles(i)
|
||||||
|
Loading…
Reference in New Issue
Block a user