Precisely specify bus frequencies
This commit is contained in:
@@ -27,6 +27,8 @@ class WithArtyTweaks extends Config(
|
|||||||
new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++
|
new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++
|
||||||
new chipyard.config.WithDTSTimebase(32000) ++
|
new chipyard.config.WithDTSTimebase(32000) ++
|
||||||
new chipyard.config.WithSystemBusFrequency(32) ++
|
new chipyard.config.WithSystemBusFrequency(32) ++
|
||||||
|
new chipyard.config.WithFrontBusFrequency(32) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(32) ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(32) ++
|
new chipyard.config.WithPeripheryBusFrequency(32) ++
|
||||||
new testchipip.WithNoSerialTL
|
new testchipip.WithNoSerialTL
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ class WithArty100TTweaks extends Config(
|
|||||||
new chipyard.config.WithFrontBusFrequency(50.0) ++
|
new chipyard.config.WithFrontBusFrequency(50.0) ++
|
||||||
new chipyard.config.WithSystemBusFrequency(50.0) ++
|
new chipyard.config.WithSystemBusFrequency(50.0) ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(50.0) ++
|
new chipyard.config.WithPeripheryBusFrequency(50.0) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(50.0) ++
|
||||||
new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++
|
new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++
|
||||||
new chipyard.clocking.WithPassthroughClockGenerator ++
|
new chipyard.clocking.WithPassthroughClockGenerator ++
|
||||||
new chipyard.config.WithNoDebug ++ // no jtag
|
new chipyard.config.WithNoDebug ++ // no jtag
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ class WithNexysVideoTweaks extends Config(
|
|||||||
new chipyard.config.WithFrontBusFrequency(50.0) ++
|
new chipyard.config.WithFrontBusFrequency(50.0) ++
|
||||||
new chipyard.config.WithSystemBusFrequency(50.0) ++
|
new chipyard.config.WithSystemBusFrequency(50.0) ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(50.0) ++
|
new chipyard.config.WithPeripheryBusFrequency(50.0) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(50.0) ++
|
||||||
new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++
|
new chipyard.harness.WithAllClocksFromHarnessClockInstantiator ++
|
||||||
new chipyard.clocking.WithPassthroughClockGenerator ++
|
new chipyard.clocking.WithPassthroughClockGenerator ++
|
||||||
new chipyard.config.WithNoDebug ++ // no jtag
|
new chipyard.config.WithNoDebug ++ // no jtag
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class WithSystemModifications extends Config((site, here, up) => {
|
|||||||
p.copy(hang = 0x10000, contentFileName = s"./fpga/src/main/resources/vc707/sdboot/build/sdboot.bin")
|
p.copy(hang = 0x10000, contentFileName = s"./fpga/src/main/resources/vc707/sdboot/build/sdboot.bin")
|
||||||
}
|
}
|
||||||
case ExtMem => up(ExtMem, site).map(x => x.copy(master = x.master.copy(size = site(VC7074GDDRSize)))) // set extmem to DDR size (note the size)
|
case ExtMem => up(ExtMem, site).map(x => x.copy(master = x.master.copy(size = site(VC7074GDDRSize)))) // set extmem to DDR size (note the size)
|
||||||
case SerialTLKey => None // remove serialized tl port
|
case SerialTLKey => Nil // remove serialized tl port
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithVC707Tweaks extends Config (
|
class WithVC707Tweaks extends Config (
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class WithSystemModifications extends Config((site, here, up) => {
|
|||||||
p.copy(hang = 0x10000, contentFileName = s"./fpga/src/main/resources/vcu118/sdboot/build/sdboot.bin")
|
p.copy(hang = 0x10000, contentFileName = s"./fpga/src/main/resources/vcu118/sdboot/build/sdboot.bin")
|
||||||
}
|
}
|
||||||
case ExtMem => up(ExtMem, site).map(x => x.copy(master = x.master.copy(size = site(VCU118DDRSize)))) // set extmem to DDR size
|
case ExtMem => up(ExtMem, site).map(x => x.copy(master = x.master.copy(size = site(VCU118DDRSize)))) // set extmem to DDR size
|
||||||
case SerialTLKey => None // remove serialized tl port
|
case SerialTLKey => Nil // remove serialized tl port
|
||||||
})
|
})
|
||||||
|
|
||||||
// DOC include start: AbstractVCU118 and Rocket
|
// DOC include start: AbstractVCU118 and Rocket
|
||||||
@@ -46,6 +46,7 @@ class WithVCU118Tweaks extends Config(
|
|||||||
new chipyard.clocking.WithPassthroughClockGenerator ++
|
new chipyard.clocking.WithPassthroughClockGenerator ++
|
||||||
new chipyard.config.WithMemoryBusFrequency(100) ++
|
new chipyard.config.WithMemoryBusFrequency(100) ++
|
||||||
new chipyard.config.WithSystemBusFrequency(100) ++
|
new chipyard.config.WithSystemBusFrequency(100) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(100) ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(100) ++
|
new chipyard.config.WithPeripheryBusFrequency(100) ++
|
||||||
new WithFPGAFrequency(100) ++ // default 100MHz freq
|
new WithFPGAFrequency(100) ++ // default 100MHz freq
|
||||||
// harness binders
|
// harness binders
|
||||||
@@ -76,7 +77,9 @@ class BoomVCU118Config extends Config(
|
|||||||
class WithFPGAFrequency(fMHz: Double) extends Config(
|
class WithFPGAFrequency(fMHz: Double) extends Config(
|
||||||
new chipyard.harness.WithHarnessBinderClockFreqMHz(fMHz) ++
|
new chipyard.harness.WithHarnessBinderClockFreqMHz(fMHz) ++
|
||||||
new chipyard.config.WithSystemBusFrequency(fMHz) ++
|
new chipyard.config.WithSystemBusFrequency(fMHz) ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(fMHz) ++ // assumes using PBUS as default freq.
|
new chipyard.config.WithPeripheryBusFrequency(fMHz) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(fMHz) ++
|
||||||
|
new chipyard.config.WithFrontBusFrequency(fMHz) ++
|
||||||
new chipyard.config.WithMemoryBusFrequency(fMHz)
|
new chipyard.config.WithMemoryBusFrequency(fMHz)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import testchipip.{CanHavePeripheryTLSerial, SerialTLKey}
|
|||||||
trait CanHaveHTIF { this: BaseSubsystem =>
|
trait CanHaveHTIF { this: BaseSubsystem =>
|
||||||
// Advertise HTIF if system can communicate with fesvr
|
// Advertise HTIF if system can communicate with fesvr
|
||||||
if (this match {
|
if (this match {
|
||||||
case _: CanHavePeripheryTLSerial if (!p(SerialTLKey).isEmpty) => true
|
case _: CanHavePeripheryTLSerial if (p(SerialTLKey).size != 0) => true
|
||||||
case _: HasPeripheryDebug if (!p(DebugModuleKey).isEmpty && p(ExportDebug).dmi) => true
|
case _: HasPeripheryDebug if (!p(DebugModuleKey).isEmpty && p(ExportDebug).dmi) => true
|
||||||
case _ => false
|
case _ => false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
@@ -85,6 +85,9 @@ class ChipBringupHostConfig extends Config(
|
|||||||
new chipyard.config.WithFrontBusFrequency(75.0) ++ // run all buses of this system at 75 MHz
|
new chipyard.config.WithFrontBusFrequency(75.0) ++ // run all buses of this system at 75 MHz
|
||||||
new chipyard.config.WithMemoryBusFrequency(75.0) ++
|
new chipyard.config.WithMemoryBusFrequency(75.0) ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(75.0) ++
|
new chipyard.config.WithPeripheryBusFrequency(75.0) ++
|
||||||
|
new chipyard.config.WithSystemBusFrequency(75.0) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(75.0) ++
|
||||||
|
new chipyard.config.WithOffchipBusFrequency(75.0) ++
|
||||||
|
|
||||||
// Base is the no-cores config
|
// Base is the no-cores config
|
||||||
new chipyard.NoCoresConfig)
|
new chipyard.NoCoresConfig)
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ class WithFireSimHighPerfClocking extends Config(
|
|||||||
new chipyard.config.WithPeripheryBusFrequency(3200.0) ++
|
new chipyard.config.WithPeripheryBusFrequency(3200.0) ++
|
||||||
new chipyard.config.WithSystemBusFrequency(3200.0) ++
|
new chipyard.config.WithSystemBusFrequency(3200.0) ++
|
||||||
new chipyard.config.WithFrontBusFrequency(3200.0) ++
|
new chipyard.config.WithFrontBusFrequency(3200.0) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(3200.0) ++
|
||||||
// Optional: These three configs put the DRAM memory system in it's own clock domain.
|
// Optional: These three configs put the DRAM memory system in it's own clock domain.
|
||||||
// Removing the first config will result in the FASED timing model running
|
// Removing the first config will result in the FASED timing model running
|
||||||
// at the pbus freq (above, 3.2 GHz), which is outside the range of valid DDR3 speedgrades.
|
// at the pbus freq (above, 3.2 GHz), which is outside the range of valid DDR3 speedgrades.
|
||||||
@@ -138,8 +139,10 @@ class WithFireSimConfigTweaks extends Config(
|
|||||||
// Using some other frequency will require runnings the FASED runtime configuration generator
|
// Using some other frequency will require runnings the FASED runtime configuration generator
|
||||||
// to generate faithful DDR3 timing values.
|
// to generate faithful DDR3 timing values.
|
||||||
new chipyard.config.WithSystemBusFrequency(1000.0) ++
|
new chipyard.config.WithSystemBusFrequency(1000.0) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(1000.0) ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(1000.0) ++
|
new chipyard.config.WithPeripheryBusFrequency(1000.0) ++
|
||||||
new chipyard.config.WithMemoryBusFrequency(1000.0) ++
|
new chipyard.config.WithMemoryBusFrequency(1000.0) ++
|
||||||
|
new chipyard.config.WithFrontBusFrequency(1000.0) ++
|
||||||
new WithFireSimDesignTweaks
|
new WithFireSimDesignTweaks
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -185,6 +188,8 @@ class WithFireSimTestChipConfigTweaks extends Config(
|
|||||||
new chipyard.config.WithSystemBusFrequency(500.0) ++ // Realistic system bus frequency
|
new chipyard.config.WithSystemBusFrequency(500.0) ++ // Realistic system bus frequency
|
||||||
new chipyard.config.WithMemoryBusFrequency(1000.0) ++ // Needs to be 1000 MHz to model DDR performance accurately
|
new chipyard.config.WithMemoryBusFrequency(1000.0) ++ // Needs to be 1000 MHz to model DDR performance accurately
|
||||||
new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Match the sbus and pbus frequency
|
new chipyard.config.WithPeripheryBusFrequency(500.0) ++ // Match the sbus and pbus frequency
|
||||||
|
new chipyard.config.WithFrontBusFrequency(500.0) ++ // Match the sbus and fbus frequency
|
||||||
|
new chipyard.config.WithControlBusFrequency(500.0) ++ // Match the sbus and cbus frequency
|
||||||
new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "pbus", "fbus", "cbus", "implicit"), Seq("tile"))) ++
|
new chipyard.clocking.WithClockGroupsCombinedByName(("uncore", Seq("sbus", "pbus", "fbus", "cbus", "implicit"), Seq("tile"))) ++
|
||||||
// Crossing specifications
|
// Crossing specifications
|
||||||
new chipyard.config.WithCbusToPbusCrossingType(AsynchronousCrossing()) ++ // Add Async crossing between PBUS and CBUS
|
new chipyard.config.WithCbusToPbusCrossingType(AsynchronousCrossing()) ++ // Add Async crossing between PBUS and CBUS
|
||||||
@@ -245,6 +250,10 @@ class FireSimSmallSystemConfig extends Config(
|
|||||||
new WithDefaultMemModel ++
|
new WithDefaultMemModel ++
|
||||||
new WithBootROM ++
|
new WithBootROM ++
|
||||||
new chipyard.config.WithPeripheryBusFrequency(3200.0) ++
|
new chipyard.config.WithPeripheryBusFrequency(3200.0) ++
|
||||||
|
new chipyard.config.WithControlBusFrequency(3200.0) ++
|
||||||
|
new chipyard.config.WithSystemBusFrequency(3200.0) ++
|
||||||
|
new chipyard.config.WithFrontBusFrequency(3200.0) ++
|
||||||
|
new chipyard.config.WithMemoryBusFrequency(3200.0) ++
|
||||||
new WithoutClockGating ++
|
new WithoutClockGating ++
|
||||||
new WithoutTLMonitors ++
|
new WithoutTLMonitors ++
|
||||||
new freechips.rocketchip.subsystem.WithExtMemSize(1 << 28) ++
|
new freechips.rocketchip.subsystem.WithExtMemSize(1 << 28) ++
|
||||||
|
|||||||
Reference in New Issue
Block a user