Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

frontend: don't connect a const net to ports connected to x #1447

Merged
merged 1 commit into from
Jan 31, 2025

Conversation

whitequark
Copy link
Member

@whitequark whitequark commented Jan 30, 2025

prjunnamed normalizes ports that are not present in the primitive to be all-x. On iCE40, this can cause a false placement conflict between SB_IO cells where one's clock input is x and another's is some other net.

I haven't tested every other architecture (nor do I have the means to) so I can't know for sure this change won't have some other fallout, but it seems pretty weird to treat an absent port differently from an all-x port so arguably that would be an architecture bug.

Alternatively an iCE40-specific workaround in arch_place.cc could be used.

prjunnamed normalizes ports that are not present in the primitive
to be all-x. On iCE40, this can cause a false placement conflict
between `SB_IO` cells where one's clock input is `x` and another's is
some other net.
whitequark added a commit to prjunnamed/prjunnamed that referenced this pull request Jan 30, 2025
Roundtrip tested with the Glasgow `uart` applet, with these nextpnr
PRs required:
- YosysHQ/nextpnr#1447
- YosysHQ/nextpnr#1448

Co-authored-by: Catherine <[email protected]>
@gatecat gatecat merged commit b64bf01 into master Jan 31, 2025
16 checks passed
@gatecat gatecat deleted the cat/leave-undef-ports-disconnected branch January 31, 2025 08:30
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