Skip to main content

wavekit

CI PyPI version Python Versions Downloads License

English | 中文

Wavekit is a Python library for high-level digital waveform analysis. It loads signals from waveform files as clock-aligned Waveform objects, allowing users to query and operate on them at the cycle and transaction levels, making complex hardware behavior easier to analyze.

Quick links: Online playground · AI integration

Features

  • Flexible signal queries: find and batch-load related signals from hierarchical waveform data using multiple path-matching options.
  • Cycle-level analysis: use a range of waveform operations on clock-sampled data to analyze cycle-based behavior such as interface backpressure and FIFO occupancy.
  • Transaction-level analysis: use temporal pattern matching to describe signal relationships across multiple clock cycles for protocol analysis, transaction extraction, and latency measurement.
  • Multi-format waveform support: load and analyze VCD, FST, and FSDB files using the same API.

Installation

python -m pip install wavekit

wavekit supports Python 3.9 and newer. FSDB support requires the Verdi NPI runtime (libNPI.so); see the installation guide for setup details.

Quick start

Calculate the occupancy of a FIFO from a VCD waveform:

import numpy as np

from wavekit import VcdReader

with VcdReader('simulation.vcd') as r:
    fifo = r['tb.u_fifo']
    with r.clock_domain(clock='tb.clk'):
        w_ptr = fifo['w_ptr'].w
        r_ptr = fifo['r_ptr'].w

    depth = 16
    occupancy = (w_ptr + depth - r_ptr) % depth

    print('Average occupancy:', np.mean(occupancy.value))

See the first waveform tutorial for a complete runnable FIFO example.

Documentation

See the documentation for the full reference and guides:

Development

Install the development dependencies and run the checks with Poetry:

poetry install
poetry run pytest
poetry run ruff check .
poetry run ruff format --check .
poetry run mypy

Build the documentation locally with Python 3.10 or newer:

poetry install --with docs
poetry run zensical build --clean --strict

See Contributing for contribution guidelines.

License

This project is licensed under the MIT License. See LICENSE.

Metadata

Release files for wavekit 0.8.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wavekit 0.8.2
File Size Uploaded
wavekit-0.8.2.tar.gz 56.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for wavekit 0.8.2
File
wavekit-0.8.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl CPython 3.14 CPython 3.14 PyEmscripten 2026.0+ WebAssembly Details
wavekit-0.8.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
wavekit-0.8.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
wavekit-0.8.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
wavekit-0.8.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
wavekit-0.8.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
wavekit-0.8.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
wavekit-0.8.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
wavekit-0.8.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
wavekit-0.8.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
wavekit-0.8.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
wavekit-0.8.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
wavekit-0.8.2-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 5.8 MB

Release files / wavekit-0.8.2.tar.gz

Download URL wavekit-0.8.2.tar.gz
Size 56.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a3b27f2747dd6be3099934618d19164c7265d7d14f35938dd4c580bf41e0fc2c
BLAKE2b-256 checksum
How to use checksums
22df03da3eb33433e7fe99ec23b8d593d6dcdc82167508b9e89cf712cfd2ebf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL wavekit-0.8.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 122.4 kB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
43383c5685bd5eb32b72159d2e0fd1b9bd49fda26f659a779e403490dd3af814
BLAKE2b-256 checksum
How to use checksums
f5014b09b52fbf70c21d8726a50723f61432e4abdaf523592ada850237cb97fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 759.4 kB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3268c24596d901ff0d6dd3de667f21d89fd21786fd49699b086183cbc2fbd9a8
BLAKE2b-256 checksum
How to use checksums
ff968f18910fbb0152b59af3cfa3578e9d2dd2466ca12ae2e57a804749e9bf7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL wavekit-0.8.2-cp314-cp314-macosx_11_0_arm64.whl
Size 178.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
babee8f18f526edf035115879c63f0c75ac8bafa4eb90d0cdddeaf09cd1b1ed4
BLAKE2b-256 checksum
How to use checksums
d62573ad6e3f5e30a472dbdd1468b7fa2c22591eff9c63777339102c83781531
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 764.8 kB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d8e44e6ada394af14ae323d55b3c0f773b39969a85048783e79de163652f7935
BLAKE2b-256 checksum
How to use checksums
39c931b22bd0f167a61320e706b723744cc3ae2a7ce4af8db001408510954b98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL wavekit-0.8.2-cp313-cp313-macosx_11_0_arm64.whl
Size 177.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
862f58155a1982060ca61f8a34bc92b7eefc62275f7f0a3937346cab92f8171a
BLAKE2b-256 checksum
How to use checksums
dfd2abaa6537b8a0bb4854964daf29d6c41c8358e92cf2835c6e80f741dbcefa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 780.7 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
34311eb17c93223a34e8ff8edc585b75d669bfe7a21749906008e22106a37644
BLAKE2b-256 checksum
How to use checksums
e32aed7986d4bc0c7d77342fd408b79ca525b55bf4f9a65778235199a09ea785
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL wavekit-0.8.2-cp312-cp312-macosx_11_0_arm64.whl
Size 178.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7f56ca1e18d4d3973e469ac70ca53b83a0486948b38a6b87fae91ae0d10a4d7f
BLAKE2b-256 checksum
How to use checksums
22e8a8b2595c957e93de25597e64f203ce4d500bf62e0ea03fac07d30b45250c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 757.8 kB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4cdc02ae54b317362c4421c30df010f693f11cd57be366dd6487c8e116d7d540
BLAKE2b-256 checksum
How to use checksums
918e3307afe6eb1330d3c1468c21a1d9e3225c2d2dee491504fa3c658aa4f7ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL wavekit-0.8.2-cp311-cp311-macosx_11_0_arm64.whl
Size 178.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0e0fe6f4c80a8bc8aba9ffaeee90d210ce86d17853df8a803bee441b87479a76
BLAKE2b-256 checksum
How to use checksums
dcc5fab5101dcc620d0c8768b9cb4d982f23d1d984179a9ef95d1bc474609960
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 725.8 kB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
598e06c79fcd1aef98879e76b4cfb8820e0690b0f8c5301df4f059107afad4b1
BLAKE2b-256 checksum
How to use checksums
92b10c46f773769652ffd02d71492f920e1dbd0892f3834938dd2158c74fbc3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL wavekit-0.8.2-cp310-cp310-macosx_11_0_arm64.whl
Size 179.6 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
01bf466ab98507f3e7891e9cce2a6b4b9ad674806cdfd07f08443e83c4763888
BLAKE2b-256 checksum
How to use checksums
153ae6b9555b5f353fe7d4ce532c039b1a8dadb5b1e9ceaf44685e09e518fbf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 724.5 kB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9d2c9d05859f7a3f411bbd5c252fca520dde67b38596ff596f9c44ed54eb25ac
BLAKE2b-256 checksum
How to use checksums
fc5c5ea2cc3e02189193df591ae28040803ab0221e4663c740bbcb57be5457ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / wavekit-0.8.2-cp39-cp39-macosx_11_0_arm64.whl

Download URL wavekit-0.8.2-cp39-cp39-macosx_11_0_arm64.whl
Size 180.2 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
758fe64638e3c9b6768cc2c08cbe5016ed3199e6d1603f2e991780c669bb9e8f
BLAKE2b-256 checksum
How to use checksums
b4cd244b1f6844ee14023e06c4c6e119285427e485c2db70bb39ab5e329e8616
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.8.2 This release

14 release files

0.8.1

14 release files

0.8.0

14 release files

0.7.3

7 release files

0.7.2

7 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page