Implement StreamBuffer modules#15
Open
lucat1 wants to merge 1 commit intofpgasystems:mainfrom
Open
Conversation
9679f4e to
d1f56e8
Compare
- wip: implemented stream cache writer, working on reader - implement stream reader - add tests for stream cache - move from stream cache to buffer, change semantics - use a reset state to prevent mem_config_i swallowing in StreamWriter - clarify unit test names - remove old needless edits - tie off other card signals if any
JonasDann
requested changes
Apr 22, 2026
Member
There was a problem hiding this comment.
The StreamBufferReader needs a config to be able to replay the same data multiple times.
Contributor
Author
There was a problem hiding this comment.
My idea for this was just that the link instead of being piped directly from the writer to the reader, would go through by a middleman component. There we decide what to have the reader read, and if repeatedly, how many times, and such.
But that's conceptually logic that belongs to another module IMO.
Member
There was a problem hiding this comment.
Ah, fair enough. That makes sense. Let me try out the stuff and then I will merge it. We need it fairly soon.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
These modules allow you to write and (immediately) retrieve data to/from the FPGA's HBM.
The Reader and Writer modules are interconnected with a "link" that notifies the reader of when new data has been fully flushed to the HBM by the writer. This is designed such that a middleware can be placed in between the reader and writer to get the reader to read only parts of the written memory.
Included in this PR is a minor generalization of the StreamWriter and a small bugfix:
mem_config.buffer_readysignal to low when the StreamWriter is resetting, by way of adding a new RESET state to the StreamWriter state machine. This prevents discarding potential databeats while the module is being reset (this can happen, as there are delays added by the reset resync logic).