Merge remote-tracking branch 'origin/dev' into diplomatic-clocks-mbus-crossing
This commit is contained in:
@@ -5,12 +5,13 @@ import chisel3._
|
|||||||
import scala.collection.mutable.{ArrayBuffer}
|
import scala.collection.mutable.{ArrayBuffer}
|
||||||
|
|
||||||
import freechips.rocketchip.prci._
|
import freechips.rocketchip.prci._
|
||||||
import freechips.rocketchip.subsystem.{BaseSubsystem, SubsystemDriveAsyncClockGroupsKey}
|
import freechips.rocketchip.subsystem.{BaseSubsystem, SubsystemDriveAsyncClockGroupsKey, InstantiatesTiles}
|
||||||
import freechips.rocketchip.config.{Parameters, Field, Config}
|
import freechips.rocketchip.config.{Parameters, Field, Config}
|
||||||
import freechips.rocketchip.diplomacy.{OutwardNodeHandle, InModuleBody, LazyModule}
|
import freechips.rocketchip.diplomacy.{OutwardNodeHandle, InModuleBody, LazyModule}
|
||||||
import freechips.rocketchip.util.{ResetCatchAndSync}
|
import freechips.rocketchip.util.{ResetCatchAndSync}
|
||||||
|
|
||||||
import barstools.iocell.chisel._
|
import barstools.iocell.chisel._
|
||||||
|
import testchipip.{TLTileResetCtrl}
|
||||||
|
|
||||||
import chipyard.clocking._
|
import chipyard.clocking._
|
||||||
|
|
||||||
@@ -109,9 +110,20 @@ object ClockingSchemeGenerators {
|
|||||||
l.asyncClockGroupsNode
|
l.asyncClockGroupsNode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add a control register for each tile's reset
|
||||||
|
val resetSetter = chiptop.lazySystem match {
|
||||||
|
case sys: BaseSubsystem with InstantiatesTiles => TLTileResetCtrl(sys)
|
||||||
|
case _ => ClockGroupEphemeralNode()
|
||||||
|
}
|
||||||
|
|
||||||
val aggregator = LazyModule(new ClockGroupAggregator("allClocks")).node
|
val aggregator = LazyModule(new ClockGroupAggregator("allClocks")).node
|
||||||
chiptop.implicitClockSinkNode := ClockGroup() := aggregator
|
(chiptop.implicitClockSinkNode
|
||||||
systemAsyncClockGroup :*= ClockGroupNamePrefixer() :*= aggregator
|
:= ClockGroup()
|
||||||
|
:= aggregator)
|
||||||
|
(systemAsyncClockGroup
|
||||||
|
:*= resetSetter
|
||||||
|
:*= ClockGroupNamePrefixer()
|
||||||
|
:*= aggregator)
|
||||||
|
|
||||||
val referenceClockSource = ClockSourceNode(Seq(ClockSourceParameters()))
|
val referenceClockSource = ClockSourceNode(Seq(ClockSourceParameters()))
|
||||||
(aggregator
|
(aggregator
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ class LoopbackNICRocketConfig extends Config(
|
|||||||
|
|
||||||
// DOC include start: l1scratchpadrocket
|
// DOC include start: l1scratchpadrocket
|
||||||
class ScratchpadOnlyRocketConfig extends Config(
|
class ScratchpadOnlyRocketConfig extends Config(
|
||||||
|
new testchipip.WithSerialPBusMem ++
|
||||||
new freechips.rocketchip.subsystem.WithNMemoryChannels(0) ++ // remove offchip mem port
|
new freechips.rocketchip.subsystem.WithNMemoryChannels(0) ++ // remove offchip mem port
|
||||||
new freechips.rocketchip.subsystem.WithNBanks(0) ++
|
new freechips.rocketchip.subsystem.WithNBanks(0) ++
|
||||||
new freechips.rocketchip.subsystem.WithNoMemPort ++
|
new freechips.rocketchip.subsystem.WithNoMemPort ++
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import freechips.rocketchip.config.{Field, Config, Parameters}
|
|||||||
import freechips.rocketchip.diplomacy.{LazyModule}
|
import freechips.rocketchip.diplomacy.{LazyModule}
|
||||||
import freechips.rocketchip.devices.debug.{Debug, HasPeripheryDebugModuleImp}
|
import freechips.rocketchip.devices.debug.{Debug, HasPeripheryDebugModuleImp}
|
||||||
import freechips.rocketchip.amba.axi4.{AXI4Bundle}
|
import freechips.rocketchip.amba.axi4.{AXI4Bundle}
|
||||||
import freechips.rocketchip.subsystem.{CanHaveMasterAXI4MemPort, HasExtInterruptsModuleImp, BaseSubsystem, HasTilesModuleImp}
|
import freechips.rocketchip.subsystem.{CanHaveMasterAXI4MemPort, HasExtInterruptsModuleImp, BaseSubsystem, HasTilesModuleImp, ExtMem}
|
||||||
import freechips.rocketchip.tile.{RocketTile}
|
import freechips.rocketchip.tile.{RocketTile}
|
||||||
import sifive.blocks.devices.uart._
|
import sifive.blocks.devices.uart._
|
||||||
|
|
||||||
@@ -67,9 +67,10 @@ class WithFireSimIOCellModels extends Config((site, here, up) => {
|
|||||||
|
|
||||||
class WithSerialBridge extends OverrideHarnessBinder({
|
class WithSerialBridge extends OverrideHarnessBinder({
|
||||||
(system: CanHavePeripheryTLSerial, th: HasHarnessSignalReferences, ports: Seq[ClockedIO[SerialIO]]) => {
|
(system: CanHavePeripheryTLSerial, th: HasHarnessSignalReferences, ports: Seq[ClockedIO[SerialIO]]) => {
|
||||||
ports.map { p =>
|
ports.map { port =>
|
||||||
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, p, th.harnessReset)
|
implicit val p = GetSystemParameters(system)
|
||||||
SerialBridge(p.clock, ram.module.io.tsi_ser, MainMemoryConsts.globalName)(GetSystemParameters(system))
|
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, port, th.harnessReset)
|
||||||
|
SerialBridge(port.clock, ram.module.io.tsi_ser, p(ExtMem).map(_ => MainMemoryConsts.globalName))
|
||||||
}
|
}
|
||||||
Nil
|
Nil
|
||||||
}
|
}
|
||||||
|
|||||||
Submodule generators/testchipip updated: 51240a9a89...03af7aa539
@@ -83,6 +83,8 @@ object GenerateSimFiles extends App with HasGenerateSimConfig {
|
|||||||
}
|
}
|
||||||
def resources(sim: Simulator): Seq[String] = Seq(
|
def resources(sim: Simulator): Seq[String] = Seq(
|
||||||
"/testchipip/csrc/SimSerial.cc",
|
"/testchipip/csrc/SimSerial.cc",
|
||||||
|
"/testchipip/csrc/testchip_tsi.cc",
|
||||||
|
"/testchipip/csrc/testchip_tsi.h",
|
||||||
"/testchipip/csrc/SimDRAM.cc",
|
"/testchipip/csrc/SimDRAM.cc",
|
||||||
"/testchipip/csrc/mm.h",
|
"/testchipip/csrc/mm.h",
|
||||||
"/testchipip/csrc/mm.cc",
|
"/testchipip/csrc/mm.cc",
|
||||||
|
|||||||
Submodule sims/firesim updated: 64b55aff39...a8900919cb
Submodule software/firemarshal updated: 83b866104c...45aebace86
Reference in New Issue
Block a user