-
Notifications
You must be signed in to change notification settings - Fork 179
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 RLE encoder #974
Add RLE encoder #974
Conversation
17ad391
to
69909d5
Compare
69909d5
to
cdde20f
Compare
Please let me know when you are satisfied with the changes. Then, I will rebase the code to provide a clean git history. |
727780c
to
aaaeaaf
Compare
c17b235
to
a4077f8
Compare
e3b4385
to
de7b23a
Compare
I think this is ready to import, most of the changes I requested are purely cosmetic. |
759ce52
to
058c04e
Compare
@proppy can you take a look? Unfortunately I can't mark comments as |
This is ready to copybara import (remaining comments are mostly cosmetic). |
I'll change RLEEnc to RunLengthEncoder and squash all commits into single in preparations for merging |
e12bf6e
to
df7fd44
Compare
Currently, only a simple implementation is provided, which has no optimizations related to the RLE algorithm. The provided tests check if: * output of the encoder matches the expected values * sum of received symbols adds up to the amount of sent symbols * received symbols don't repeat unless the RLE counter overflowed or the end of transmission was requested (using `last` flag) Additional bazel rules added in this commit include: * Verilog code generation * IR benchmark generation * Verilog benchmark generation Internal-tag: [#44560] Co-authored-by: Maciej Dudek <mdudek@antmicro.com> Signed-off-by: Robert Winkler <rwinkler@antmicro.com> Signed-off-by: Maciej Dudek <mdudek@antmicro.com>
df7fd44
to
5c3b791
Compare
This PR adds a simple implementation of the RLE Encoder (Run Length Encoding). The introduced changes contain the RLE encoder, tests for the module, rules for Verilog generation, and rules to build IR and Verilog benchmarks.
The changes rely on other features added in separate PRs:
top
to the list of valid opt_ir flags #964[DSLX] Add functions that calculate the length of an array to stdlib #973Fixes #994
CC @proppy