skillfed

pyvcd

Value change dump (VCD) file support for Python

pyvcd v0.5.0 173.4K downloads/30d#10,308 on PyPI135
Permissive license MIT Active released

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

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

pyvcd on PyPI

pip

pip install pyvcd

uv

uv add pyvcd

poetry

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 the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — typing-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)

Evidence: pyvcd-0.5.0-py3-none-any.whl

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)

Tags

vcd file writer readervalue change dump pythondigital simulation waveformieee 1800 vcd formatsignal trace capturesimulation output analysishardware verification dump
edasimulationwaveform-capture

More Scientific/Engineering packages