regressions: test scratchpad
This commit is contained in:
@ -501,15 +501,19 @@ class ScratchpadSlavePort(implicit val p: Parameters) extends LazyModule with Ha
|
||||
val beatBytes = p(XLen)/8
|
||||
val node = TLManagerNode(TLManagerPortParameters(
|
||||
Seq(TLManagerParameters(
|
||||
address = List(AddressSet(0x80000000L, p(DataScratchpadSize))),
|
||||
address = List(AddressSet(0x80000000L, BigInt(p(DataScratchpadSize)-1))),
|
||||
regionType = RegionType.UNCACHED,
|
||||
executable = true,
|
||||
supportsPutPartial = TransferSizes(1, beatBytes),
|
||||
supportsPutFull = TransferSizes(1, beatBytes),
|
||||
supportsGet = TransferSizes(1, beatBytes),
|
||||
fifoId = Some(0))), // requests handled in FIFO order
|
||||
beatBytes = beatBytes,
|
||||
minLatency = 1))
|
||||
|
||||
// Make sure this ends up with the same name as before
|
||||
override def name = "dmem0"
|
||||
|
||||
lazy val module = new LazyModuleImp(this) {
|
||||
val io = new Bundle {
|
||||
val tl_in = node.bundleIn
|
||||
@ -566,5 +570,10 @@ class ScratchpadSlavePort(implicit val p: Parameters) extends LazyModule with Ha
|
||||
tl_in.d.bits := Mux(isRead,
|
||||
edge.AccessAck(acq, UInt(0), alignedGrantData),
|
||||
edge.AccessAck(acq, UInt(0)))
|
||||
|
||||
// Tie off unused channels
|
||||
tl_in.b.valid := Bool(false)
|
||||
tl_in.c.ready := Bool(true)
|
||||
tl_in.e.ready := Bool(true)
|
||||
}
|
||||
}
|
||||
|
@ -54,14 +54,14 @@ abstract class LazyTile(implicit p: Parameters) extends LazyModule {
|
||||
xLen = p(XLen))
|
||||
|
||||
val module: TileImp
|
||||
val slave: Option[TLOutputNode]
|
||||
val slave: Option[TLInputNode]
|
||||
}
|
||||
|
||||
class RocketTile(implicit p: Parameters) extends LazyTile {
|
||||
val slave = if (p(DataScratchpadSize) == 0) None else Some(TLOutputNode())
|
||||
val slave = if (p(DataScratchpadSize) == 0) None else Some(TLInputNode())
|
||||
val scratch = if (p(DataScratchpadSize) == 0) None else Some(LazyModule(new ScratchpadSlavePort()(dcacheParams)))
|
||||
|
||||
(slave zip scratch) foreach { case (node, lm) => node := TLFragmenter(p(XLen)/8, p(RowBits)/8)(lm.node) }
|
||||
(slave zip scratch) foreach { case (node, lm) => lm.node := TLFragmenter(p(XLen)/8, 256)(node) }
|
||||
|
||||
lazy val module = new TileImp(this) {
|
||||
val io = new TileIO(bc, slave)
|
||||
|
Reference in New Issue
Block a user