Skip to content

[domaintool] Add "synchronousTo" support in CSJ#9969

Merged
seldridge merged 2 commits intomainfrom
dev/seldridge/domaintool-synchronousTo
Mar 19, 2026
Merged

[domaintool] Add "synchronousTo" support in CSJ#9969
seldridge merged 2 commits intomainfrom
dev/seldridge/domaintool-synchronousTo

Conversation

@seldridge
Copy link
Copy Markdown
Member

Add support for extracting and reporting "synchronous to" information for
the Clock Spec JSON domaintool handler. This information is a way for
clock domains to declared that they are synchronously derived from another
domain, e.g., that a second domain is the result of dividing a first
domain.

This builds towards full CSJ support by filling out one missing feature.

Note 1: This does not correctly handle situations where a domain has a
"synchronous to" relationship and either this or that domain is marked
"async" or "static". I am planning to loop back and rework how this is
stored with additional information added to the standard Chisel clock
domain.

Note 2: This expectedly changes the format of the standard Chisel clock
domain to add a synchronousTo: String property.

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

Add support for extracting and reporting "synchronous to" information for
the Clock Spec JSON `domaintool` handler.  This information is a way for
clock domains to declared that they are synchronously derived from another
domain, e.g., that a second domain is the result of dividing a first
domain.

This builds towards full CSJ support by filling out one missing feature.

Note 1: This does not correctly handle situations where a domain has a
"synchronous to" relationship and either this or that domain is marked
"async" or "static".  I am planning to loop back and rework how this is
stored with additional information added to the standard Chisel clock
domain.

Note 2: This expectedly changes the format of the standard Chisel clock
domain to add a `synchronousTo: String` property.

AI-assisted-by: Augment (Claude Sonnet 4.5)
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
Comment thread tools/domaintool/ClockSpecJSONHandler.cpp Outdated
Switch all data structures to use `StringAttr` instead of `StringRef` in
the Clock Spec JSON (CSJ) handler.  I think this was _technically_ safe
before as the lifetime of the strings backing the `StringRef`s was
guaranteed to extend beyond the lifetime of any handler.  However, this
was quite unprincipled and violated standard LLVM guidance around use of
`StringRef`.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
@seldridge seldridge merged commit 7f76cbc into main Mar 19, 2026
7 checks passed
@seldridge seldridge deleted the dev/seldridge/domaintool-synchronousTo branch March 19, 2026 01:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants