2016-09-19 20:00:13 +02:00
|
|
|
// See LICENSE for license details.
|
|
|
|
|
|
|
|
package rocketchip
|
|
|
|
|
|
|
|
import Chisel._
|
|
|
|
import cde.{Parameters, Field}
|
2016-09-22 01:54:35 +02:00
|
|
|
import junctions._
|
|
|
|
import coreplex._
|
2016-09-19 20:00:13 +02:00
|
|
|
import rocketchip._
|
|
|
|
|
|
|
|
/** Example Top with Periphery */
|
2016-10-29 12:30:49 +02:00
|
|
|
class ExampleTop[+C <: BaseCoreplex](_coreplex: Parameters => C)(implicit p: Parameters) extends BaseTop(_coreplex)
|
2016-09-22 01:54:35 +02:00
|
|
|
with PeripheryBootROM
|
|
|
|
with PeripheryDebug
|
|
|
|
with PeripheryExtInterrupts
|
|
|
|
with PeripheryMasterMem
|
2016-10-26 01:27:42 +02:00
|
|
|
with PeripheryMasterAXI4MMIO
|
2016-10-28 00:34:37 +02:00
|
|
|
with PeripherySlave
|
|
|
|
with DirectConnection {
|
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-10-29 12:30:49 +02:00
|
|
|
class ExampleTopBundle[+L <: ExampleTop[BaseCoreplex]](_outer: L) extends BaseTopBundle(_outer)
|
2016-09-22 01:54:35 +02:00
|
|
|
with PeripheryBootROMBundle
|
|
|
|
with PeripheryDebugBundle
|
|
|
|
with PeripheryExtInterruptsBundle
|
|
|
|
with PeripheryMasterMemBundle
|
2016-10-26 01:27:42 +02:00
|
|
|
with PeripheryMasterAXI4MMIOBundle
|
2016-09-22 01:54:35 +02:00
|
|
|
with PeripherySlaveBundle
|
2016-09-19 20:00:13 +02:00
|
|
|
|
2016-10-29 12:30:49 +02:00
|
|
|
class ExampleTopModule[+L <: ExampleTop[BaseCoreplex], +B <: ExampleTopBundle[L]](_outer: L, _io: () => B) extends BaseTopModule(_outer, _io)
|
2016-09-22 01:54:35 +02:00
|
|
|
with PeripheryBootROMModule
|
|
|
|
with PeripheryDebugModule
|
|
|
|
with PeripheryExtInterruptsModule
|
|
|
|
with PeripheryMasterMemModule
|
2016-10-26 01:27:42 +02:00
|
|
|
with PeripheryMasterAXI4MMIOModule
|
2016-09-22 01:54:35 +02:00
|
|
|
with PeripherySlaveModule
|
2016-09-20 22:03:21 +02:00
|
|
|
with HardwiredResetVector
|
2016-10-28 00:34:37 +02:00
|
|
|
with DirectConnectionModule
|
2016-09-19 20:00:13 +02:00
|
|
|
|
|
|
|
/** Example Top with TestRAM */
|
2016-10-29 12:30:49 +02:00
|
|
|
class ExampleTopWithTestRAM[+C <: BaseCoreplex](_coreplex: Parameters => C)(implicit p: Parameters) extends ExampleTop(_coreplex)
|
2016-09-19 20:00:13 +02:00
|
|
|
with PeripheryTestRAM {
|
2016-10-29 12:30:49 +02:00
|
|
|
override lazy val module = new ExampleTopWithTestRAMModule(this, () => new ExampleTopWithTestRAMBundle(this))
|
2016-09-19 20:00:13 +02:00
|
|
|
}
|
|
|
|
|
2016-10-29 12:30:49 +02:00
|
|
|
class ExampleTopWithTestRAMBundle[+L <: ExampleTopWithTestRAM[BaseCoreplex]](_outer: L) extends ExampleTopBundle(_outer)
|
2016-09-19 20:00:13 +02:00
|
|
|
with PeripheryTestRAMBundle
|
|
|
|
|
2016-10-29 12:30:49 +02:00
|
|
|
class ExampleTopWithTestRAMModule[+L <: ExampleTopWithTestRAM[BaseCoreplex], +B <: ExampleTopWithTestRAMBundle[L]](_outer: L, _io: () => B) extends ExampleTopModule(_outer, _io)
|
2016-09-19 20:00:13 +02:00
|
|
|
with PeripheryTestRAMModule
|