coreplex: make HasTiles more generic
HasTiles now deals with only extremely general tile IOs. Some RocketTiles specific behavior moved into RocketCoreplex. BaseTile now has optional LocalInterruptNode.
This commit is contained in:
@ -6,6 +6,7 @@ import Chisel._
|
||||
|
||||
import freechips.rocketchip.config._
|
||||
import freechips.rocketchip.diplomacy._
|
||||
import freechips.rocketchip.interrupts._
|
||||
import freechips.rocketchip.rocket._
|
||||
import freechips.rocketchip.tilelink._
|
||||
import freechips.rocketchip.util._
|
||||
@ -111,6 +112,7 @@ trait CanHaveInstructionTracePort extends Bundle with HasTileParameters {
|
||||
abstract class BaseTile(tileParams: TileParams)(implicit p: Parameters) extends BareTile
|
||||
with HasTileParameters {
|
||||
def module: BaseTileModule[BaseTile, BaseTileBundle[BaseTile]]
|
||||
val localIntNode: Option[IntInwardNode]
|
||||
}
|
||||
|
||||
abstract class BaseTileBundle[+L <: BaseTile](_outer: L) extends BareTileBundle(_outer)
|
||||
|
@ -5,7 +5,7 @@ package freechips.rocketchip.tile
|
||||
import Chisel._
|
||||
|
||||
import freechips.rocketchip.config.Parameters
|
||||
import freechips.rocketchip.interrupts.{IntSinkNode, IntSinkPortSimple}
|
||||
import freechips.rocketchip.interrupts._
|
||||
import freechips.rocketchip.util._
|
||||
|
||||
class TileInterrupts(implicit p: Parameters) extends CoreBundle()(p) {
|
||||
@ -23,6 +23,7 @@ trait HasExternalInterrupts extends HasTileParameters {
|
||||
val module: HasExternalInterruptsModule
|
||||
|
||||
val intNode = IntSinkNode(IntSinkPortSimple())
|
||||
val localIntNode: Option[IntInwardNode] = None
|
||||
|
||||
// TODO: the order of the following two functions must match, and
|
||||
// also match the order which things are connected to the
|
||||
|
@ -230,6 +230,7 @@ class RocketTileWrapper(
|
||||
}
|
||||
|
||||
val intXbar = LazyModule(new IntXbar)
|
||||
val localIntNode = Some(intXbar.intnode)
|
||||
rocket.intNode := intXbar.intnode
|
||||
|
||||
override lazy val module = new BaseTileModule(this, () => new RocketTileWrapperBundle(this)) {
|
||||
|
Reference in New Issue
Block a user