Skip to content

Model RTL X constant literals as permanently-X state in SEC - #265

Open
nanocoh wants to merge 1 commit into
mainfrom
binding-py-runtime
Open

nanocoh wants to merge 1 commit into
mainfrom
binding-py-runtime

Conversation

@nanocoh

@nanocoh nanocoh commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

An X literal such as case ... default: y = 'x; reaches the cone compiler as an X-constant net, which had no leaf representation: the cone was dropped as unknown-constant and every output depending on it went unproved, although the dual-rail encoding can represent X.

Give each X-constant net its own variable when SEC asks for it, and make SEC publish that variable as a state bit with no initial value whose next state is itself: permanently X under the dual-rail encoding, so a binary value on the other side is not a binary-defined difference, which is the usual don't-care reading. Unused X states are pruned, the structured memory control-pin path keeps treating an X write enable as a disabled write, LEC is unchanged, and Z literals remain unsupported.

An X literal such as `case ... default: y = 'x;` reaches the cone compiler
as an X-constant net, which had no leaf representation: the cone was
dropped as unknown-constant and every output depending on it went
unproved, although the dual-rail encoding can represent X.

Give each X-constant net its own variable when SEC asks for it, and make
SEC publish that variable as a state bit with no initial value whose next
state is itself: permanently X under the dual-rail encoding, so a binary
value on the other side is not a binary-defined difference, which is the
usual don't-care reading. Unused X states are pruned, the structured
memory control-pin path keeps treating an X write enable as a disabled
write, LEC is unchanged, and Z literals remain unsupported.
@codecov

codecov Bot commented Oct 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.91525% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/strategies/miter/BuildPrimaryOutputClauses.cpp 78.57% 3 Missing ⚠️

📢 Thoughts on this report? Let us know!

This branch has not been deployed

No deployments
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.

1 participant