Build out a more complete multiclock example configuration
This commit is contained in:
@@ -42,7 +42,7 @@ case class CoherentMulticlockBusTopologyParams(
|
|||||||
)
|
)
|
||||||
|
|
||||||
// This differs from upstream only in that it does not use the legacy crossTo
|
// This differs from upstream only in that it does not use the legacy crossTo
|
||||||
// and crossFrom functions to ensure driveClockFromMaster = None
|
// and crossFrom functions, and it ensures driveClockFromMaster = None
|
||||||
case class HierarchicalMulticlockBusTopologyParams(
|
case class HierarchicalMulticlockBusTopologyParams(
|
||||||
pbus: PeripheryBusParams,
|
pbus: PeripheryBusParams,
|
||||||
fbus: FrontBusParams,
|
fbus: FrontBusParams,
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ class AbstractConfig extends Config(
|
|||||||
new chipyard.config.WithUART ++ // add a UART
|
new chipyard.config.WithUART ++ // add a UART
|
||||||
new chipyard.config.WithL2TLBs(1024) ++ // use L2 TLBs
|
new chipyard.config.WithL2TLBs(1024) ++ // use L2 TLBs
|
||||||
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.WithPeripheryBusFrequencyAsDefault ++ // Unspecified clocks will match the frequency specified by the pbus dtsFrequency parameter
|
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 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)
|
||||||
new freechips.rocketchip.subsystem.WithNoSlavePort ++ // no top-level MMIO slave port (overrides default set in rocketchip)
|
new freechips.rocketchip.subsystem.WithNoSlavePort ++ // no top-level MMIO slave port (overrides default set in rocketchip)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package chipyard
|
package chipyard
|
||||||
|
|
||||||
import freechips.rocketchip.config.{Config}
|
import freechips.rocketchip.config.{Config}
|
||||||
|
import freechips.rocketchip.diplomacy.{AsynchronousCrossing}
|
||||||
|
|
||||||
// --------------
|
// --------------
|
||||||
// Rocket Configs
|
// Rocket Configs
|
||||||
@@ -175,13 +176,19 @@ class MMIORocketConfig extends Config(
|
|||||||
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
||||||
new chipyard.config.AbstractConfig)
|
new chipyard.config.AbstractConfig)
|
||||||
|
|
||||||
class DividedClockRocketConfig extends Config(
|
class MulticlockRocketConfig extends Config(
|
||||||
new chipyard.config.WithTileFrequency(200.0) ++
|
|
||||||
new freechips.rocketchip.subsystem.WithRationalRocketTiles ++ // Add rational crossings between RocketTile and uncore
|
|
||||||
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
||||||
new chipyard.config.WithMemoryBusFrequency(50.0) ++
|
// Frequency specifications
|
||||||
new chipyard.config.WithAsynchrousMemoryBusCrossing ++
|
new chipyard.config.WithTileFrequency(1600.0) ++ // Matches the maximum frequency of U540
|
||||||
new testchipip.WithAsynchronousSerialSlaveCrossing ++
|
new chipyard.config.WithSystemBusFrequency(800.0) ++ // Ditto
|
||||||
|
new chipyard.config.WithMemoryBusFrequency(1000.0) ++ // 2x the U540 freq (appropriate for a 128b Mbus)
|
||||||
|
new chipyard.config.WithPeripheryBusFrequency(100) ++ // Retains the default pbus frequency
|
||||||
|
new chipyard.config.WithSystemBusFrequencyAsDefault ++ // All unspecified clock frequencies, notably the implicit clock, will use the sbus freq (800 MHz)
|
||||||
|
// Crossing specifications
|
||||||
|
new chipyard.config.WithCbusToPbusCrossingType(AsynchronousCrossing()) ++ // Add Async crossing between PBUS and CBUS
|
||||||
|
new chipyard.config.WithSbusToMbusCrossingType(AsynchronousCrossing()) ++ // Add Async crossings between backside of L2 and MBUS
|
||||||
|
new freechips.rocketchip.subsystem.WithRationalRocketTiles ++ // Add rational crossings between RocketTile and uncore
|
||||||
|
new testchipip.WithAsynchronousSerialSlaveCrossing ++ // Add Async crossing between serial and MBUS. Its master-side is tied to the FBUS
|
||||||
new chipyard.config.AbstractConfig)
|
new chipyard.config.AbstractConfig)
|
||||||
|
|
||||||
class LBWIFRocketConfig extends Config(
|
class LBWIFRocketConfig extends Config(
|
||||||
|
|||||||
Reference in New Issue
Block a user