Bump constellation with improved TL-noc
This commit is contained in:
@@ -6,6 +6,7 @@ import freechips.rocketchip.subsystem.{SBUS, MBUS}
|
|||||||
|
|
||||||
import constellation.channel._
|
import constellation.channel._
|
||||||
import constellation.routing._
|
import constellation.routing._
|
||||||
|
import constellation.router._
|
||||||
import constellation.topology._
|
import constellation.topology._
|
||||||
import constellation.noc._
|
import constellation.noc._
|
||||||
import constellation.soc.{GlobalNoCParams}
|
import constellation.soc.{GlobalNoCParams}
|
||||||
@@ -62,19 +63,19 @@ import scala.collection.immutable.ListMap
|
|||||||
*/
|
*/
|
||||||
// DOC include start: MultiNoCConfig
|
// DOC include start: MultiNoCConfig
|
||||||
class MultiNoCConfig extends Config(
|
class MultiNoCConfig extends Config(
|
||||||
new constellation.soc.WithCbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithCbusNoC(constellation.protocol.SimpleTLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap(
|
inNodeMapping = ListMap(
|
||||||
"serial-tl" -> 0),
|
"serial-tl" -> 0),
|
||||||
outNodeMapping = ListMap(
|
outNodeMapping = ListMap(
|
||||||
"error" -> 1, "l2[0]" -> 2, "pbus" -> 3, "plic" -> 4,
|
"error" -> 1, "ctrls[0]" -> 2, "pbus" -> 3, "plic" -> 4,
|
||||||
"clint" -> 5, "dmInner" -> 6, "bootrom" -> 7, "clock" -> 8)),
|
"clint" -> 5, "dmInner" -> 6, "bootrom" -> 7, "clock" -> 8)),
|
||||||
NoCParams(
|
NoCParams(
|
||||||
topology = TerminalRouter(BidirectionalLine(9)),
|
topology = TerminalRouter(BidirectionalLine(9)),
|
||||||
channelParamGen = (a, b) => UserChannelParams(Seq.fill(5) { UserVirtualChannelParams(4) }),
|
channelParamGen = (a, b) => UserChannelParams(Seq.fill(5) { UserVirtualChannelParams(4) }),
|
||||||
routingRelation = NonblockingVirtualSubnetworksRouting(TerminalRouterRouting(BidirectionalLineRouting()), 5, 1))
|
routingRelation = NonblockingVirtualSubnetworksRouting(TerminalRouterRouting(BidirectionalLineRouting()), 5, 1))
|
||||||
)) ++
|
)) ++
|
||||||
new constellation.soc.WithMbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithMbusNoC(constellation.protocol.SimpleTLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap(
|
inNodeMapping = ListMap(
|
||||||
"L2 InclusiveCache[0]" -> 1, "L2 InclusiveCache[1]" -> 2,
|
"L2 InclusiveCache[0]" -> 1, "L2 InclusiveCache[1]" -> 2,
|
||||||
@@ -87,7 +88,7 @@ class MultiNoCConfig extends Config(
|
|||||||
channelParamGen = (a, b) => UserChannelParams(Seq.fill(10) { UserVirtualChannelParams(4) }),
|
channelParamGen = (a, b) => UserChannelParams(Seq.fill(10) { UserVirtualChannelParams(4) }),
|
||||||
routingRelation = BlockingVirtualSubnetworksRouting(TerminalRouterRouting(BidirectionalTorus1DShortestRouting()), 5, 2))
|
routingRelation = BlockingVirtualSubnetworksRouting(TerminalRouterRouting(BidirectionalTorus1DShortestRouting()), 5, 2))
|
||||||
)) ++
|
)) ++
|
||||||
new constellation.soc.WithSbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithSbusNoC(constellation.protocol.SimpleTLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap(
|
inNodeMapping = ListMap(
|
||||||
"Core 0" -> 1, "Core 1" -> 2, "Core 2" -> 4 , "Core 3" -> 7,
|
"Core 0" -> 1, "Core 1" -> 2, "Core 2" -> 4 , "Core 3" -> 7,
|
||||||
@@ -162,15 +163,15 @@ class SharedNoCConfig extends Config(
|
|||||||
BidirectionalLineRouting()))), 10, 2)
|
BidirectionalLineRouting()))), 10, 2)
|
||||||
)
|
)
|
||||||
)) ++
|
)) ++
|
||||||
new constellation.soc.WithMbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithMbusNoC(constellation.protocol.GlobalTLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap(
|
inNodeMapping = ListMap(
|
||||||
"Cache[0]" -> 0, "Cache[1]" -> 2, "Cache[2]" -> 8, "Cache[3]" -> 6),
|
"Cache[0]" -> 0, "Cache[1]" -> 2, "Cache[2]" -> 8, "Cache[3]" -> 6),
|
||||||
outNodeMapping = ListMap(
|
outNodeMapping = ListMap(
|
||||||
"system[0]" -> 3, "system[1]" -> 5,
|
"system[0]" -> 3, "system[1]" -> 5,
|
||||||
"serdesser" -> 9))
|
"serdesser" -> 9))
|
||||||
), true) ++
|
)) ++
|
||||||
new constellation.soc.WithSbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithSbusNoC(constellation.protocol.GlobalTLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap(
|
inNodeMapping = ListMap(
|
||||||
"serial-tl" -> 9, "Core 0" -> 2,
|
"serial-tl" -> 9, "Core 0" -> 2,
|
||||||
@@ -179,7 +180,7 @@ class SharedNoCConfig extends Config(
|
|||||||
outNodeMapping = ListMap(
|
outNodeMapping = ListMap(
|
||||||
"system[0]" -> 0, "system[1]" -> 2, "system[2]" -> 8, "system[3]" -> 6,
|
"system[0]" -> 0, "system[1]" -> 2, "system[2]" -> 8, "system[3]" -> 6,
|
||||||
"pbus" -> 4))
|
"pbus" -> 4))
|
||||||
), true) ++
|
)) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBigCores(8) ++
|
new freechips.rocketchip.subsystem.WithNBigCores(8) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
new freechips.rocketchip.subsystem.WithNMemoryChannels(2) ++
|
new freechips.rocketchip.subsystem.WithNMemoryChannels(2) ++
|
||||||
@@ -188,7 +189,7 @@ class SharedNoCConfig extends Config(
|
|||||||
// DOC include end: SharedNoCConfig
|
// DOC include end: SharedNoCConfig
|
||||||
|
|
||||||
class SbusRingNoCConfig extends Config(
|
class SbusRingNoCConfig extends Config(
|
||||||
new constellation.soc.WithSbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithSbusNoC(constellation.protocol.SplitACDxBETLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap(
|
inNodeMapping = ListMap(
|
||||||
"Core 0" -> 0,
|
"Core 0" -> 0,
|
||||||
@@ -206,12 +207,58 @@ class SbusRingNoCConfig extends Config(
|
|||||||
"system[2]" -> 11,
|
"system[2]" -> 11,
|
||||||
"system[3]" -> 12,
|
"system[3]" -> 12,
|
||||||
"pbus" -> 8)), // TSI is on the pbus, so serial-tl and pbus should be on the same node
|
"pbus" -> 8)), // TSI is on the pbus, so serial-tl and pbus should be on the same node
|
||||||
NoCParams(
|
acdNoCParams = NoCParams(
|
||||||
topology = UnidirectionalTorus1D(13),
|
topology = UnidirectionalTorus1D(13),
|
||||||
channelParamGen = (a, b) => UserChannelParams(Seq.fill(10) { UserVirtualChannelParams(4) }),
|
channelParamGen = (a, b) => UserChannelParams(Seq.fill(6) { UserVirtualChannelParams(4) }),
|
||||||
routingRelation = NonblockingVirtualSubnetworksRouting(UnidirectionalTorus1DDatelineRouting(), 5, 2))
|
routingRelation = NonblockingVirtualSubnetworksRouting(UnidirectionalTorus1DDatelineRouting(), 3, 2)),
|
||||||
|
beNoCParams = NoCParams(
|
||||||
|
topology = UnidirectionalTorus1D(13),
|
||||||
|
channelParamGen = (a, b) => UserChannelParams(Seq.fill(4) { UserVirtualChannelParams(1) }),
|
||||||
|
routingRelation = NonblockingVirtualSubnetworksRouting(UnidirectionalTorus1DDatelineRouting(), 2, 2))
|
||||||
)) ++
|
)) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBigCores(8) ++
|
new freechips.rocketchip.subsystem.WithNBigCores(8) ++
|
||||||
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
new chipyard.config.AbstractConfig
|
new chipyard.config.AbstractConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class SbusMeshNoCConfig extends Config(
|
||||||
|
new constellation.soc.WithSbusNoC(constellation.protocol.SplitACDxBETLNoCParams(
|
||||||
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
|
inNodeMapping = ListMap(
|
||||||
|
"Core 0 " -> 0,
|
||||||
|
"Core 1 " -> 1,
|
||||||
|
"Core 2 " -> 2,
|
||||||
|
"Core 3 " -> 3,
|
||||||
|
"Core 4 " -> 4,
|
||||||
|
"Core 5 " -> 7,
|
||||||
|
"Core 6 " -> 8,
|
||||||
|
"Core 7 " -> 11,
|
||||||
|
"Core 8 " -> 12,
|
||||||
|
"Core 9 " -> 13,
|
||||||
|
"Core 10 " -> 14,
|
||||||
|
"Core 11 " -> 15,
|
||||||
|
"serial-tl" -> 0),
|
||||||
|
outNodeMapping = ListMap(
|
||||||
|
"system[0]" -> 5,
|
||||||
|
"system[1]" -> 6,
|
||||||
|
"system[2]" -> 9,
|
||||||
|
"system[3]" -> 10,
|
||||||
|
"pbus" -> 0)), // TSI is on the pbus, so serial-tl and pbus should be on the same node
|
||||||
|
acdNoCParams = NoCParams(
|
||||||
|
topology = Mesh2D(4, 4),
|
||||||
|
channelParamGen = (a, b) => UserChannelParams(Seq.fill(3) { UserVirtualChannelParams(3) }, unifiedBuffer = false),
|
||||||
|
routerParams = (i) => UserRouterParams(combineRCVA=true, combineSAST=true),
|
||||||
|
routingRelation = NonblockingVirtualSubnetworksRouting(Mesh2DDimensionOrderedRouting(), 3, 1)),
|
||||||
|
beNoCParams = NoCParams(
|
||||||
|
topology = Mesh2D(4, 4),
|
||||||
|
channelParamGen = (a, b) => UserChannelParams(Seq.fill(2) { UserVirtualChannelParams(3) }, unifiedBuffer = false),
|
||||||
|
routerParams = (i) => UserRouterParams(combineRCVA=true, combineSAST=true),
|
||||||
|
routingRelation = NonblockingVirtualSubnetworksRouting(Mesh2DDimensionOrderedRouting(), 2, 1)),
|
||||||
|
beDivision = 4
|
||||||
|
)) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBigCores(12) ++
|
||||||
|
new freechips.rocketchip.subsystem.WithNBanks(4) ++
|
||||||
|
new chipyard.config.WithSystemBusWidth(128) ++
|
||||||
|
new chipyard.config.AbstractConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -90,14 +90,14 @@ class TutorialNoCConfig extends Config(
|
|||||||
// The inNodeMapping and outNodeMapping values are the physical identifiers of
|
// The inNodeMapping and outNodeMapping values are the physical identifiers of
|
||||||
// routers on the topology to map the agents to. Try changing these to any
|
// routers on the topology to map the agents to. Try changing these to any
|
||||||
// value within the range [0, topology.nNodes)
|
// value within the range [0, topology.nNodes)
|
||||||
new constellation.soc.WithPbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithPbusNoC(constellation.protocol.GlobalTLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap("Core" -> 7),
|
inNodeMapping = ListMap("Core" -> 7),
|
||||||
outNodeMapping = ListMap(
|
outNodeMapping = ListMap(
|
||||||
"pbus" -> 8, "uart" -> 9, "control" -> 10, "gcd" -> 11,
|
"pbus" -> 8, "uart" -> 9, "control" -> 10, "gcd" -> 11,
|
||||||
"writeQueue[0]" -> 0, "writeQueue[1]" -> 1, "tailChain[0]" -> 2))
|
"writeQueue[0]" -> 0, "writeQueue[1]" -> 1, "tailChain[0]" -> 2))
|
||||||
), true) ++
|
)) ++
|
||||||
new constellation.soc.WithSbusNoC(constellation.protocol.TLNoCParams(
|
new constellation.soc.WithSbusNoC(constellation.protocol.GlobalTLNoCParams(
|
||||||
constellation.protocol.DiplomaticNetworkNodeMapping(
|
constellation.protocol.DiplomaticNetworkNodeMapping(
|
||||||
inNodeMapping = ListMap(
|
inNodeMapping = ListMap(
|
||||||
"Core 0" -> 0, "Core 1" -> 1,
|
"Core 0" -> 0, "Core 1" -> 1,
|
||||||
@@ -105,7 +105,7 @@ class TutorialNoCConfig extends Config(
|
|||||||
outNodeMapping = ListMap(
|
outNodeMapping = ListMap(
|
||||||
"system[0]" -> 3, "system[1]" -> 4, "system[2]" -> 5, "system[3]" -> 6,
|
"system[0]" -> 3, "system[1]" -> 4, "system[2]" -> 5, "system[3]" -> 6,
|
||||||
"pbus" -> 7))
|
"pbus" -> 7))
|
||||||
), true) ++
|
)) ++
|
||||||
new chipyard.example.WithGCD ++
|
new chipyard.example.WithGCD ++
|
||||||
new chipyard.harness.WithLoopbackNIC ++
|
new chipyard.harness.WithLoopbackNIC ++
|
||||||
new icenet.WithIceNIC ++
|
new icenet.WithIceNIC ++
|
||||||
|
|||||||
Submodule generators/constellation updated: 03ed9e4ecd...4eb052037d
Reference in New Issue
Block a user