Set both MBUS/PBUS in configs | Add simple check for correct clocks
This commit is contained in:
@@ -40,12 +40,15 @@ class WithSystemModifications extends Config((site, here, up) => {
|
|||||||
|
|
||||||
// DOC include start: AbstractVCU118 and Rocket
|
// DOC include start: AbstractVCU118 and Rocket
|
||||||
class WithVCU118Tweaks extends Config(
|
class WithVCU118Tweaks extends Config(
|
||||||
|
// harness binders
|
||||||
new WithUART ++
|
new WithUART ++
|
||||||
new WithSPISDCard ++
|
new WithSPISDCard ++
|
||||||
new WithDDRMem ++
|
new WithDDRMem ++
|
||||||
|
// io binders
|
||||||
new WithUARTIOPassthrough ++
|
new WithUARTIOPassthrough ++
|
||||||
new WithSPIIOPassthrough ++
|
new WithSPIIOPassthrough ++
|
||||||
new WithTLIOPassthrough ++
|
new WithTLIOPassthrough ++
|
||||||
|
// other configuration
|
||||||
new WithDefaultPeripherals ++
|
new WithDefaultPeripherals ++
|
||||||
new chipyard.config.WithTLBackingMemory ++ // use TL backing memory
|
new chipyard.config.WithTLBackingMemory ++ // use TL backing memory
|
||||||
new WithSystemModifications ++ // setup busses, use sdboot bootrom, setup ext. mem. size
|
new WithSystemModifications ++ // setup busses, use sdboot bootrom, setup ext. mem. size
|
||||||
@@ -65,7 +68,10 @@ class BoomVCU118Config extends Config(
|
|||||||
new WithVCU118Tweaks ++
|
new WithVCU118Tweaks ++
|
||||||
new chipyard.MegaBoomConfig)
|
new chipyard.MegaBoomConfig)
|
||||||
|
|
||||||
class WithFPGAFrequency(fMHz: Double) extends chipyard.config.WithPeripheryBusFrequency(fMHz)
|
class WithFPGAFrequency(fMHz: Double) extends Config(
|
||||||
|
new chipyard.config.WithPeripheryBusFrequency(fMHz) ++
|
||||||
|
new chipyard.config.WithMemoryBusFrequency(fMHz)
|
||||||
|
)
|
||||||
|
|
||||||
class WithFPGAFreq25MHz extends WithFPGAFrequency(25)
|
class WithFPGAFreq25MHz extends WithFPGAFrequency(25)
|
||||||
class WithFPGAFreq50MHz extends WithFPGAFrequency(50)
|
class WithFPGAFreq50MHz extends WithFPGAFrequency(50)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import sifive.blocks.devices.uart._
|
|||||||
import sifive.blocks.devices.spi._
|
import sifive.blocks.devices.spi._
|
||||||
import sifive.blocks.devices.gpio._
|
import sifive.blocks.devices.gpio._
|
||||||
|
|
||||||
import chipyard.{HasHarnessSignalReferences, HasTestHarnessFunctions, BuildTop, ChipTop, ExtTLMem, CanHaveMasterTLMemPort, DefaultClockFrequencyKey}
|
import chipyard.{HasHarnessSignalReferences, HasTestHarnessFunctions, BuildTop, ChipTop, ExtTLMem, CanHaveMasterTLMemPort, DefaultClockFrequencyKey, HasReferenceClockFreq}
|
||||||
import chipyard.iobinders.{HasIOBinders}
|
import chipyard.iobinders.{HasIOBinders}
|
||||||
import chipyard.harness.{ApplyHarnessBinders}
|
import chipyard.harness.{ApplyHarnessBinders}
|
||||||
|
|
||||||
@@ -135,4 +135,11 @@ class VCU118FPGATestHarnessImp(_outer: VCU118FPGATestHarness) extends LazyRawMod
|
|||||||
_outer.topDesign match { case d: HasIOBinders =>
|
_outer.topDesign match { case d: HasIOBinders =>
|
||||||
ApplyHarnessBinders(this, d.lazySystem, d.portMap)
|
ApplyHarnessBinders(this, d.lazySystem, d.portMap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check the top-level reference clock is equal to the default
|
||||||
|
// non-exhaustive since you need all ChipTop clocks to equal the default
|
||||||
|
_outer.topDesign match {
|
||||||
|
case d: HasReferenceClockFreq => require(d.refClockFreqMHz == p(DefaultClockFrequencyKey))
|
||||||
|
case _ =>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ class AbstractConfig extends Config(
|
|||||||
new chipyard.config.WithNoSubsystemDrivenClocks ++ // drive the subsystem diplomatic clocks from ChipTop instead of using implicit clocks
|
new chipyard.config.WithNoSubsystemDrivenClocks ++ // drive the subsystem diplomatic clocks from ChipTop instead of using implicit clocks
|
||||||
new chipyard.config.WithInheritBusFrequencyAssignments ++ // Unspecified clocks within a bus will receive the bus frequency if set
|
new chipyard.config.WithInheritBusFrequencyAssignments ++ // Unspecified clocks within a bus will receive the bus frequency if set
|
||||||
new chipyard.config.WithPeripheryBusFrequencyAsDefault ++ // Unspecified frequencies with match the pbus frequency (which is always set)
|
new chipyard.config.WithPeripheryBusFrequencyAsDefault ++ // Unspecified frequencies with match the pbus frequency (which is always set)
|
||||||
|
new chipyard.config.WithMemoryBusFrequency(100.0) ++ // Default 100 MHz mbus
|
||||||
new chipyard.config.WithPeripheryBusFrequency(100.0) ++ // Default 100 MHz pbus
|
new chipyard.config.WithPeripheryBusFrequency(100.0) ++ // Default 100 MHz pbus
|
||||||
new freechips.rocketchip.subsystem.WithJtagDTM ++ // set the debug module to expose a JTAG port
|
new freechips.rocketchip.subsystem.WithJtagDTM ++ // set the debug module to expose a JTAG port
|
||||||
new freechips.rocketchip.subsystem.WithNoMMIOPort ++ // no top-level MMIO master port (overrides default set in rocketchip)
|
new freechips.rocketchip.subsystem.WithNoMMIOPort ++ // no top-level MMIO master port (overrides default set in rocketchip)
|
||||||
|
|||||||
Reference in New Issue
Block a user