2016-11-28 01:16:37 +01:00
|
|
|
// See LICENSE.SiFive for license details.
|
2016-09-19 20:00:13 +02:00
|
|
|
|
|
|
|
package rocketchip
|
|
|
|
|
|
|
|
import Chisel._
|
2016-11-18 23:05:14 +01:00
|
|
|
import config._
|
2016-09-22 01:54:35 +02:00
|
|
|
import junctions._
|
2016-09-19 20:00:13 +02:00
|
|
|
import rocketchip._
|
|
|
|
|
2016-11-23 00:01:45 +01:00
|
|
|
/** Example Top with Periphery (w/o coreplex) */
|
|
|
|
abstract class ExampleTop(implicit p: Parameters) extends BaseTop
|
2017-04-28 23:49:24 +02:00
|
|
|
with PeripheryAsyncExtInterrupts
|
2017-04-20 21:09:02 +02:00
|
|
|
with PeripheryErrorSlave
|
2016-11-04 05:31:26 +01:00
|
|
|
with PeripheryMasterAXI4Mem
|
2016-11-23 01:58:24 +01:00
|
|
|
with PeripheryMasterAXI4MMIO
|
|
|
|
with PeripherySlaveAXI4 {
|
2016-10-29 12:30:49 +02:00
|
|
|
override lazy val module = new ExampleTopModule(this, () => new ExampleTopBundle(this))
|
2016-09-19 20:00:13 +02:00
|
|
|
}
|
|
|
|
|
2016-11-23 00:01:45 +01:00
|
|
|
class ExampleTopBundle[+L <: ExampleTop](_outer: L) extends BaseTopBundle(_outer)
|
2016-09-22 01:54:35 +02:00
|
|
|
with PeripheryExtInterruptsBundle
|
2017-04-20 21:09:02 +02:00
|
|
|
with PeripheryErrorSlaveBundle
|
2016-11-04 05:31:26 +01:00
|
|
|
with PeripheryMasterAXI4MemBundle
|
2016-10-26 01:27:42 +02:00
|
|
|
with PeripheryMasterAXI4MMIOBundle
|
2016-11-23 01:58:24 +01:00
|
|
|
with PeripherySlaveAXI4Bundle
|
2016-09-19 20:00:13 +02:00
|
|
|
|
2016-11-23 00:01:45 +01:00
|
|
|
class ExampleTopModule[+L <: ExampleTop, +B <: ExampleTopBundle[L]](_outer: L, _io: () => B) extends BaseTopModule(_outer, _io)
|
2016-09-22 01:54:35 +02:00
|
|
|
with PeripheryExtInterruptsModule
|
2017-04-20 21:09:02 +02:00
|
|
|
with PeripheryErrorSlaveModule
|
2016-11-04 05:31:26 +01:00
|
|
|
with PeripheryMasterAXI4MemModule
|
2016-10-26 01:27:42 +02:00
|
|
|
with PeripheryMasterAXI4MMIOModule
|
2016-11-23 01:58:24 +01:00
|
|
|
with PeripherySlaveAXI4Module
|
2016-11-16 03:27:52 +01:00
|
|
|
|
2016-11-23 00:01:45 +01:00
|
|
|
class ExampleRocketTop(implicit p: Parameters) extends ExampleTop
|
2016-11-22 01:11:16 +01:00
|
|
|
with PeripheryBootROM
|
2017-02-04 02:18:20 +01:00
|
|
|
with PeripheryZero
|
2017-01-18 21:08:13 +01:00
|
|
|
with PeripheryDebug
|
2016-11-16 03:27:52 +01:00
|
|
|
with PeripheryCounter
|
2016-11-23 00:01:45 +01:00
|
|
|
with HardwiredResetVector
|
|
|
|
with RocketPlexMaster {
|
2016-11-16 03:27:52 +01:00
|
|
|
override lazy val module = new ExampleRocketTopModule(this, () => new ExampleRocketTopBundle(this))
|
|
|
|
}
|
|
|
|
|
2016-11-23 00:01:45 +01:00
|
|
|
class ExampleRocketTopBundle[+L <: ExampleRocketTop](_outer: L) extends ExampleTopBundle(_outer)
|
2016-11-22 01:11:16 +01:00
|
|
|
with PeripheryBootROMBundle
|
2017-02-04 02:18:20 +01:00
|
|
|
with PeripheryZeroBundle
|
2017-01-18 21:08:13 +01:00
|
|
|
with PeripheryDebugBundle
|
2016-11-16 03:27:52 +01:00
|
|
|
with PeripheryCounterBundle
|
|
|
|
with HardwiredResetVectorBundle
|
2016-11-23 00:01:45 +01:00
|
|
|
with RocketPlexMasterBundle
|
2016-11-16 03:27:52 +01:00
|
|
|
|
2016-11-23 00:01:45 +01:00
|
|
|
class ExampleRocketTopModule[+L <: ExampleRocketTop, +B <: ExampleRocketTopBundle[L]](_outer: L, _io: () => B) extends ExampleTopModule(_outer, _io)
|
2016-11-22 01:11:16 +01:00
|
|
|
with PeripheryBootROMModule
|
2017-02-04 02:18:20 +01:00
|
|
|
with PeripheryZeroModule
|
2017-01-18 21:08:13 +01:00
|
|
|
with PeripheryDebugModule
|
2016-11-16 03:27:52 +01:00
|
|
|
with PeripheryCounterModule
|
|
|
|
with HardwiredResetVectorModule
|
2016-11-23 00:01:45 +01:00
|
|
|
with RocketPlexMasterModule
|