2017-08-19 03:21:04 +02:00
|
|
|
// See LICENSE for license details.
|
|
|
|
package sifive.freedom.unleashed.u500vc707devkit
|
|
|
|
|
|
|
|
import Chisel._
|
|
|
|
|
|
|
|
import freechips.rocketchip.config._
|
2018-03-06 00:45:01 +01:00
|
|
|
import freechips.rocketchip.subsystem._
|
2017-08-19 03:21:04 +02:00
|
|
|
import freechips.rocketchip.devices.debug._
|
|
|
|
import freechips.rocketchip.devices.tilelink._
|
|
|
|
import freechips.rocketchip.diplomacy._
|
|
|
|
import freechips.rocketchip.system._
|
|
|
|
|
|
|
|
import sifive.blocks.devices.gpio._
|
|
|
|
import sifive.blocks.devices.spi._
|
|
|
|
import sifive.blocks.devices.uart._
|
|
|
|
|
|
|
|
import sifive.fpgashells.devices.xilinx.xilinxvc707mig._
|
|
|
|
import sifive.fpgashells.devices.xilinx.xilinxvc707pciex1._
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
// U500VC707DevKitSystem
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
2018-03-06 00:45:01 +01:00
|
|
|
class U500VC707DevKitSystem(implicit p: Parameters) extends RocketSubsystem
|
2017-08-19 03:21:04 +02:00
|
|
|
with HasPeripheryMaskROMSlave
|
|
|
|
with HasPeripheryDebug
|
|
|
|
with HasSystemErrorSlave
|
|
|
|
with HasPeripheryUART
|
|
|
|
with HasPeripherySPI
|
|
|
|
with HasPeripheryGPIO
|
|
|
|
with HasMemoryXilinxVC707MIG
|
|
|
|
with HasSystemXilinxVC707PCIeX1 {
|
|
|
|
override lazy val module = new U500VC707DevKitSystemModule(this)
|
|
|
|
}
|
|
|
|
|
|
|
|
class U500VC707DevKitSystemModule[+L <: U500VC707DevKitSystem](_outer: L)
|
2018-03-06 00:45:01 +01:00
|
|
|
extends RocketSubsystemModuleImp(_outer)
|
2017-08-19 03:21:04 +02:00
|
|
|
with HasRTCModuleImp
|
|
|
|
with HasPeripheryDebugModuleImp
|
|
|
|
with HasPeripheryUARTModuleImp
|
|
|
|
with HasPeripherySPIModuleImp
|
|
|
|
with HasPeripheryGPIOModuleImp
|
|
|
|
with HasMemoryXilinxVC707MIGModuleImp
|
|
|
|
with HasSystemXilinxVC707PCIeX1ModuleImp {
|
|
|
|
// Reset vector is set to the location of the mask rom
|
|
|
|
val maskROMParams = p(PeripheryMaskROMKey)
|
|
|
|
global_reset_vector := maskROMParams(0).address.U
|
|
|
|
}
|