Skip to content

Conversation

rw1nkler
Copy link
Contributor

@rw1nkler rw1nkler commented Sep 10, 2025

Added functionality:

  • multiple testcases covering the decoding of frames with "compressed" blocks of different type
  • cocotb testing utilities for common operations on XLS channels
  • collection of PnR benchmarks
  • ZSTD frame generator
  • tests of axi ram writer/reader procs as well as memreader & memwriter

Supersedes #2717

rw1nkler and others added 30 commits September 10, 2025 17:03
Add cocotb testing utilities:
- XLSStruct for easier handling and serializing/deserializing XLS structs
- XLSChannel that serves as a dummy receiving channel
- XLSMonitor that monitors transactions on an XLS channel
- XLSDriver that can send data on an XLS channel
- LatencyScoreboard that can measure latency between corresponding transactions on input and output buses
- File-backed AXI memory python model

Add cocotb tests for:
- modules/zstd/memory/MemReader
- modules/zstd/memory/AxiWriter
- modules/zstd/memory/MemWriter

Co-authred-by: Pawel Czarnecki <[email protected]>
Co-authred-by: Robert Winkler <[email protected]>
Co-authred-by: Michal Czyz <[email protected]>
Signed-off-by: Michal Czyz <[email protected]>
Signed-off-by: Pawel Czarnecki <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Signed-off-by: Krzysztof Obłonczek <[email protected]>
This reverts commit 04ad379225b706ddf492d440c673e77348d7a409.
Co-authored-by: Robert Winkler <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Signed-off-by: Krzysztof Obłonczek <[email protected]>
ZstdDecoder:
  * Cocotb tests:
    * Move third-party verilog modules (AXI Interconnect) to external directory
    * Replace AXI Interconnect with AXI Crossbar that handles simultaneous AXI Read
      and Write transactions
    * Add reference memory and fill it with expected data for comparison
      against testbench memory at the end of the decoding

Internal-tag: [#67272]
Signed-off-by: Pawel Czarnecki <[email protected]>
Adjust cocotb test to:
* Removal of Repacketizer proc
* Removal of stream-based output channels from
  * SequenceExecutor
  * ZstdDecoder

Internal-tag: [#67272]
Signed-off-by: Pawel Czarnecki <[email protected]>
* Decode multiple ZSTD frames in a single cocotb testbench
* Add one cocotb testbench per type of the ZSTD frames:
  * Frames with RAW blocks only
  * Frames with RLE blocks only
  * Frames with Compressed blocks only (disabled)
  * Frames with mixed blocks (disabled)

Internal-tag: [#67272]
Signed-off-by: Pawel Czarnecki <[email protected]>
Caused by timeouts after rebase - looks like regression in the
performance of codegen

Signed-off-by: Pawel Czarnecki <[email protected]>
Improve formatting, wording and fix lint issues

Co-authored-by: Pawel Czarnecki <[email protected]>
Signed-off-by: Wojciech Sipak <[email protected]>
Co-authored-by: Pawel Czarnecki <[email protected]>
Co-authored-by: Krzysztof Oblonczek <[email protected]>
Co-authored-by: Wojciech Sipak <[email protected]>
Co-authored-by: Dominik Lau <[email protected]>
Co-authored-by: Szymon Gizler <[email protected]>

Signed-off-by: Robert Winkler <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Co-autored-by: Dominik Lau <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Co-autored-by: Dominik Lau <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Co-autored-by: Dominik Lau <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
Co-autored-by: Dominik Lau <[email protected]>
Signed-off-by: Robert Winkler <[email protected]>
@rw1nkler
Copy link
Contributor Author

@proppy Please let us know if there’s anything else we can do to move this forward

@@ -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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants