Skip to content

[core] Synchronous, Rational Clock Domains#5270

Merged
seldridge merged 2 commits intomainfrom
dev/seldridge/synchronous-rational-clock-domains
Apr 17, 2026
Merged

[core] Synchronous, Rational Clock Domains#5270
seldridge merged 2 commits intomainfrom
dev/seldridge/synchronous-rational-clock-domains

Conversation

@seldridge
Copy link
Copy Markdown
Member

Add new APIs for describing synchronous and rational clock domains. These
deprecate and replace the old derived API for creating a synchronous
clock domain derived from another.

This change is necessary to, when coupled with property assertions, error
when weaker synchronizers are used in places where stronger synchronizers
are needed. E.g., this will allow us to error if a synchronous
synchronizer is used to cross between clock domains which are asynchronous
or rational.

Assisted-by: Claude:claude-sonnet-4-6

Add new APIs for describing synchronous and rational clock domains.  These
deprecate and replace the old `derived` API for creating a synchronous
clock domain derived from another.

This change is necessary to, when coupled with property assertions, error
when weaker synchronizers are used in places where stronger synchronizers
are needed.  E.g., this will allow us to error if a synchronous
synchronizer is used to cross between clock domains which are asynchronous
or rational.

Assisted-by: Claude:claude-sonnet-4-6
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
@seldridge seldridge requested a review from jackkoenig April 14, 2026 04:18
@seldridge seldridge added Feature New feature, will be included in release notes Deprecation Deprecates an API, will be included in release notes and removed Deprecation Deprecates an API, will be included in release notes labels Apr 15, 2026
Copy link
Copy Markdown
Contributor

@jackkoenig jackkoenig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Comment thread core/src/main/scala/chisel3/domains/ClockDomain.scala Outdated
Co-authored-by: Jack Koenig <koenig@sifive.com>
@seldridge seldridge enabled auto-merge (squash) April 17, 2026 21:06
@seldridge seldridge merged commit 85788bc into main Apr 17, 2026
28 checks passed
@seldridge seldridge deleted the dev/seldridge/synchronous-rational-clock-domains branch April 17, 2026 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature New feature, will be included in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants