X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmain%2Fscala%2Fdevices%2Fmockaon%2FMockAONPeriphery.scala;h=1f99c313dfe3351ec705274f071e9118e265a5dd;hb=9ba47b76c6e36df9d8402b829fd5002489ebf476;hp=870ba2e63b3226becf6bab39eb528aff7865a17e;hpb=7916ef5249c72a3a84c599d123760f4d716de58a;p=sifive-blocks.git diff --git a/src/main/scala/devices/mockaon/MockAONPeriphery.scala b/src/main/scala/devices/mockaon/MockAONPeriphery.scala index 870ba2e..1f99c31 100644 --- a/src/main/scala/devices/mockaon/MockAONPeriphery.scala +++ b/src/main/scala/devices/mockaon/MockAONPeriphery.scala @@ -2,33 +2,38 @@ package sifive.blocks.devices.mockaon import Chisel._ +import config.Field +import coreplex.CoreplexRISCVPlatform import diplomacy.LazyModule -import rocketchip.{TopNetwork,TopNetworkModule} +import rocketchip.{ + HasTopLevelNetworks, + HasTopLevelNetworksBundle, + HasTopLevelNetworksModule +} import uncore.tilelink2.{IntXing, TLAsyncCrossingSource, TLFragmenter} -import coreplex._ -trait PeripheryMockAON extends TopNetwork { - val mockAONConfig: MockAONConfig +case object PeripheryMockAONKey extends Field[MockAONParams] + +trait HasPeripheryMockAON extends HasTopLevelNetworks { val coreplex: CoreplexRISCVPlatform // We override the clock & Reset here so that all synchronizers, etc // are in the proper clock domain. - val aon = LazyModule(new MockAONWrapper(mockAONConfig)) + val mockAONParams= p(PeripheryMockAONKey) + val aon = LazyModule(new MockAONWrapper(peripheryBusBytes, mockAONParams)) val aon_int = LazyModule(new IntXing) - aon.node := TLAsyncCrossingSource()(TLFragmenter(peripheryBusConfig.beatBytes, cacheBlockBytes)(peripheryBus.node)) + aon.node := TLAsyncCrossingSource()(TLFragmenter(peripheryBusBytes, cacheBlockBytes)(peripheryBus.node)) aon_int.intnode := aon.intnode intBus.intnode := aon_int.intnode } -trait PeripheryMockAONBundle { +trait HasPeripheryMockAONBundle extends HasTopLevelNetworksBundle { val aon = new MockAONWrapperBundle() } -trait PeripheryMockAONModule { - this: TopNetworkModule { - val outer: PeripheryMockAON - val io: PeripheryMockAONBundle - } => +trait HasPeripheryMockAONModule extends HasTopLevelNetworksModule { + val outer: HasPeripheryMockAON + val io: HasPeripheryMockAONBundle io.aon <> outer.aon.module.io @@ -39,4 +44,5 @@ trait PeripheryMockAONModule { outer.coreplex.module.io.rtcToggle := outer.aon.module.io.rtc.asUInt.toBool + outer.aon.module.io.ndreset := outer.coreplex.module.io.ndreset }