add wait register
This commit is contained in:
@@ -14,6 +14,7 @@ import freechips.rocketchip.rocket._
|
|||||||
import freechips.rocketchip.subsystem.TileCrossingParamsLike
|
import freechips.rocketchip.subsystem.TileCrossingParamsLike
|
||||||
import freechips.rocketchip.util._
|
import freechips.rocketchip.util._
|
||||||
import freechips.rocketchip.prci.ClockSinkParameters
|
import freechips.rocketchip.prci.ClockSinkParameters
|
||||||
|
import freechips.rocketchip.regmapper.RegField
|
||||||
import freechips.rocketchip.tile._
|
import freechips.rocketchip.tile._
|
||||||
import rocket.Vortex
|
import rocket.Vortex
|
||||||
|
|
||||||
@@ -72,6 +73,15 @@ class VortexTile private(
|
|||||||
val slaveNode = TLIdentityNode()
|
val slaveNode = TLIdentityNode()
|
||||||
val masterNode = visibilityNode
|
val masterNode = visibilityNode
|
||||||
|
|
||||||
|
val regDevice = new SimpleDevice("vortex-reg", Seq("vortex-reg"))
|
||||||
|
val regNode = TLRegisterNode(
|
||||||
|
address = Seq(AddressSet(0x7c000000, 0xfff)),
|
||||||
|
device = regDevice,
|
||||||
|
beatBytes = 4,
|
||||||
|
concurrency = 1)
|
||||||
|
|
||||||
|
regNode := tlSlaveXbar.node
|
||||||
|
|
||||||
// val dmemDevice = new SimpleDevice("dtim", Seq("sifive,dtim0"))
|
// val dmemDevice = new SimpleDevice("dtim", Seq("sifive,dtim0"))
|
||||||
/*val dmemNode = TLManagerNode(Seq(TLSlavePortParameters.v1(
|
/*val dmemNode = TLManagerNode(Seq(TLSlavePortParameters.v1(
|
||||||
Seq(TLSlaveParameters.v1(
|
Seq(TLSlaveParameters.v1(
|
||||||
@@ -181,6 +191,10 @@ class VortexTileModuleImp(outer: VortexTile) extends BaseTileModuleImp(outer) {
|
|||||||
// reset vector is connected in the Frontend to s2_pc
|
// reset vector is connected in the Frontend to s2_pc
|
||||||
core.io.reset_vector := DontCare
|
core.io.reset_vector := DontCare
|
||||||
|
|
||||||
|
outer.regNode.regmap(
|
||||||
|
0x00 -> Seq(RegField.r(32, core.io.cease))
|
||||||
|
)
|
||||||
|
|
||||||
// Report when the tile has ceased to retire instructions; for now the only cause is clock gating
|
// Report when the tile has ceased to retire instructions; for now the only cause is clock gating
|
||||||
outer.reportCease(outer.vortexParams.core.clockGate.option(
|
outer.reportCease(outer.vortexParams.core.clockGate.option(
|
||||||
core.io.cease))
|
core.io.cease))
|
||||||
|
|||||||
Reference in New Issue
Block a user