1
0

Merge pull request #745 from freechipsproject/tile-xbar

Tile xbar
This commit is contained in:
Wesley W. Terpstra 2017-05-17 06:28:37 -07:00 committed by GitHub
commit 65053978dc
6 changed files with 21 additions and 16 deletions

View File

@ -163,18 +163,20 @@ class WithNBreakpoints(hwbp: Int) extends Config ((site, here, up) => {
}) })
class WithRoccExample extends Config((site, here, up) => { class WithRoccExample extends Config((site, here, up) => {
case BuildRoCC => Seq( case RocketTilesKey => up(RocketTilesKey, site) map { r =>
RoCCParams( r.copy(rocc = Seq(
opcodes = OpcodeSet.custom0, RoCCParams(
generator = (p: Parameters) => Module(new AccumulatorExample()(p))), opcodes = OpcodeSet.custom0,
RoCCParams( generator = (p: Parameters) => Module(new AccumulatorExample()(p))),
opcodes = OpcodeSet.custom1, RoCCParams(
generator = (p: Parameters) => Module(new TranslatorExample()(p)), opcodes = OpcodeSet.custom1,
nPTWPorts = 1), generator = (p: Parameters) => Module(new TranslatorExample()(p)),
RoCCParams( nPTWPorts = 1),
opcodes = OpcodeSet.custom2, RoCCParams(
generator = (p: Parameters) => Module(new CharacterCountExample()(p)))) opcodes = OpcodeSet.custom2,
generator = (p: Parameters) => Module(new CharacterCountExample()(p)))
))
}
case RoccMaxTaggedMemXacts => 1 case RoccMaxTaggedMemXacts => 1
}) })
@ -224,3 +226,4 @@ class WithAynchronousRocketTiles(depth: Int, sync: Int) extends Config((site, he
class WithRationalRocketTiles extends Config((site, here, up) => { class WithRationalRocketTiles extends Config((site, here, up) => {
case RocketCrossing => RationalCrossing() case RocketCrossing => RationalCrossing()
}) })

View File

@ -183,7 +183,7 @@ trait HasICacheFrontend extends CanHavePTW with HasTileLinkMasterPort {
val module: HasICacheFrontendModule val module: HasICacheFrontendModule
val frontend = LazyModule(new Frontend(hartid: Int)) val frontend = LazyModule(new Frontend(hartid: Int))
val hartid: Int val hartid: Int
masterNode := frontend.masterNode tileBus.node := frontend.masterNode
nPTWPorts += 1 nPTWPorts += 1
} }

View File

@ -196,7 +196,7 @@ trait HasHellaCache extends HasTileLinkMasterPort with HasTileParameters {
def findScratchpadFromICache: Option[AddressSet] def findScratchpadFromICache: Option[AddressSet]
var nDCachePorts = 0 var nDCachePorts = 0
val dcache = HellaCache(tileParams.dcache.get.nMSHRs == 0, findScratchpadFromICache _) val dcache = HellaCache(tileParams.dcache.get.nMSHRs == 0, findScratchpadFromICache _)
masterNode := dcache.node tileBus.node := dcache.node
} }
trait HasHellaCacheBundle extends HasTileLinkMasterPortBundle { trait HasHellaCacheBundle extends HasTileLinkMasterPortBundle {

View File

@ -55,6 +55,8 @@ trait HasTileLinkMasterPort {
implicit val p: Parameters implicit val p: Parameters
val module: HasTileLinkMasterPortModule val module: HasTileLinkMasterPortModule
val masterNode = TLOutputNode() val masterNode = TLOutputNode()
val tileBus = LazyModule(new TLXbar) // TileBus xbar for cache backends to connect to
masterNode := tileBus.node
} }
trait HasTileLinkMasterPortBundle { trait HasTileLinkMasterPortBundle {

View File

@ -48,7 +48,7 @@ trait CanHaveLegacyRoccs extends CanHaveSharedFPU with CanHavePTW with HasTileLi
}}))) }})))
legacyRocc foreach { lr => legacyRocc foreach { lr =>
masterNode := lr.masterNode tileBus.node :=* lr.masterNode
nPTWPorts += lr.nPTWPorts nPTWPorts += lr.nPTWPorts
nDCachePorts += lr.nRocc nDCachePorts += lr.nRocc
} }
@ -66,7 +66,7 @@ trait CanHaveLegacyRoccsModule extends CanHaveSharedFPUModule
None None
} foreach { lr => } foreach { lr =>
fpu.io.cp_req <> lr.module.io.fpu.cp_req fpu.io.cp_req <> lr.module.io.fpu.cp_req
fpu.io.cp_resp <> lr.module.io.fpu.cp_resp lr.module.io.fpu.cp_resp <> fpu.io.cp_resp
} }
} }