1
0

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:
Henry Cook
2017-12-13 19:00:29 -08:00
parent 9b82f1098d
commit ddaeedf2d0
7 changed files with 79 additions and 73 deletions

View File

@ -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)

View File

@ -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

View File

@ -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)) {