Skip to content

Add domain instantiation operation#5239

Merged
seldridge merged 1 commit into
mainfrom
domain-instantiation
Mar 20, 2026
Merged

Add domain instantiation operation#5239
seldridge merged 1 commit into
mainfrom
domain-instantiation

Conversation

@seldridge

Copy link
Copy Markdown
Member

Add a new domain instantiation operation. This maps to an existing
CIRCT DomainCreateOp with undocumented FIRRTL syntax:

domain foo of ClockDomain(String("Foo"), String("Bar"))

Domain instantiation occurs in situations where a new domain is created
which may either be wholly novel (e.g., a clock generator) or derived from
an existing domain (e.g., a clock divider).

AI-assisted-by: Augment (Claude Sonnet 4.5)

Release Notes

Add domain instantiation API. This is useful for describing modules which
create wholly new or domains derived from other domains.

@seldridge seldridge added the Feature New feature, will be included in release notes label Mar 19, 2026
@seldridge seldridge force-pushed the domain-instantiation branch from 2ad9372 to 2e6310b Compare March 19, 2026 05:11
@seldridge seldridge force-pushed the domain-subfield-access branch from bd7c41c to a72f912 Compare March 19, 2026 05:12
@seldridge seldridge force-pushed the domain-instantiation branch from 2e6310b to 7c74e54 Compare March 19, 2026 05:12
@seldridge seldridge force-pushed the domain-subfield-access branch 4 times, most recently from 4ede800 to 10e0e94 Compare March 19, 2026 22:20
@seldridge seldridge force-pushed the domain-instantiation branch 2 times, most recently from 0a2daa7 to a510324 Compare March 19, 2026 22:37
@seldridge seldridge force-pushed the domain-subfield-access branch from 10e0e94 to 4988152 Compare March 19, 2026 22:46
@seldridge seldridge force-pushed the domain-instantiation branch from a510324 to 9be0036 Compare March 19, 2026 22:46
Base automatically changed from domain-subfield-access to main March 19, 2026 23:14
@seldridge seldridge force-pushed the domain-instantiation branch 2 times, most recently from 960693f to b7d61e3 Compare March 20, 2026 05:15
}

protected[properties] val tpe: PropertyType[_]
protected[chisel3] val tpe: PropertyType[_]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is exposed to enable checking that the property types passed to the domain create API are correct.

@seldridge seldridge requested a review from jackkoenig March 20, 2026 06:09
@seldridge seldridge marked this pull request as ready for review March 20, 2026 06:10

@jackkoenig jackkoenig left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

A few thoughts, not going to sandbag on my long-term vision but there might be some little things we can do in the meantime.

Comment thread core/src/main/scala/chisel3/domain/Domain.scala Outdated
Comment thread src/test/scala/chiselTests/DomainSpec.scala Outdated
Comment thread src/test/scala/chiselTests/DomainSpec.scala Outdated
@seldridge seldridge force-pushed the domain-instantiation branch from 1259c2e to 275f858 Compare March 20, 2026 20:54
@seldridge seldridge changed the base branch from main to dev/seldridge/string_concat March 20, 2026 20:55
@seldridge seldridge marked this pull request as draft March 20, 2026 20:55
@seldridge seldridge force-pushed the dev/seldridge/string_concat branch from 95d3a15 to 503f39b Compare March 20, 2026 22:05
Base automatically changed from dev/seldridge/string_concat to main March 20, 2026 22:33
@seldridge seldridge marked this pull request as ready for review March 20, 2026 22:35
Add a new domain instantiation operation.  This maps to an existing
CIRCT `DomainCreateOp` with undocumented FIRRTL syntax:

    domain foo of ClockDomain(String("Foo"), String("Bar"))

Domain instantiation occurs in situations where a new domain is created
which may either be wholly novel (e.g., a clock generator) or derived from
an existing domain (e.g., a clock divider).

AI-assisted-by: Augment (Claude Sonnet 4.5)
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
@seldridge seldridge force-pushed the domain-instantiation branch from 275f858 to f25d1d1 Compare March 20, 2026 22:38
@seldridge seldridge enabled auto-merge (squash) March 20, 2026 22:40
@seldridge seldridge merged commit 655f82c into main Mar 20, 2026
27 checks passed
@seldridge seldridge deleted the domain-instantiation branch March 20, 2026 23:07
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