-
Notifications
You must be signed in to change notification settings - Fork 1.2k
First try to purge out ClockGroup API #3582
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
|
|
||
| /** Layers of hierarchy with this trait contain attachment points for TileLink interfaces */ | ||
| trait HasTileLinkLocations extends HasPRCILocations { this: LazyModule => | ||
| trait HasTileLinkLocations extends HasLocations with LazyScope { this: LazyModule => |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we dont need HasLocations here.
| /** Subclasses of this trait have the ability to instantiate things inside a context that has TL attachement locations */ | ||
| trait CanInstantiateWithinContextThatHasTileLinkLocations { | ||
| def instantiate(context: HasTileLinkLocations)(implicit p: Parameters): Unit | ||
| def instantiate(context: HasTileLinkLocations with HasPRCILocations with LazyModule)(implicit p: Parameters): Unit |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
originally the
HasTileLinkLocations couples HasPRCILocations to much. It's a bad design pattern.
| * what is being made available via the LocationMaps in trait HasTileLinkLocations. | ||
| */ | ||
| trait Attachable extends HasTileLinkLocations { this: LazyModule => | ||
| trait Attachable extends HasTileLinkLocations with HasPRCILocations { this: LazyModule => |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe rename Attachable to TLAttachable?
| lazy val location = InCluster(clusterId) | ||
|
|
||
| lazy val allClockGroupsNode = ClockGroupIdentityNode() | ||
| // lazy val allClockGroupsNode = ClockGroupIdentityNode() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not so sure about this...
| private val clockGroup = LazyModule(new ClockGroup(busName){ override def shouldBeInlined = true }) | ||
| val clockGroupNode = clockGroupAggregator.node // other bus clock groups attach here | ||
| val clockNode = clockGroup.node | ||
| val clockNode = ClockAdapterNode() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to assert input to this clockNode to be 1? or just use FixedClockBroadcast instead?
15c9041 to
ab61e47
Compare
38a8752 to
9505d87
Compare
9505d87 to
fdd303a
Compare
The Current ClockGroup API is misleading and is strange design pattern for clock doamins. This PR is used for purging out all the ClockGroup usage in rocket-chip, providing a clean API for ClockNode Attaching.