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

Add shift register interface that accepts bundles #417

Merged
merged 5 commits into from
Feb 23, 2024
Merged

Conversation

gabizon103
Copy link
Collaborator

Made a new module with bundle interface. Uses existing Shift module.

@rachitnigam
Copy link
Member

Why can't we just extend the Shift module and make S=1? I would also rename the parameters so that N is the number of inputs and D is the depth of the shift register

@gabizon103
Copy link
Collaborator Author

Oops, didn't realize that would type check. Fixed now

@rachitnigam
Copy link
Member

Nice! As we start building this higher-level abstractions, we should also think of some optimizations to do at the Filament level. For example, ConcatWire and SplitWire definitions can be inlined into Shift for basically no cost and for the N=1 case, eliminate a bunch of wires. Those wires are probably not that expensive to begin with but still worth thinking about building up optimization infrastructure.

@gabizon103 gabizon103 merged commit 5027006 into main Feb 23, 2024
4 checks passed
@gabizon103 gabizon103 deleted the shift-interface branch February 23, 2024 20:19
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