Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2dca4ce
Add a separate test case for each test file
rw1nkler Jun 13, 2025
53571ca
Add "pytype binary, library" hint
sgizler May 23, 2025
af3b51a
Add cocotb tests
koblonczek Aug 16, 2024
11a248d
xls/modules/zstd: expose fifo verilog module
lpawelcz Dec 31, 2024
e0856b5
modules/zstd/cocotb: Add ZSTD frame generator library
lpawelcz Oct 9, 2024
a0a309f
dependency_support: Add zstandard python library
lpawelcz Oct 3, 2024
bffd3a3
modules/zstd: Add verilog simulation of the ZstdDecoder
lpawelcz Oct 8, 2024
de73006
Use frame generator in tests
koblonczek May 13, 2025
5b6d804
modules/zstd/zstd_dec: Write decoded data to the memory
lpawelcz May 13, 2025
03aef2a
modules/zstd/zstd_dec: Remove stream-based output interface
lpawelcz May 12, 2025
9adb781
modules/zstd/zstd_dec_cocotb_test: Improve Verilog simulation
lpawelcz Nov 18, 2024
eaeb6ed
modules/zstd/memory/mem_writer: Reduce the amount of random test cases
lpawelcz Jan 2, 2025
fa09c1f
modules/zstd/memory: Move verilog sources to rtl subdirectory
lpawelcz Apr 7, 2025
e3e64bd
xls/modules/zstd/external: Add docstring and license for third party …
lpawelcz Apr 7, 2025
bcaf1c5
modules/zstd: Adjust cocotb test to removal of RESET CSR
lpawelcz May 13, 2025
7153a6a
Style changes
wsipak Apr 7, 2025
aa24e64
Extend cocotb tests of ZSTD decoder
rw1nkler Jul 23, 2025
be24b01
Collect P&R benchmarks
rw1nkler Jul 23, 2025
5e90234
Add fixed version of RamDemux together with a test
rw1nkler Jun 17, 2025
49116aa
Document decoder testing
sgizler Jul 21, 2025
8cc9a8e
dependency_support: Add verilog_axi package
rw1nkler Apr 23, 2025
e27ac0b
Use bazel package with verilog_axi
rw1nkler Jul 23, 2025
3392904
Downgrade dependencies
rw1nkler Jul 23, 2025
e860acf
Run tests selectively in GitHub CI
rw1nkler Jul 24, 2025
978cb54
Remove zstandard python library
rw1nkler Jul 25, 2025
aac3756
modules: zstd: update readme
rw1nkler Sep 10, 2025
a914314
Add cocotb check for verifying huffman codes
rw1nkler Jul 18, 2025
1a5df3b
modules: zstd: cocotb: drop unused testcase
rw1nkler Sep 10, 2025
0393f5b
modules: zstd: disable huffman code builder PnR
rw1nkler Sep 10, 2025
86d2c87
modules: zstd: fix formatting
rw1nkler Sep 10, 2025
acf0ffd
Update python lock file
rw1nkler Sep 19, 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
4 changes: 3 additions & 1 deletion .github/workflows/modules-zstd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ jobs:
- name: Test ZSTD Module - DSLX Tests (opt)
if: ${{ !cancelled() }}
run: |
bazel test -c opt --test_output=errors -- $(bazel query 'filter("_dslx_test$", kind(rule, //xls/modules/zstd/...))')
bazel test -c opt --test_output=errors -- $(bazel query 'filter("_dslx_test$", kind(rule, //xls/modules/zstd/...)) except filter("zstd_dec_dslx_test$", kind(rule, //xls/modules/zstd/...))');
# Run all tests except those ending with `_skip`
bazel test -c opt --test_strategy=exclusive --test_output=errors --test_filter='^(.*[^_]|.*_[^s]|.*_s[^k]|.*_sk[^i]|.*_ski[^p])$' //xls/modules/zstd:zstd_dec_dslx_test;

- name: Build ZSTD verilog targets (opt)
if: ${{ !cancelled() }}
Expand Down
54 changes: 53 additions & 1 deletion MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2025 The XLS Authors
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think there is a precedent for our project to import SystemVerilog third_party dependency, I'll have to figure out how to make this work.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as we discussed, it might be worth exploring landing the verilog dependency in a separate PR (and merge first the cocotb tests that don't depend on it)

#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Needed to make this a package.
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Copyright 2025 The XLS Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

load("@xls_pip_deps//:requirements.bzl", "requirement")

package(default_visibility = ["//visibility:public"])

exports_files(
glob(["rtl/*.v"]),
)

py_binary(
name = "axi_crossbar_wrap",
srcs = ["rtl/axi_crossbar_wrap.py"],
deps = [requirement("Jinja2")],
)

py_binary(
name = "axi_interconnect_wrap",
srcs = ["rtl/axi_interconnect_wrap.py"],
deps = [requirement("Jinja2")],
)

py_binary(
name = "axil_crossbar_wrap",
srcs = ["rtl/axi_crossbar_wrap.py"],
deps = [requirement("Jinja2")],
)

py_binary(
name = "axil_interconnect_wrap",
srcs = ["rtl/axil_interconnect_wrap.py"],
deps = [requirement("Jinja2")],
)
8 changes: 8 additions & 0 deletions dependency_support/load_external.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,11 @@ def load_external_repositories():
urls = ["https://github.com/facebook/zstd/archive/fdfb2aff39dc498372d8c9e5f2330b692fea9794.zip"],
build_file = Label("//dependency_support/com_github_facebook_zstd:bundled.BUILD.bazel"),
)

http_archive(
name = "com_github_alexforencich_verilog_axi",
sha256 = "f3b58406b51950584cc7b0c67b0710cef10cb14e1f5576e97a2f0b1c0b12fcbe",
strip_prefix = "verilog-axi-516bd5dadc3365b7f9e225d2af8fe0b8d804fe53",
urls = ["https://github.com/alexforencich/verilog-axi/archive/516bd5dadc3365b7f9e225d2af8fe0b8d804fe53.zip"],
build_file = "//dependency_support/com_github_alexforencich_verilog_axi:bundled.BUILD.bazel",
)
3 changes: 3 additions & 0 deletions dependency_support/pip_requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ pyyaml==6.0.1
# We build most of z3 ourselves but building python is really complicated. Just
# use pypi version
z3-solver==4.14.0.0
cocotb==1.7.2
cocotbext-axi==0.1.24
cocotb_bus==0.2.1

# 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
49 changes: 49 additions & 0 deletions dependency_support/pip_requirements_lock.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,51 @@ click==8.1.3 \
# via
# -r dependency_support/pip_requirements.in
# flask
cocotb==1.7.2 \
--hash=sha256:0c1687ac78141724b8529e029ee6299698ecaa8a2c431b744eeff487a4bb18de \
--hash=sha256:163e5262020cc21f6a0391fb4727c9ab3ecbf6ee12a1472c8f7320b3ba211a50 \
--hash=sha256:170cf4d01c4d7c6c5b141ffc1824e846a6c8adbed553a50984cd522c1dddb111 \
--hash=sha256:1851ac56eed7bb6c745aabfc0e417195cb4f08b5df50846c04eb77a868bfeaba \
--hash=sha256:1abffb36183b07469c490836c66d8b9e24fc1bec7c27356818618a6719fabd4b \
--hash=sha256:33be79f048f4072240668a079d2bcebd1a24611a0a1e55439b65ffa0ff077790 \
--hash=sha256:34ab1bf3f18476724dd4e21dbcc0e060e813eb502abe155b800084fb6945360c \
--hash=sha256:360019f74270661d14e9caa8103e740a070cb466ab08376a565ec0ef4c13dbbf \
--hash=sha256:37ddb79f4ab60d2d2dc5a9db5bf767d226eb4978fd15b84dfb968d31ab2fcda5 \
--hash=sha256:43f5af578803e5726b5c75421c0e35e54021ab423d3aa4efe930feb740d6479d \
--hash=sha256:4738f36b9730cc05b74ccba3648dba0455cf9f237abf822ef307a274a29474c2 \
--hash=sha256:4aa5d73ebdb59ef24cef36a1f8cca11dcecb3ee7b71a84df02751020bc67ea77 \
--hash=sha256:574d21501ff1a3d36889397cd58a18d102d0e40391aa7a0274b600d1cc4c7dc3 \
--hash=sha256:69f4e539dd308c9e169ab23135138ec397061b700f209803a6022ae9fbe08933 \
--hash=sha256:6f289ac00f4884046ec64db7006e47b1c857a36dcd2a80ea0873cbff00248368 \
--hash=sha256:707f795a17679b4653a50bd4094536a46fbfee5c6e3d951fac4320ee211ad13f \
--hash=sha256:7828e22946f128aa59cb9254de4037b99e3bd5a51fe8f590cf64a3141d742a37 \
--hash=sha256:82f694da656a699154b15ee28be3ac39c41a71d33985313deda12a3645f8b3db \
--hash=sha256:959892eb94bd0b3ff40e0fca51d33a3936416deb853e2bac4f7f766b40002650 \
--hash=sha256:a7ec6a2d212c27ec46bed17a15d60b7b29cd0f734f11cc16d2cb4d3f6136e133 \
--hash=sha256:a90c77f4bbfdf73aa16093dfe95c68af1a1ca685ebfa525f3f150eab252f6728 \
--hash=sha256:b288a59fa8dffc1cbc53105e71e2f8c82421081b17282e41319832654b309477 \
--hash=sha256:c41cc8d4ece57f5e26076cd12f1e11d464d7f118fdb74b958269535185d99a30 \
--hash=sha256:c8dce91d2a918ee63338d79b08e3d52f1d2797efd9c2bedd13c33d674f730db8 \
--hash=sha256:d26a8a40cea61f295be04b1164a5dd9ec873f13a39814ad00efec7fd899320e0 \
--hash=sha256:d80b3baafff1a8a91ac860023c448c603767bed502258160a5cb6029976fec4f \
--hash=sha256:dcf5354268f16d9e11e05cf3616172ca5ef503b45567f75ebd96a0bfdb9832d1 \
--hash=sha256:ded849360fb31746f1ba3a994f89c3bba2466ec2d0b4b5da0030645645f938d4 \
--hash=sha256:e03df73573aec261447602904bd66927eeb2f00dd24370dc9a57f47fd42c4d70 \
--hash=sha256:f97c2eb92cb68831f19b82ba0038ce40fa73c5edbffb7930745edac20c5358d1 \
--hash=sha256:fa8abed5260baf4306fbfb997c8789fe24bc229cd762b12d7dba0b9c20147b1d
# 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
contourpy==1.3.1 \
--hash=sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1 \
--hash=sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda \
Expand Down Expand Up @@ -74,6 +119,10 @@ cycler==0.12.1 \
--hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \
--hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c
# via matplotlib
find-libpython==0.4.0 \
--hash=sha256:034a4253bd57da3408aefc59aeac1650150f6c1f42e10fdd31615cf1df0842e3 \
--hash=sha256:46f9cdcd397ddb563b2d7592ded3796a41c1df5222443bd9d981721c906c03e6
# via cocotb
flask==2.3.2 \
--hash=sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0 \
--hash=sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef
Expand Down
Loading