Make RocketTileWrapper a BaseTile
This commit is contained in:
parent
4645b61fd3
commit
71205b70cc
@ -36,7 +36,7 @@ trait HasRocketTiles extends HasSystemBus
|
|||||||
// Make a wrapper for each tile that will wire it to coreplex devices and crossbars,
|
// Make a wrapper for each tile that will wire it to coreplex devices and crossbars,
|
||||||
// according to the specified type of clock crossing.
|
// according to the specified type of clock crossing.
|
||||||
val wiringTuple = localIntNodes.zip(tileParams)
|
val wiringTuple = localIntNodes.zip(tileParams)
|
||||||
val rocket_tiles: Seq[RocketTileWrapper] = wiringTuple.map { case (lip, tp) =>
|
val rocket_tiles: Seq[BaseTile] = wiringTuple.map { case (lip, tp) =>
|
||||||
val pWithExtra = p.alterPartial {
|
val pWithExtra = p.alterPartial {
|
||||||
case TileKey => tp
|
case TileKey => tp
|
||||||
case BuildRoCC => tp.rocc
|
case BuildRoCC => tp.rocc
|
||||||
|
@ -181,7 +181,12 @@ class RocketTileModule(outer: RocketTile) extends BaseTileModule(outer, () => ne
|
|||||||
ptw.io.requestor <> ptwPorts
|
ptw.io.requestor <> ptwPorts
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class RocketTileWrapper(rtp: RocketTileParams)(implicit p: Parameters) extends LazyModule {
|
class RocketTileWrapperBundle[+L <: RocketTileWrapper](_outer: L) extends BaseTileBundle(_outer)
|
||||||
|
with CanHaltAndCatchFire {
|
||||||
|
val halt_and_catch_fire = _outer.rocket.module.io.halt_and_catch_fire.map(_.cloneType)
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class RocketTileWrapper(rtp: RocketTileParams)(implicit p: Parameters) extends BaseTile(rtp) {
|
||||||
val rocket = LazyModule(new RocketTile(rtp))
|
val rocket = LazyModule(new RocketTile(rtp))
|
||||||
val asyncIntNode : IntInwardNode
|
val asyncIntNode : IntInwardNode
|
||||||
val periphIntNode : IntInwardNode
|
val periphIntNode : IntInwardNode
|
||||||
@ -213,13 +218,7 @@ abstract class RocketTileWrapper(rtp: RocketTileParams)(implicit p: Parameters)
|
|||||||
|
|
||||||
def outputInterruptXingLatency: Int
|
def outputInterruptXingLatency: Int
|
||||||
|
|
||||||
lazy val module = new LazyModuleImp(this) {
|
override lazy val module = new BaseTileModule(this, () => new RocketTileWrapperBundle(this)) {
|
||||||
val io = IO(new CoreBundle
|
|
||||||
with HasExternallyDrivenTileConstants
|
|
||||||
with CanHaveInstructionTracePort
|
|
||||||
with CanHaltAndCatchFire {
|
|
||||||
val halt_and_catch_fire = rocket.module.io.halt_and_catch_fire.map(_.cloneType)
|
|
||||||
})
|
|
||||||
// signals that do not change based on crossing type:
|
// signals that do not change based on crossing type:
|
||||||
rocket.module.io.hartid := io.hartid
|
rocket.module.io.hartid := io.hartid
|
||||||
rocket.module.io.reset_vector := io.reset_vector
|
rocket.module.io.reset_vector := io.reset_vector
|
||||||
|
Loading…
Reference in New Issue
Block a user