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

modules/zstd: Add support for decoding compressed blocks #1857

Open
wants to merge 84 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
6048e18
modules/zstd/cocotb: Add cocotb testing utilities
koblonczek Aug 16, 2024
a9bcc5b
modules/zstd/memory/MemReader: Add cocotb tests
lpawelcz Sep 19, 2024
14f13e5
modules/zstd/memory/AxiWriter: Add cocotb test
mczyz-antmicro Sep 19, 2024
989aaaa
modules/zstd/memory/MemWriter: Add cocotb test
lpawelcz Sep 19, 2024
3cc53ad
modules/zstd/memory/README: Describe verilog simulation
lpawelcz Oct 4, 2024
9478124
CI/modules-zstd: Add calls to verilog simulation targets
lpawelcz Oct 4, 2024
dfc8084
modules/zstd/BUILD: increase pipeline_stages for DecoderMux proc
lpawelcz Nov 12, 2024
6018ddf
xls/modules/zstd: expose fifo verilog module
lpawelcz Dec 31, 2024
d3e70fb
modules/rle/common: Add RLE output struct
m-torhan Oct 3, 2024
99c0787
modules/zstd: Remove MagicNumberDecoder
lpawelcz Oct 8, 2024
3b9da97
modules/zstd: Remove BlockDecoder proc
lpawelcz Oct 8, 2024
e1e08cb
modules/zstd: Remove DecDemux proc
lpawelcz Oct 8, 2024
d656851
modules/zstd/block_header: Specify new type for the block size
m-torhan Oct 3, 2024
eeafadc
modules/zstd: Cleanup BlockHeader
lpawelcz Oct 8, 2024
5a8323c
modules/zstd/BUILD: Introduce common codegen args
lpawelcz Oct 9, 2024
ffabeb4
modules/zstd: Add AxiCsrAccessor
lpawelcz Oct 8, 2024
4ffc63d
modules/zstd: Add CsrConfig
m-torhan Oct 8, 2024
4372cc6
modules/zstd: Add FrameHeaderDecoder
koblonczek Oct 8, 2024
e299e23
modules/zstd: Add BlockHeaderDecoder
m-torhan Oct 8, 2024
875165a
modules/zstd: Add RawBlockDecoder
m-torhan Oct 8, 2024
3faa6aa
modules/zstd: Add RleBlockDecoder
m-torhan Oct 8, 2024
cae93c2
modules/zstd: Add ZstdDecoder
rw1nkler Oct 8, 2024
a00e602
modules/zstd/cocotb: Add ZSTD frame generator library
lpawelcz Oct 9, 2024
cfe9f86
dependency_support: Add zstandard python library
lpawelcz Oct 3, 2024
7aec716
modules/zstd: Add verilog simulation of the ZstdDecoder
lpawelcz Oct 8, 2024
b9b7382
modules/zstd: Update documentation
lpawelcz Oct 10, 2024
b5a7434
modules/zstd: Add AxiRamReader implementation
m-torhan Aug 30, 2024
4b08b4d
modules/zstd/zstd_dec: Add DSLX tests for ZstdDecoder
koblonczek Oct 23, 2024
63c569d
modules/zstd/zstd_dec: handle contents of the Status CSR
lpawelcz Oct 22, 2024
3793651
modules/zstd/data_generator: fix formatting
lpawelcz Nov 18, 2024
ee3f7e9
modules/zstd/memory:axi_stream_remove_empty: Fix byte ordering
lpawelcz Oct 29, 2024
2bed9e3
modules/zstd/memory/axi_stream_remove_empty: Extract remove_empty_byt…
lpawelcz Nov 4, 2024
4ceb174
modules/zstd/memory/axi_writer: Assign parameterized max lane value
lpawelcz Nov 13, 2024
3132c34
modules/zstd/memory/mem_writer: Add support for not-full input data p…
lpawelcz Oct 23, 2024
119967b
modules/zstd/memory/mem_writer: Add MemWriterInternal proc
lpawelcz Nov 4, 2024
2870512
modules/zstd/zstd_dec: Write decoded data to the memory
lpawelcz Nov 7, 2024
cbdb268
modules/zstd/zstd_dec: Remove stream-based output interface
lpawelcz Nov 18, 2024
667d0df
modules/zstd/zstd_dec_cocotb_test: Improve Verilog simulation
lpawelcz Nov 18, 2024
9e1c836
modules/zstd/README: Update output interface description
lpawelcz Nov 19, 2024
46e3cc6
modules/zstd/memory/axi_stream_remove_empty: add fifo module definiti…
lpawelcz Dec 31, 2024
7939b8c
[TEMP] modules/zstd/memory/mem_writer: Reduce the amount of random te…
lpawelcz Jan 2, 2025
ae822bc
modules/zstd/zstd_dec: use regular cast instead of checked_cast on st…
lpawelcz Jan 13, 2025
77bf168
modules/zstd: express data length in bytes
lpawelcz Nov 28, 2024
5d2240d
modules/zstd: Add buffer implementing desired API
rw1nkler May 16, 2024
2982936
modules/zstd: Add FSE procs
rw1nkler May 16, 2024
b6934c7
modules/zstd: Add a proc handling RAM write completion
rw1nkler May 16, 2024
a027264
modules/zstd: Add Sequence and Literals Section Header decoders
rw1nkler Oct 31, 2024
a6ac1db
modules: Add ShiftBuffer and RefillingShiftBuffer implementation
koblonczek Apr 16, 2024
84e3973
modules/zstd: Add FSE tables and lookup decoder
koblonczek Nov 13, 2024
0bd59a7
modules/zstd: Add CommandConstructor proc
RRozak Apr 24, 2024
745de4c
modules/zstd: Add Ram demux
rw1nkler Apr 25, 2024
4fc126b
modules/zstd: Add literals decoding
m-torhan May 10, 2024
6b8bab1
modules/zstd: Add Huffman literals decoder
m-torhan Nov 19, 2024
bce178c
modules/zstd: Add triple output RamDemux
rw1nkler Dec 12, 2024
2709e29
Add skeleton of SequenceDecoder
rw1nkler Dec 12, 2024
3e5dd6a
modules/zstd: Rework literals decoding to memory-based architecture
lpawelcz Dec 3, 2024
fd1dc2a
modules/zstd/BUILD: tag targets as manual
rw1nkler Jan 14, 2025
07fbf36
modules/zstd: Extend common library
lpawelcz Jan 14, 2025
52d1f26
modules/zstd: Enable CompressedBlockDecoder
koblonczek Jan 14, 2025
07e0c87
modules/zstd: Enable CompressedBlockDecoder in ZstdDecoder
koblonczek Jan 14, 2025
9af1ed2
modules/zstd: Add example frame for DSLX tests
rw1nkler Jan 14, 2025
2cecd25
modules/zstd: Adjust SequenceExecutor
rw1nkler Jan 14, 2025
34f26c0
modules/zstd: Adjust AxiRam
rw1nkler Jan 14, 2025
ce2bcbf
modules/zstd: Add RamMux
rw1nkler Jan 14, 2025
c35681d
modules/zstd: Fix HuffmanRawWeightsDecoder
m-torhan Jan 7, 2025
d0c75b4
Fix decoding multiple frames
rw1nkler Jan 16, 2025
6a2dc5f
Add support for Compressed FSE tables
koblonczek Jan 8, 2025
0fe8335
Add test frame for compressed fse tables
rw1nkler Jan 16, 2025
a3db769
modules/zstd/zstd_dec: don't use channel arrays for FSE tables access
lpawelcz Jan 20, 2025
55401cf
Fix sequence decoding with predefined offset table, add regression test
koblonczek Jan 20, 2025
c834f04
Add support for RLE and Repeated fse tables
rw1nkler Jan 22, 2025
16cc980
Add test frame for repeated and rle tables
rw1nkler Jan 22, 2025
858da5b
modules/zstd/BUILD: Add RAM ports rewrite configuration for ZstdDecoder
lpawelcz Jan 21, 2025
27e0590
modules/zstd/zstd_dec_wrapper: Remove DSLX native RAM ports
lpawelcz Jan 24, 2025
db6e0c2
modules/zstd: Add RamMerge proc
lpawelcz Jan 22, 2025
54056bc
[TEMP] modules/zstd/zstd_dec: Inline HuffmanWeights RamModel
lpawelcz Jan 23, 2025
bc7a150
[TEMP] modules/zstd/BUILD: Disable ZstdDecoder P&R
lpawelcz Jan 17, 2025
b992351
modules/zstd: Implement HuffmanFseWeightsDecoder
m-torhan Jan 17, 2025
28c3fe3
Count the length of the section with probability frequencies
rw1nkler Jan 24, 2025
6e9c8b4
Adjust the design to the changed HuffmanWeightsDecoder
rw1nkler Jan 24, 2025
ae11b6c
Remove duplicate fifo.v file
rw1nkler Jan 29, 2025
265bd5b
Move test files to a separate directory
rw1nkler Jan 29, 2025
2e6ccb5
Move shift_buffer to zstd directory
rw1nkler Jan 29, 2025
16cd455
Update rules in the BUILD file
rw1nkler Jan 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/modules-zstd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ jobs:
bazel run -c opt $target -- --logtostderr;
done

- name: Build and test verilog simulation of the ZSTD module components (opt)
if: ${{ !cancelled() }}
run: |
bazel test -c opt --test_output=errors -- $(bazel query 'filter(".*_cocotb_test", kind(rule, //xls/modules/zstd/...))')

- name: Build ZSTD place and route targets (opt)
if: ${{ !cancelled() }}
run: |
Expand Down
5 changes: 5 additions & 0 deletions dependency_support/pip_requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ termcolor==1.1.0
psutil==5.7.0
portpicker==1.3.1
pyyaml==6.0.1
pytest==8.2.2
cocotb==1.9.0
cocotbext-axi==0.1.24
cocotb_bus==0.2.1
zstandard==0.23.0

# Note: numpy and scipy version availability seems to differ between Ubuntu
# versions that we want to support (e.g. 18.04 vs 20.04), so we accept a
Expand Down
169 changes: 169 additions & 0 deletions dependency_support/pip_requirements_lock.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,68 @@ click==8.1.3 \
# via
# -r dependency_support/pip_requirements.in
# flask
cocotb==1.9.0 \
--hash=sha256:02a58ef6c941114964096e7c039bdd4e67e63816cfd2f6a9af6a34cd92b00e8e \
--hash=sha256:0819794ef5e8fd14fee0b265933226cf600e85edc2f1a749b4d5f8fa2d31ce4e \
--hash=sha256:0ba35617a677ff65a1273411a3dfdfc5f587128ad8cb9e941ab0eb17ec8fb3e2 \
--hash=sha256:17556e3a23562f64d577d0eb117fe02e384aedee997b29497b5c395f5010ff82 \
--hash=sha256:19b4e27b53a16e0b9c4cc5227c7f9d4dccac06e431a4f937e9f5513350196333 \
--hash=sha256:1a0381ced5590a726032ba2265c6b70ac12cfb49edb152be86a081bb7d104751 \
--hash=sha256:1aff68cf77059448a9a3278079037e34b50c8c2aee466d984295fa7fe699d390 \
--hash=sha256:277281420fd6fc3002bb85d6bec497bd20ff3a3905d4b5f1301faf975f750ede \
--hash=sha256:2daf743320331615f4e8ffb877ab0b04e6f913b911bb11bf9dbc1d876d9c4220 \
--hash=sha256:2e9bcdbfba3e99c9297bd0d74ba781772d89d2c86e893980784ada252bd1a0f8 \
--hash=sha256:3058c977f9d4e1f6333d505947f34b9142910719f1d8631c40a151dd86bad727 \
--hash=sha256:5832d894419a9e8fe5c242e3ac86588e16e2cb379822dcb154bfec8544ae858e \
--hash=sha256:598b841ed0809e5c64d8c383b8035f6ace5a6f9013f680cdc6981221911c005d \
--hash=sha256:5a5c91027d7652aaf10e101743edd6b1e832039a19af75fca301275ef30f01d4 \
--hash=sha256:61418f619af72c8cca8de622785b4f4bfc17ace09981de6eb44feae560cf3bbb \
--hash=sha256:784c914c8df3fd79cfb148d2bcd17c4b2703c89af1278ed98773afb57ceea3e6 \
--hash=sha256:87a19d3012f505ba7fda37483b851ef0ca40290ad8a9b28a820b84f8574287bb \
--hash=sha256:89503f0749362d36b6fab8636710f1848943c21f9d488672921bac21e9edd29f \
--hash=sha256:89e5189fd393918c27af2daefdcb13df4d52fa761f065d5964d2c4ff5c0642fb \
--hash=sha256:8cb4b0edf8f0b47c3b604b461cb574fc75fd97efa893cbaf828f4f2f71cf459e \
--hash=sha256:94e884e16186899ad5b4d131c3f7ff0a2277e67ea0660754e8810a4bbf2d610e \
--hash=sha256:997dbca2a2cd933fd0a44d9fadeebc1e8a40701db15ea06f207811933dceb350 \
--hash=sha256:a7cea13cb2fe4f5ca735490846342885117778a73008a67ed9cac667aaaf3f0d \
--hash=sha256:a84edfbfa57dc6e16845a55feb0b4e1c8b6bbfa5ef1ab6768beba8d81e0546aa \
--hash=sha256:a95b5e5708a3629d319d2b655d11345cc7e97fea9bdc9bc1df7435926ac30966 \
--hash=sha256:aa6818c39ca1ce699e4bb1d84899c4f98c2d25c7671bd6c7beee3b1ee9d68834 \
--hash=sha256:ab99bf7e055780b57419d4133fd4dca9c72a03b766a3e2200552f10498eb8845 \
--hash=sha256:b966f5560a494fd99f95a1562f9326ca20c35bb118d4e6b50db41da8e4a6f718 \
--hash=sha256:bc44a7708a5a63d3059a622c2fb90831dc33534c3343e971f5a6c78905097baa \
--hash=sha256:c11e21d291ba2f889e33c21d76e9aec6ffdfb5666053dc34452666579daa675b \
--hash=sha256:c848de13583478d71cc91e528e17c051ca6a3b92e89d703ac5015f17cab1287b \
--hash=sha256:d944aa5509a0f0786d6f30554a2f8b1f229847f9ac9988879d7a05497739f668 \
--hash=sha256:f50862153e1364f6edeaef9d70505093549fa097e9b2555ea46d1e4f94ac3287 \
--hash=sha256:f74c598e230e1035103f6e3a97dd7a0e1bcacf7f3ea7481cd3bcde477b74e379 \
--hash=sha256:fcb81c6c37e11b0729768dd8e192a9cfb809778699ab1fe89f4d92ba0beb3092 \
--hash=sha256:ff2ddc8b304eb7076ceead2534a1b9828df771798fa9c2601ea983c86d23ec08
# via
# -r dependency_support/pip_requirements.in
# cocotb-bus
# cocotbext-axi
cocotb-bus==0.2.1 \
--hash=sha256:a197aa4b0e0ad28469c8877b41b3fb2ec0206da9f491b9276d1578ce6dd8aa8d
# via
# -r dependency_support/pip_requirements.in
# cocotbext-axi
cocotbext-axi==0.1.24 \
--hash=sha256:3ed62dcaf9448833176826507c5bc5c346431c4846a731e409d87c862d960593 \
--hash=sha256:533ba6c7503c6302bdb9ef86e43a549ad5da876eafb1adce23d39751c54cced4
# via -r dependency_support/pip_requirements.in
find-libpython==0.4.0 \
--hash=sha256:034a4253bd57da3408aefc59aeac1650150f6c1f42e10fdd31615cf1df0842e3 \
--hash=sha256:46f9cdcd397ddb563b2d7592ded3796a41c1df5222443bd9d981721c906c03e6
# via cocotb
flask==2.3.2 \
--hash=sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0 \
--hash=sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef
# via -r dependency_support/pip_requirements.in
iniconfig==2.0.0 \
--hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \
--hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
# via pytest
itsdangerous==2.1.2 \
--hash=sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 \
--hash=sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a
Expand Down Expand Up @@ -107,6 +165,14 @@ numpy==1.24.4 \
# via
# -r dependency_support/pip_requirements.in
# scipy
packaging==24.1 \
--hash=sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 \
--hash=sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124
# via pytest
pluggy==1.5.0 \
--hash=sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1 \
--hash=sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669
# via pytest
portpicker==1.3.1 \
--hash=sha256:d2cdc776873635ed421315c4d22e63280042456bbfa07397817e687b142b9667
# via -r dependency_support/pip_requirements.in
Expand All @@ -123,6 +189,10 @@ psutil==5.7.0 \
--hash=sha256:e2d0c5b07c6fe5a87fa27b7855017edb0d52ee73b71e6ee368fae268605cc3f5 \
--hash=sha256:f344ca230dd8e8d5eee16827596f1c22ec0876127c28e800d7ae20ed44c4b310
# via -r dependency_support/pip_requirements.in
pytest==8.2.2 \
--hash=sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343 \
--hash=sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977
# via -r dependency_support/pip_requirements.in
pyyaml==6.0.1 \
--hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \
--hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \
Expand Down Expand Up @@ -207,3 +277,102 @@ werkzeug==3.0.6 \
# via
# -r dependency_support/pip_requirements.in
# flask
zstandard==0.23.0 \
--hash=sha256:034b88913ecc1b097f528e42b539453fa82c3557e414b3de9d5632c80439a473 \
--hash=sha256:0a7f0804bb3799414af278e9ad51be25edf67f78f916e08afdb983e74161b916 \
--hash=sha256:11e3bf3c924853a2d5835b24f03eeba7fc9b07d8ca499e247e06ff5676461a15 \
--hash=sha256:12a289832e520c6bd4dcaad68e944b86da3bad0d339ef7989fb7e88f92e96072 \
--hash=sha256:1516c8c37d3a053b01c1c15b182f3b5f5eef19ced9b930b684a73bad121addf4 \
--hash=sha256:157e89ceb4054029a289fb504c98c6a9fe8010f1680de0201b3eb5dc20aa6d9e \
--hash=sha256:1bfe8de1da6d104f15a60d4a8a768288f66aa953bbe00d027398b93fb9680b26 \
--hash=sha256:1e172f57cd78c20f13a3415cc8dfe24bf388614324d25539146594c16d78fcc8 \
--hash=sha256:1fd7e0f1cfb70eb2f95a19b472ee7ad6d9a0a992ec0ae53286870c104ca939e5 \
--hash=sha256:203d236f4c94cd8379d1ea61db2fce20730b4c38d7f1c34506a31b34edc87bdd \
--hash=sha256:27d3ef2252d2e62476389ca8f9b0cf2bbafb082a3b6bfe9d90cbcbb5529ecf7c \
--hash=sha256:29a2bc7c1b09b0af938b7a8343174b987ae021705acabcbae560166567f5a8db \
--hash=sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5 \
--hash=sha256:2ef3775758346d9ac6214123887d25c7061c92afe1f2b354f9388e9e4d48acfc \
--hash=sha256:2f146f50723defec2975fb7e388ae3a024eb7151542d1599527ec2aa9cacb152 \
--hash=sha256:2fb4535137de7e244c230e24f9d1ec194f61721c86ebea04e1581d9d06ea1269 \
--hash=sha256:32ba3b5ccde2d581b1e6aa952c836a6291e8435d788f656fe5976445865ae045 \
--hash=sha256:34895a41273ad33347b2fc70e1bff4240556de3c46c6ea430a7ed91f9042aa4e \
--hash=sha256:379b378ae694ba78cef921581ebd420c938936a153ded602c4fea612b7eaa90d \
--hash=sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a \
--hash=sha256:3aa014d55c3af933c1315eb4bb06dd0459661cc0b15cd61077afa6489bec63bb \
--hash=sha256:4051e406288b8cdbb993798b9a45c59a4896b6ecee2f875424ec10276a895740 \
--hash=sha256:40b33d93c6eddf02d2c19f5773196068d875c41ca25730e8288e9b672897c105 \
--hash=sha256:43da0f0092281bf501f9c5f6f3b4c975a8a0ea82de49ba3f7100e64d422a1274 \
--hash=sha256:445e4cb5048b04e90ce96a79b4b63140e3f4ab5f662321975679b5f6360b90e2 \
--hash=sha256:48ef6a43b1846f6025dde6ed9fee0c24e1149c1c25f7fb0a0585572b2f3adc58 \
--hash=sha256:50a80baba0285386f97ea36239855f6020ce452456605f262b2d33ac35c7770b \
--hash=sha256:519fbf169dfac1222a76ba8861ef4ac7f0530c35dd79ba5727014613f91613d4 \
--hash=sha256:53dd9d5e3d29f95acd5de6802e909ada8d8d8cfa37a3ac64836f3bc4bc5512db \
--hash=sha256:53ea7cdc96c6eb56e76bb06894bcfb5dfa93b7adcf59d61c6b92674e24e2dd5e \
--hash=sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9 \
--hash=sha256:59556bf80a7094d0cfb9f5e50bb2db27fefb75d5138bb16fb052b61b0e0eeeb0 \
--hash=sha256:5d41d5e025f1e0bccae4928981e71b2334c60f580bdc8345f824e7c0a4c2a813 \
--hash=sha256:61062387ad820c654b6a6b5f0b94484fa19515e0c5116faf29f41a6bc91ded6e \
--hash=sha256:61f89436cbfede4bc4e91b4397eaa3e2108ebe96d05e93d6ccc95ab5714be512 \
--hash=sha256:62136da96a973bd2557f06ddd4e8e807f9e13cbb0bfb9cc06cfe6d98ea90dfe0 \
--hash=sha256:64585e1dba664dc67c7cdabd56c1e5685233fbb1fc1966cfba2a340ec0dfff7b \
--hash=sha256:65308f4b4890aa12d9b6ad9f2844b7ee42c7f7a4fd3390425b242ffc57498f48 \
--hash=sha256:66b689c107857eceabf2cf3d3fc699c3c0fe8ccd18df2219d978c0283e4c508a \
--hash=sha256:6a41c120c3dbc0d81a8e8adc73312d668cd34acd7725f036992b1b72d22c1772 \
--hash=sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed \
--hash=sha256:72c68dda124a1a138340fb62fa21b9bf4848437d9ca60bd35db36f2d3345f373 \
--hash=sha256:752bf8a74412b9892f4e5b58f2f890a039f57037f52c89a740757ebd807f33ea \
--hash=sha256:76e79bc28a65f467e0409098fa2c4376931fd3207fbeb6b956c7c476d53746dd \
--hash=sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f \
--hash=sha256:77da4c6bfa20dd5ea25cbf12c76f181a8e8cd7ea231c673828d0386b1740b8dc \
--hash=sha256:77ea385f7dd5b5676d7fd943292ffa18fbf5c72ba98f7d09fc1fb9e819b34c23 \
--hash=sha256:80080816b4f52a9d886e67f1f96912891074903238fe54f2de8b786f86baded2 \
--hash=sha256:80a539906390591dd39ebb8d773771dc4db82ace6372c4d41e2d293f8e32b8db \
--hash=sha256:82d17e94d735c99621bf8ebf9995f870a6b3e6d14543b99e201ae046dfe7de70 \
--hash=sha256:837bb6764be6919963ef41235fd56a6486b132ea64afe5fafb4cb279ac44f259 \
--hash=sha256:84433dddea68571a6d6bd4fbf8ff398236031149116a7fff6f777ff95cad3df9 \
--hash=sha256:8c24f21fa2af4bb9f2c492a86fe0c34e6d2c63812a839590edaf177b7398f700 \
--hash=sha256:8ed7d27cb56b3e058d3cf684d7200703bcae623e1dcc06ed1e18ecda39fee003 \
--hash=sha256:9206649ec587e6b02bd124fb7799b86cddec350f6f6c14bc82a2b70183e708ba \
--hash=sha256:983b6efd649723474f29ed42e1467f90a35a74793437d0bc64a5bf482bedfa0a \
--hash=sha256:98da17ce9cbf3bfe4617e836d561e433f871129e3a7ac16d6ef4c680f13a839c \
--hash=sha256:9c236e635582742fee16603042553d276cca506e824fa2e6489db04039521e90 \
--hash=sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690 \
--hash=sha256:a05e6d6218461eb1b4771d973728f0133b2a4613a6779995df557f70794fd60f \
--hash=sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840 \
--hash=sha256:a4ae99c57668ca1e78597d8b06d5af837f377f340f4cce993b551b2d7731778d \
--hash=sha256:a8c86881813a78a6f4508ef9daf9d4995b8ac2d147dcb1a450448941398091c9 \
--hash=sha256:a8fffdbd9d1408006baaf02f1068d7dd1f016c6bcb7538682622c556e7b68e35 \
--hash=sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd \
--hash=sha256:ab19a2d91963ed9e42b4e8d77cd847ae8381576585bad79dbd0a8837a9f6620a \
--hash=sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea \
--hash=sha256:b0e166f698c5a3e914947388c162be2583e0c638a4703fc6a543e23a88dea3c1 \
--hash=sha256:b2170c7e0367dde86a2647ed5b6f57394ea7f53545746104c6b09fc1f4223573 \
--hash=sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09 \
--hash=sha256:b4567955a6bc1b20e9c31612e615af6b53733491aeaa19a6b3b37f3b65477094 \
--hash=sha256:b69bb4f51daf461b15e7b3db033160937d3ff88303a7bc808c67bbc1eaf98c78 \
--hash=sha256:b8c0bd73aeac689beacd4e7667d48c299f61b959475cdbb91e7d3d88d27c56b9 \
--hash=sha256:be9b5b8659dff1f913039c2feee1aca499cfbc19e98fa12bc85e037c17ec6ca5 \
--hash=sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9 \
--hash=sha256:c16842b846a8d2a145223f520b7e18b57c8f476924bda92aeee3a88d11cfc391 \
--hash=sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847 \
--hash=sha256:c7c517d74bea1a6afd39aa612fa025e6b8011982a0897768a2f7c8ab4ebb78a2 \
--hash=sha256:d20fd853fbb5807c8e84c136c278827b6167ded66c72ec6f9a14b863d809211c \
--hash=sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2 \
--hash=sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057 \
--hash=sha256:d50d31bfedd53a928fed6707b15a8dbeef011bb6366297cc435accc888b27c20 \
--hash=sha256:dc1d33abb8a0d754ea4763bad944fd965d3d95b5baef6b121c0c9013eaf1907d \
--hash=sha256:dc5d1a49d3f8262be192589a4b72f0d03b72dcf46c51ad5852a4fdc67be7b9e4 \
--hash=sha256:e2d1a054f8f0a191004675755448d12be47fa9bebbcffa3cdf01db19f2d30a54 \
--hash=sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171 \
--hash=sha256:ed1708dbf4d2e3a1c5c69110ba2b4eb6678262028afd6c6fbcc5a8dac9cda68e \
--hash=sha256:f2d4380bf5f62daabd7b751ea2339c1a21d1c9463f1feb7fc2bdcea2c29c3160 \
--hash=sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b \
--hash=sha256:f8346bfa098532bc1fb6c7ef06783e969d87a99dd1d2a5a18a892c1d7a643c58 \
--hash=sha256:f83fa6cae3fff8e98691248c9320356971b59678a17f20656a9e59cd32cee6d8 \
--hash=sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33 \
--hash=sha256:fb2b1ecfef1e67897d336de3a0e3f52478182d6a47eda86cbd42504c5cbd009a \
--hash=sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880 \
--hash=sha256:fd30d9c67d13d891f2360b2a120186729c111238ac63b43dbd37a5a40670b8ca \
--hash=sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b \
--hash=sha256:fe3b385d996ee0822fd46528d9f0443b880d4d05528fd26a9119a54ec3f91c69
# via -r dependency_support/pip_requirements.in
5 changes: 5 additions & 0 deletions xls/dslx/stdlib/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ xls_dslx_prove_quickcheck_test(
srcs = ["std.x"],
)

xls_dslx_library(
name = "acm_random_dslx",
srcs = ["acm_random.x"],
)

xls_dslx_test(
name = "acm_random_dslx_test",
srcs = ["acm_random.x"],
Expand Down
11 changes: 11 additions & 0 deletions xls/modules/rle/rle_common.x
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.

import std;

// This file defines RLE common data structures
//

Expand All @@ -24,6 +26,15 @@ pub struct PlainData<SYMB_WIDTH: u32> {
last: bool, // flush RLE
}

// Structure contains multiple uncompressed symbols.
// Structure is used as an output from a advanced RLE decoder.
// FIXME: add default value DATA_WIDTH_LOG2: u32 = {std::clog2(DATA_WIDTH + u32:1) } (https://github.com/google/xls/issues/1425)
pub struct PlainDataWithLen<DATA_WIDTH: u32, DATA_WIDTH_LOG2: u32> {
symbols: uN[DATA_WIDTH],
length: uN[DATA_WIDTH_LOG2],
last: bool,
}

// Structure contains compressed (symbol, counter) pairs.
// Structure is used as an output from RLE encoder and
// as an input to RLE decoder.
Expand Down
Loading