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

ShiftRegister implementation using SyncReadMem to support SRAM-based Shift Registers #2889

Open
milovanovic opened this issue Dec 13, 2022 · 0 comments

Comments

@milovanovic
Copy link
Contributor

Type of issue: Feature Request

Is your feature request related to a problem? Please describe.
For reasons of area and power efficiency, deeper and wider shift registers are usually implemented using single-port or dual-port SRAMs rather than with flip-flops. Support for dual-port SRAM implementation is available in ShiftRegisterMem which resides outside the main Chisel repository and is also broken. Besides, single-port SRAM implementation is still commented on.

Describe the solution you'd like
Ideally there should be a parameter similar to useSyncReadMem that is found in Queue which will indicate whether the SyncReadMem-based Shift Register implementation will be used or the current one. Additionally a single/dual-port SRAM indicator could be supplemented.

Describe alternatives you've considered
It would be highly useful to have this implemented inside Chisel itself, either as an addition to existing ShiftRegister, or as a new ShiftRegisterMem object similar to the one in rocket-dsp-utils.

Additional context
SRAM-based shift registers are used extensively and in my opinion should be supported inside Chisel itself.

What is the use case for implementing this feature?
There is a wide variety of use cases especially inside digital signal processing accelerators. Wherever the current ShiftRegisterMem is used, a newly designed Shift Register should serve as drop-in replacement without the necessity to load the craft package.

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