#vcd #verilog #eda #read-write #next-generation #white-space

bin+lib vcd-ng

Read and write VCD (Value Change Dump) files, the next generation

4 releases

0.2.0 Sep 5, 2024
0.1.2 Dec 22, 2022
0.1.1 Nov 8, 2022
0.1.0 Oct 21, 2022

#2249 in Parser implementations

39 downloads per month

MIT license

70KB
1.5K SLoC

VCD Next Generation

This is a fork of rust-vcd that does some performance-centric changes, including:

  • IdCode changed to natural byte order, which gives consecutive indices with Synopsys VCS generated trace.

  • FastFlow is implemented which uses a fast line reader to scan for bit vector changes.

  • CompactString and BitVec are used to represent strings and bits in the original API.

By experiments, FastFlow is very fast, but lacks some compatibility with ill-indented file and bad-formed whitespaces. BitVec actually slows down the program if there are many 1-bit signals. Please benchmark before you use.

The original version is by Kevin Mehall, with README as follows.


VCD

Documentation | Changelog

This crate reads and writes VCD (Value Change Dump) files, a common format used with logic analyzers, HDL simulators, and other EDA tools. It provides streaming wrappers around the io::Read and io::Write traits to read and write VCD commands and data.

Dependencies

~2MB
~38K SLoC