-
Notifications
You must be signed in to change notification settings - Fork 202
Refine ZSTD decoder #2538
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
base: main
Are you sure you want to change the base?
Refine ZSTD decoder #2538
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: can you spell constant in UPPERCASE?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain what exactly do you have in mind?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you like all those dicts defined between the rules to be in uppercase? Do I understand you correctly? If so - sure we can change that. Just let me know if this is what you expect.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
example: https://github.com/google/xls/pull/2538/files#diff-6ccd896d195812d5667d4fec944f7d703b12be91df036e9af9b74c50163904eaR1341 - let us know if that is what you mean
@rw1nkler is that ready to import/review? |
Are those part of the cocotb sim that are not imported yet? |
Looks like one of the benchmark test is failing:
|
This commit adds a passthrough proc which is attached to the output of the RamDemux proc. Because of this, RAM rewriting is used on the outputs of the passthrough instead of the outputs of the RamDemux. This resolves the problem spotted in the Verilog simulation, where artificial responses are sent from RamDemux despite no request being made previously. Signed-off-by: Robert Winkler <rwinkler@antmicro.com>
The smaller accuracy log results in smaller FSE decoding lookups, which are needed to limit the RAM consumption in the DSLX interpreter. This is related to the problems described in: * google#1042 * google#1897 Signed-off-by: Robert Winkler <rwinkler@antmicro.com>
Signed-off-by: Robert Winkler <rwinkler@antmicro.com>
…ShiftBufferMux Signed-off-by: Robert Winkler <rwinkler@antmicro.com>
…nnels Using separate RAM interfaces preserves the original port names in Verilog, making it easier to understand the design's behavior during simulation. Signed-off-by: Robert Winkler <rwinkler@antmicro.com>
d5bdf45
to
a5e063f
Compare
Yes, that is right |
This should be fixed now |
This PR introduces changes to the Sequence decoding logic in the ZSTD decoder.
The updates fix design behavior in Verilog simulation without breaking existing DSLX tests.
Most changes address issues that are not visible in DSLX simulation due to limitations of the DSLX interpreter and it's sequential nature. These include:
RamDemux
, where artificial responses were send over muxed chanel even with no prior requestsFseLookupCtrl
does not wait onrecv_if
before proceeding to the subsequentnext()
activation in Verilog simulationWe will investigate these problems further and open related issues if necessary.
Additionally, RAM sizes for FSE lookups were increased to match the values used in the ZSTD reference library.
FYI @proppy