wavekit
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:
- Installation
- First waveform
- Reader guide
- Signal queries
- Waveform analysis
- Pattern matching
- API reference
- Complete examples
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.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| wavekit-0.8.3.tar.gz | 57.6 kB | Without provenance | Details for wavekit-0.8.3.tar.gz |
Built distributions (wheels)
Total release size: 5.8 MB
Release files / wavekit-0.8.3.tar.gz
| Download URL | wavekit-0.8.3.tar.gz |
|---|---|
| Size | 57.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f07f281a59383e70d9fff307b814eb727c3df9dae6b4676146496c6c99353bd5
|
|
BLAKE2b-256 checksum How to use checksums |
be90ca854e99610fa5fbc97780cfc6d629eeaa3f2ddedd2bf2fee41c78bec6bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp314-cp314-pyemscripten_2026_0_wasm32.whl
| Download URL | wavekit-0.8.3-cp314-cp314-pyemscripten_2026_0_wasm32.whl |
|---|---|
| Size | 123.3 kB |
| Tags | CPython 3.14 PyEmscripten 2026.0+ WebAssembly |
|
SHA-256 checksum How to use checksums |
ec852c3f7f3142a6a780b469351ef47edd369c6efc4ceda9edc296e3e5ad80d3
|
|
BLAKE2b-256 checksum How to use checksums |
8e1170b34e801848dbf2a7348df0efe082ae242d535f65a4487fb4d2707380d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | wavekit-0.8.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 760.2 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
412f23f91a568212d1b4526f04d25b31eb8763745926679503c4ddf66ba730eb
|
|
BLAKE2b-256 checksum How to use checksums |
125e54f7f2418575bc2bcaeddde00ad9a80fce9b73e42c3eaed29b8a50029c63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | wavekit-0.8.3-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 179.1 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c1884f887fb4f76e22ef11e785becd92367ae57759c7288a3b0506b1a85ad155
|
|
BLAKE2b-256 checksum How to use checksums |
7a2c09384aad5930030b891ae5eb57e3b3d805fcb17b6d16233ad7da3836884c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | wavekit-0.8.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 765.6 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9e829c7a63158bf8489b864d49e3feef1f371e7a3b080123a768da11fc973630
|
|
BLAKE2b-256 checksum How to use checksums |
8a74eb219287ad24e46d71fa9fa02c7a40102e8b4777a0d068f4975f282f6816
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | wavekit-0.8.3-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 178.6 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ca3a5040f123cd8cce6b17e33e801550ff486dda1c0f8c300e66f59bb518fe38
|
|
BLAKE2b-256 checksum How to use checksums |
3ca798a14fd893f4ef3b35a5c234f2221e3a5c8dbf3884214d5bd757a09bac33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | wavekit-0.8.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 781.5 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
845366f5440edd3eddfca8ec96b9e7dc789328cf3d364bce2afbae0032911cd6
|
|
BLAKE2b-256 checksum How to use checksums |
922a0ade41f09000a4d929cb63d2e2aaa46772b46dc0f2840cf03d2e181019d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | wavekit-0.8.3-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 179.6 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
97e1e56589400e97fb99bcdeb23cc2a00bb5c2087179c69b2dc1bce7090b1605
|
|
BLAKE2b-256 checksum How to use checksums |
9620adb22712552e46c278a714f050cf951c3499c14ff20d0476c92012258366
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | wavekit-0.8.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 758.6 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
defdf96265c835199e1ac8e98ff39324726e28d1776f84181c5db06345515f62
|
|
BLAKE2b-256 checksum How to use checksums |
badc8e76106fbb00d58b8f607946a420652c94c748a67695a3490f2cc6bdc4e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | wavekit-0.8.3-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 179.2 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
353da221a731d86b70ad594cb447154b2dd0001c982a35d484badd3a05c7c1e9
|
|
BLAKE2b-256 checksum How to use checksums |
c8985a125cc2471a12e0e03f6443d86082da768fe622c2b95f5efe03ea08a64d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | wavekit-0.8.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 726.7 kB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f11ef77d93b00b044bb6299929e706c0f53184f72e52bdea09bd7ce0bd7f943c
|
|
BLAKE2b-256 checksum How to use checksums |
67370cad96dbb023e8b648b8f5d3e29d4ccd06c6830b4be97d038d6a5181d279
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | wavekit-0.8.3-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 180.4 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6802a559f1105292008314c3c654fabd63ab73611cd995ccfc785e4945d32e51
|
|
BLAKE2b-256 checksum How to use checksums |
0c2844a334e4597fddd0826bb5692e9865cea989f011dc53d59340b4f994ac47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | wavekit-0.8.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 725.3 kB |
| Tags | CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a2ebbba300147a3c0e841ab32c9aa7baa1cd640a1c76064e3fef961aabe8cb35
|
|
BLAKE2b-256 checksum How to use checksums |
8a02592c579372d2234c7e73363c5f9f9db294557eeed0417a596bed2240ba77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / wavekit-0.8.3-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | wavekit-0.8.3-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 181.1 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1f2ae3a3952020ed5750a52dd1ba6983199751504b56d57e5fc78401b8a59304
|
|
BLAKE2b-256 checksum How to use checksums |
792eb6e11ed62d6bfb1ace3330151c74947dbb593dd98c32461ac433bf69159d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for wavekit 0.8.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.