Unverified Commit 27120ee4 authored by Henry Cook's avatar Henry Cook Committed by GitHub
Browse files

Diplomatic Clock Primitives (#1795)

* clocks: copy clocks package from sifive.fpgashells; update imports

* clocks: bundles can use chisel3 bundle to get cloneType for free

* clocks: use chisel3 in all files

* clocks: add ClockSinkDomain and ClockSourceDomain

* clocks: allow for unspecified clock freqs

* clocks: add TestClockSource test harness clock generators

* clocks: domain nodes are named clockNode

* clocks: source and sink nodes offer fixedClockResources

* rename package from clocks to prci

* clocks: ClockGroup.pickGroupFromCrossingType

* prci: make abstract base ClockDomain class

* prci: add FixedClockBroadcastNode

* tilelink: add fixedClockOpt to HasTLBusParams

* tilelink: add clock nodes to TLBusWrapper

* subsystem: add clockGroupNode to BaseSubsystem

* devices: add example device that can gate clock from TL register-mapped interface

* prci: add draft of ClockDivider adapter

* buswrapper: derive dtsClk from clockNode.fixedClockResources

* util: update ClockDivider to chisel3

* prci: add package object to hold asyncMux helper func

* prci: add ClockGroupSourceNode and ClockGroupSinkNode

* prci: ClockGroup and ClockGroupBroadcast are LazyRawModuleImps

* prci: domain creates clock and reset output IOs

* prci: rename ClockGroupBroadcastNode to ClockGroupAggregateNode

* tilelink: TLBusWrapper includes ClockGroupAggregator

* tilelink: TLBusWrapper  crossTo/FromBus take implicit ClockGroupIdentityNode

* system: ExampleRocketSystem supplies default simple clock source

* subsystem: BaseSubsystem has ClockGroupIdentityNode

* prci: SimpleClockGroupSource can have a variable number of sources

* groundtest: subsystem needs dummyClockGroupSourceNode

* prci: add FixedClockBroadcast helper module and use in TLBusWrapper

* prci: ClockEphemeralNode and ClockGroupEphemeralNode

* prci: TLBusWrapper uses ClockGroupEphemeralNode

* subsystem: add traits HasAsyncClockGroupsNode and Attachable

* subsystem: clean up Attachable and add SubsystemDriveAsyncClockGroupsKey

* prci: add PRCIClockGroupNode: NexusNode(ClockGroupImp)

* tilelink: better name for BuwWrapper clock aggration nodes

* groundtest: delete import that was actually unused

* prci: move ClockGroupDriverParameters to prci
parent c2668bed
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment