tile: tileControlAddr is now tile param named beuAddr

This commit is contained in:
Henry Cook 2018-11-29 12:32:15 -08:00
parent ef4c42bea2
commit 1f1b35b23b
4 changed files with 11 additions and 9 deletions

View File

@ -66,6 +66,7 @@ case class TraceGenParams(
numGens: Int) extends GroundTestTileParams {
def build(i: Int, p: Parameters): GroundTestTile = new TraceGenTile(i, this)(p)
val hartId = 0
val beuAddr = None
val blockerCtrlAddr = None
val name = None
}

View File

@ -28,6 +28,7 @@ trait TileParams {
val dcache: Option[DCacheParams]
val btb: Option[BTBParams]
val hartId: Int
val beuAddr: Option[BigInt]
val blockerCtrlAddr: Option[BigInt]
val name: Option[String]
}

View File

@ -38,7 +38,6 @@ trait CoreParams {
val nL2TLBEntries: Int
val mtvecInit: Option[BigInt]
val mtvecWritable: Boolean
val tileControlAddr: Option[BigInt]
def customCSRs(implicit p: Parameters): CustomCSRs = new CustomCSRs
def instBytes: Int = instBits / 8
@ -93,7 +92,7 @@ abstract class CoreBundle(implicit val p: Parameters) extends ParameterizedBundl
with HasCoreParameters
class CoreInterrupts(implicit p: Parameters) extends TileInterrupts()(p) {
val buserror = coreParams.tileControlAddr.map(a => Bool())
val buserror = tileParams.beuAddr.map(a => Bool())
}
trait HasCoreIO extends HasTileParameters {

View File

@ -21,7 +21,7 @@ case class RocketTileParams(
hcfOnUncorrectable: Boolean = false,
name: Option[String] = Some("tile"),
hartId: Int = 0,
beuControlAddr: Option[BigInt] = None,
beuAddr: Option[BigInt] = None,
blockerCtrlAddr: Option[BigInt] = None,
boundaryBuffers: Boolean = false // if synthesized with hierarchical PnR, cut feed-throughs?
) extends TileParams {
@ -47,7 +47,7 @@ class RocketTile(
}
dtim_adapter.foreach(lm => connectTLSlave(lm.node, xBytes))
val bus_error_unit = tileParams.beuControlAddr map { a =>
val bus_error_unit = rocketParams.beuAddr map { a =>
val beu = LazyModule(new BusErrorUnit(new L1BusErrors, BusErrorUnitParams(a)))
intOutwardNode := beu.intNode
connectTLSlave(beu.node, xBytes)
@ -118,18 +118,19 @@ class RocketTileModuleImp(outer: RocketTile) extends BaseTileModuleImp(outer)
core.io.cease
))
outer.bus_error_unit.foreach { lm =>
lm.module.io.errors.dcache := outer.dcache.module.io.errors
lm.module.io.errors.icache := outer.frontend.module.io.errors
}
outer.decodeCoreInterrupts(core.io.interrupts) // Decode the interrupt vector
outer.bus_error_unit.foreach { beu => core.io.interrupts.buserror.get := beu.module.io.interrupt }
halt_and_catch_fire.foreach { _ := uncorrectable }
outer.frontend.module.io.cpu <> core.io.imem
outer.frontend.module.io.reset_vector := constants.reset_vector
outer.frontend.module.io.hartid := constants.hartid
outer.bus_error_unit.foreach { beu =>
core.io.interrupts.buserror.get := beu.module.io.interrupt
beu.module.io.errors.dcache := outer.dcache.module.io.errors
beu.module.io.errors.icache := outer.frontend.module.io.errors
}
// Pass through various external constants and reports
trace := core.io.trace
core.io.hartid := constants.hartid