Skip to main content

Simplify VCD

Clip, trim and reduce VCD files

Simplify VCD is a command-line tool designed to make working with Value Change Dump (VCD) files more efficient and faster. VCD files can quickly become large and unwieldy, making analysis and processing slow and cumbersome. This tool enables users to clip sections of VCD files, trim irrelevant data, and reduce the resolution to a more manageable timescale, significantly improving processing speed and usability.

It started life as a simple script to convert the analyzer captures from my Glasgow Digital Interface Explorer down to the micro-second scale to speed up analysing them with Sigrok & Pulseview, but it grew arms and legs until it became what you see in this repo.

I can't vouch it will play nicely with the VCDs produced by your favorite tool, but it's managed fine with the captures I've made with my Glasgow. Pull Requests to support other, more complicated, VCD files are welcome!

Install

$ pip install simplify-vcd

Usage

Snip a single frame from the stream and reduce the resolution

$ simplify-vcd \
    --truncate-before=124687us \
    --truncate-after=132000000ns \
    --output-timescale=1us \
    examples/input-1.vcd \
    examples/output-1.vcd

$ sigrok-cli -i examples/output-1.vcd -P uart:baudrate=9600,modbus | \
  grep modbus
modbus-1: Slave ID: 32
modbus-1: Function 3: Read Holding Registers
modbus-1: Byte count: 2
modbus-1: 0x0001 / 1
modbus-1: CRC correct

Reduce the resolution to increase processing speed

$ time sigrok-cli -i examples/input-1.vcd -P uart:baudrate=9600,modbus
# ...
real    8m50.080s
user    8m49.770s
sys     0m0.129s

$ simplify-vcd \
    --output-timescale=1us \
    examples/input-1.vcd \
    examples/output-1.vcd

$ time sigrok-cli -i examples/output-1.vcd -P uart:baudrate=9600,modbus
# ...
real    0m0.663s
user    0m0.642s
sys     0m0.021s

Development

# Create your virtual environment
$ python3 -m venv .venv --prompt=vcd

# Activate your virtual environment
$. .venv/bin/activate

# Install this code into your virtual environment as an editable
# package, with all our dev dependencies too
$ pip install -e .[dev]

#
# Do some coding...
#

# Lint and test
$ ./lint-and-test

License

Simplify VCD - Clip, trim and reduce VCD files

Copyright (C) 2025 Mike Coats

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Metadata

Release files for simplify-vcd 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simplify-vcd 1.1.0
File Size Uploaded
simplify_vcd-1.1.0.tar.gz 42.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simplify-vcd 1.1.0
File Interpreter ABI Platform
simplify_vcd-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 69.3 kB

Release files / simplify_vcd-1.1.0.tar.gz

Download URL simplify_vcd-1.1.0.tar.gz
Size 42.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e2d9eb84f00f8537e5908a70394b3b6fa794314b05277e229ff2e9b49c7374a8
BLAKE2b-256 checksum
How to use checksums
fcb0a11f69fa503af7e0fe29eb07baf03b8c5e6f48b293341befbaa212c1d650
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / simplify_vcd-1.1.0-py3-none-any.whl

Download URL simplify_vcd-1.1.0-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21669fe9ab634e17a0a842de07a95f5d44c51e15ec6056f1a6a428b0bfa0a3e4
BLAKE2b-256 checksum
How to use checksums
f9f0abcf3dc6e3b457d8f2f557071d333bc5dd0174b160ab7ae30c61ed157201
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

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