--- id: pyvcd version: "0.5.0" license: MIT license_treatment: permissive maintenance: active --- # pyvcd — Value change dump (VCD) file support for Python License: permissive · Maintenance: active · Downloads: 173.4K/mo ## 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 above — verify before relying. PyVCD writes and reads Value Change Dump (VCD) files as specified in IEEE 1800-2023, enabling capture and analysis of signal changes over time in digital simulations. 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 pip install pyvcd uv add pyvcd poetry add pyvcd ## Installing pyvcd 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. 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) Requires Python 3.10 or later. 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_current - Install friction: low - Maintenance: active - Downloads: 173.4K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags vcd file writer reader, value change dump python, digital simulation waveform, ieee 1800 vcd format, signal trace capture, simulation output analysis, hardware verification dump, eda, simulation, waveform-capture [View on SkillFed](https://skillfed.io/packages/pyvcd) · [View on PyPI](https://pypi.org/project/pyvcd/)