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.

AI integration: wavekit-mcp exposes wavekit analysis through MCP tools for AI-assisted workflows.

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

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.1
File Size Uploaded
wavekit-0.8.1.tar.gz 56.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for wavekit 0.8.1
File
wavekit-0.8.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl CPython 3.14 CPython 3.14 PyEmscripten 2026.0+ WebAssembly Details
wavekit-0.8.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
wavekit-0.8.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
wavekit-0.8.1-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.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
wavekit-0.8.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
wavekit-0.8.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
wavekit-0.8.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
wavekit-0.8.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
wavekit-0.8.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
wavekit-0.8.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
wavekit-0.8.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
wavekit-0.8.1-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.1.tar.gz

Download URL wavekit-0.8.1.tar.gz
Size 56.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e3eee4be58715b71714c445b1449378cc430989da1b736104f64b48b279b9cda
BLAKE2b-256 checksum
How to use checksums
471e20a2e81e8eef1e4d85b389690b45ba90f440fa31af6a3201150736e42ad6
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.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL wavekit-0.8.1-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
e3bd3f7f453f5afd026082d6f8efe35e3ccefcced9143111d49f18be05363cf3
BLAKE2b-256 checksum
How to use checksums
eeae2a15c4b9c10ed26bf4ddd2fc2e654e81bda54bb83bd87d4805a5bfeb6234
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.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.1-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
08ebc5123320cef9676e7109366f729258ae13627dd3a83638b63ea8ca639693
BLAKE2b-256 checksum
How to use checksums
67b8e997669be703e2cb1f16b87276db0dff384162927c860ca0054875bfde54
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.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL wavekit-0.8.1-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
c7b623ca569f24c983641af866e27d1a02e9b7de3dcb369dcd36e5f99f18bfe1
BLAKE2b-256 checksum
How to use checksums
44ae21609457981b699d541ae613d8b3baa384c785782c4c2fcc59ae05ef664c
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.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.1-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
93094ad9bc3199a116bae3635d928aea8f1c58cec68411e85a6105d70f68f6fa
BLAKE2b-256 checksum
How to use checksums
183d7125c341b5d35576491f8ae701242d4f602b93f12406423efc4ac52fd516
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.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL wavekit-0.8.1-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
20f81f11ae842d1871079cd38d6b6b93785c1e7f3305d52a4d366368d0210153
BLAKE2b-256 checksum
How to use checksums
adb3f1bdc5f975c9e46c5576d1f6cb7dd68f99d4f90192e4fa80388f4d489923
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.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 780.6 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e428f35ae3f7d7724d0ec8e7b998d8fa95cad4bd90143b62b93dbd7c7e409811
BLAKE2b-256 checksum
How to use checksums
d7300935f4149128f399f32033f127cd200208cf1655cd7d6ff41afe0d8d4d81
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.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL wavekit-0.8.1-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
8446060da218eaf3b923b6e56425090fa84a18a7358fd900efe4ad09b53c544e
BLAKE2b-256 checksum
How to use checksums
95e6aadf84b4f3c2fa2b965772b8a307522d71d08d2b761fd1b05c1e84c9ff79
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.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 757.7 kB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
77b975dd7c7bf30ff063d4d8023260c5d28b1fff6edf025c2179400da924270e
BLAKE2b-256 checksum
How to use checksums
17c6c7f96c25fb8c47682c79adb38a457ba20c516916fa133a8aa4bebc3cde68
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.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL wavekit-0.8.1-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
435b8ebff101927216b479bdef6712d8d3a441e916de44fae51efcbc2b05f5ce
BLAKE2b-256 checksum
How to use checksums
760013e1716741897bf29784343f0b4b0974c14f410962b0638bce6e29564a2c
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.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.1-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
84471ef712fc121588bc1c9ccb2f44cab88c2a10c4745e34c60d519146c5f1f1
BLAKE2b-256 checksum
How to use checksums
853a144d5a5ae3608bf3a8aac1397f6cc9f9315c8fc13598bb111d701c72f340
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.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL wavekit-0.8.1-cp310-cp310-macosx_11_0_arm64.whl
Size 179.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
23446e24353dfad92c6dd3966c2b29b26e9134854be2c88ea0d53b1bd3a99eae
BLAKE2b-256 checksum
How to use checksums
e402bcdb6c6a4297d263b2252bc92d0252a5ea0a64bf6828528c3e8d97519938
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.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL wavekit-0.8.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 724.4 kB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1d0d873f30243cc826b0eec3502d41e86088de54e1fb7c90020f3265aa7a9ed1
BLAKE2b-256 checksum
How to use checksums
94e67de4ea1cf68b340fa9782fb1a0d0d4ceb735e37fd0e5aa9fb3d3e7087bbf
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.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL wavekit-0.8.1-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
c0bfd87445d7699a2bc604664bd103936bd70cc320cff44e3f659717b0598c72
BLAKE2b-256 checksum
How to use checksums
ba51d032c0ca47db017a85d65717c745740c15a7cf6c2bc5d78d1706ad4c15a6
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

0.8.2

14 release files

This release

0.8.1 This release

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