devices: maskrom has helper object attach instead of trait (#1698)

* devices: maskrom has helper object attach instead of trait

* maskrom: remove unused param key
This commit is contained in:
Henry Cook 2018-11-09 15:25:26 -08:00 committed by GitHub
parent 9ac2d897c9
commit 840d2a2226
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 14 deletions

View File

@ -5,25 +5,11 @@ package freechips.rocketchip.devices.tilelink
import Chisel._
import freechips.rocketchip.config.{Field, Parameters}
import freechips.rocketchip.diplomacy._
import freechips.rocketchip.subsystem.BaseSubsystem
import freechips.rocketchip.tilelink._
import freechips.rocketchip.util._
case class MaskROMParams(address: BigInt, name: String, depth: Int = 2048, width: Int = 32)
case object PeripheryMaskROMKey extends Field[Seq[MaskROMParams]]
trait HasPeripheryMaskROMSlave { this: BaseSubsystem =>
val maskROMParams = p(PeripheryMaskROMKey)
val maskROMs = maskROMParams map { params =>
val maskROM = LazyModule(new TLMaskROM(params))
maskROM.node := cbus.coupleTo("MaskROM") {
TLFragmenter(maskROM.beatBytes, cbus.blockBytes) :*= TLWidthWidget(cbus) := _
}
maskROM
}
}
class TLMaskROM(c: MaskROMParams)(implicit p: Parameters) extends LazyModule {
val beatBytes = c.width/8
val node = TLManagerNode(Seq(TLManagerPortParameters(
@ -69,3 +55,15 @@ class TLMaskROM(c: MaskROMParams)(implicit p: Parameters) extends LazyModule {
in.e.ready := Bool(true)
}
}
object MaskROM {
def attach(params: MaskROMParams, bus: TLBusWrapper)(implicit p: Parameters): TLMaskROM = {
val maskROM = LazyModule(new TLMaskROM(params))
maskROM.node := bus.coupleTo("MaskROM") {
TLFragmenter(maskROM.beatBytes, bus.blockBytes) :*= TLWidthWidget(bus) := _
}
InModuleBody { maskROM.module.clock := bus.module.clock }
InModuleBody { maskROM.module.reset := bus.module.reset }
maskROM
}
}