pyvcd
Value change dump (VCD) file support for Python
Decision gist · record as of 2026-08-14
Yes. PyVCD is actively maintained, has no known vulnerabilities, installs with minimal friction, and is licensed permissively under MIT. It fills a specific and well-defined role in the EDA and simulation ecosystem. Install it if you need to generate or consume VCD waveform files in Python.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low friction installation with a single lightweight runtime dependency (typing-extensions).
- The package is actively maintained with a recent release (3 days old) and has been in development since 2016, indicating stable long-term support.
License · maintenance · safety
MIT (permissive) — MIT license is permissive and places minimal restrictions on use, modification, or distribution—suitable for both open-source and proprietary projects.
last release 2026-08-11 (3 days) · last repo commit 2026-08-11 · 135 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 173,427 downloads/mo, #10,308 on PyPI
Alternatives
Verify before relying
pip install pyvcd
from vcd import VCDWriter
import sys
with VCDWriter(sys.stdout, timescale='1 ns', date='today') as writer:
counter_var = writer.register_var('scope', 'counter', 'integer', size=8)
writer.change(counter_var, 0, 10)- Performance characteristics when handling large VCD files or high-frequency signal changes.
- Extent of read support for VCD files beyond the write functionality demonstrated.
What it is and what it does
PyVCD is a Python library for creating and reading Value Change Dump (VCD) files, a standard format used in digital design and verification to record how signal values change over time during simulations. It implements the VCD specification from IEEE 1800-2023 and provides an API for registering signals, recording value changes at specific timestamps, and writing waveform data to files.
The package is commonly used in hardware verification workflows, simulation environments, and educational settings where you need to capture and inspect signal behavior. It depends only on typing-extensions for runtime compatibility and supports Python 3.10 and later across CPython and PyPy implementations.
Use it for
- Export simulation waveforms from digital design simulators to standard VCD format for analysis in external viewers.
- Capture and log signal changes during hardware verification test benches for post-simulation debugging.
- Generate VCD files programmatically from Python-based test frameworks or verification environments.
- Archive and compare waveform data across multiple simulation runs in design validation workflows.
- Integrate waveform recording into educational tools for teaching digital logic and circuit simulation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
PyVCD is actively maintained, has no known vulnerabilities, installs with minimal friction, and is licensed permissively under MIT. It fills a specific and well-defined role in the EDA and simulation ecosystem. Install it if you need to generate or consume VCD waveform files in Python.
Install
pyvcd on PyPI
Before you install
Low friction installation with a single lightweight runtime dependency (typing-extensions). The package is actively maintained with a recent release (3 days old) and has been in development since 2016, indicating stable long-term support.
Requires Python 3.10 or later.
License in practice
MIT license is permissive and places minimal restrictions on use, modification, or distribution—suitable for both open-source and proprietary projects.
Quickstart
pip install pyvcd
from vcd import VCDWriter
import sys
with VCDWriter(sys.stdout, timescale='1 ns', date='today') as writer:
counter_var = writer.register_var('scope', 'counter', 'integer', size=8)
writer.change(counter_var, 0, 10)
Verify before relying
- Performance characteristics when handling large VCD files or high-frequency signal changes.
- Extent of read support for VCD files beyond the write functionality demonstrated.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetyping-extensions |
| Maintenance | Actively maintained 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 173,427 / month, #10,308 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Electronic Design Automation (EDA) |
Evidence: pyvcd-0.5.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “vcd file writer reader”
- pyvcdPyVCD writes and reads Value Change Dump (VCD) files as specified in…
- vcdvcdParses Verilog value change dump (VCD) files and provides both a…
- ndjsonProvides a familiar JSON Lines (ndjson) parser and writer with an API…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also vcdvcd · mutf8 · pyorc · pygexf · ruamel.yaml.string · peakrdl-cheader · ansible-vault · javaproperties · pyudev · dvsim