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

Enhance merge/split for multi-way use #287

Open
tomcl opened this issue Jun 4, 2023 · 1 comment
Open

Enhance merge/split for multi-way use #287

tomcl opened this issue Jun 4, 2023 · 1 comment

Comments

@tomcl
Copy link
Owner

tomcl commented Jun 4, 2023

Is your feature request related to a problem? Please describe.

"When using the merge wire component, it would be helpful if the software automatically identifies the input that connects to the most significant bit as the primary part. Additionally, having an N-way merge wire or split wire component would be beneficial."

Describe the solution you'd like

N-way split/merge

For merge the number of inputs could be made adjustable via properties. The implementation would be quite complex, but it would be nice to do this. If the split is restricted so that all outputs have same width except for MS one, we need just the one extra box (number of outputs) the same as for the enhanced merge

The more complex (> 2 inputs or outputs) split or merge could be implemented as a rectangular box with the bits labelled for each input/output. There should be a single component which displays in either simple or complex form according to whether number of inputs (or outputs) is

Medium Cost / High benefit

Distinguishing which is the "top" and "bottom" half of split/merge.
This happens after width inference anyway, because bits are displayed. However - before width inference (e.g. when this cannot be done) it would be good to display MS and LS on each branch.

Low cost/High Benefit

Describe alternatives you've considered

Additional context
The "better" components will need componenttypes which include one extra parameter. That will mean adapting the deserialise algorithm to accept old-style circuits as well as new ones. This is possible now.

@tomcl
Copy link
Owner Author

tomcl commented Aug 30, 2024

this has been implemented - although the new components do not display perfectly yet.

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

No branches or pull requests

1 participant