Fix CanHaveClockTap

This commit is contained in:
Jerry Zhao
2024-01-11 16:40:57 -08:00
parent 45d74f6db2
commit f84b2428d5

View File

@@ -13,10 +13,10 @@ import freechips.rocketchip.prci._
case object ClockTapKey extends Field[Boolean](true) case object ClockTapKey extends Field[Boolean](true)
trait CanHaveClockTap { this: BaseSubsystem => trait CanHaveClockTap { this: BaseSubsystem =>
require(p(SubsystemDriveAsyncClockGroupsKey).isEmpty, "Subsystem asyncClockGroups must be undriven") require(!p(SubsystemDriveClockGroupsFromIO), "Subsystem must not drive clocks from IO")
val clockTapNode = Option.when(p(ClockTapKey)) { val clockTapNode = Option.when(p(ClockTapKey)) {
val clockTap = ClockSinkNode(Seq(ClockSinkParameters(name=Some("clock_tap")))) val clockTap = ClockSinkNode(Seq(ClockSinkParameters(name=Some("clock_tap"))))
clockTap := ClockGroup() := asyncClockGroupsNode clockTap := ClockGroup() := allClockGroupsNode
clockTap clockTap
} }
val clockTapIO = clockTapNode.map { node => InModuleBody { val clockTapIO = clockTapNode.map { node => InModuleBody {