-
Notifications
You must be signed in to change notification settings - Fork 406
Open
Labels
FIRRTLInvolving the `firrtl` dialectInvolving the `firrtl` dialectenhancementNew feature or requestNew feature or request
Description
Currently, there's no way to verify the legality of firrtl.domain.define when a WireOp is involved. E.g., the following is trivially an error after domain inference, but there is no way to actually enshrine the legality/illegality in the IR:
firrtl.circuit "Foo" {
firrtl.domain @ClockDomain
firrtl.domain @PowerDomain
firrtl.module @Foo(
in %in: !firrtl.domain of @ClockDomain,
out %out: !firrtl.domain of @PowerDomain
) {
%w = firrtl.wire : !firrtl.domain // We don't have syntax or storage to mark the domain that %w is in.
firrtl.domain.define %w, %in
firrtl.domain.define %out, %w
}
}Modify FIRRTL's WireOp to include optional domain information, i.e., a DominInfoAttr. Update passes to support this.
Metadata
Metadata
Assignees
Labels
FIRRTLInvolving the `firrtl` dialectInvolving the `firrtl` dialectenhancementNew feature or requestNew feature or request