FastWaveBackend/README.md
Yehowshua Immanuel eb379e4ce6 update README
2022-07-28 10:43:58 -04:00

1.8 KiB

Copyright - Yehowshua Immanuel

A High performance, VCD Parser written in Rust

Current Features

  • pretty fast

Planned Features

  • rapid log2n scrubbing through a signal's timeline

Current Limitations

Unable to handle VCD files that have signals with more than 2^32 - 1 = 4,294,967,295 deltas/changes.

Running

Make sure you have a test vcd file to get you started. You can grab a large VCD file from here.

The first build of the program may take some time.

cargo run --release test-vcd-files/aldec/SPI_Write.vcd

You can run all the tests with cargo test

TODO

  • make a custon date parser for possibly up to 18 different versions(that is, for each possible tool).

  • Fix warning especially usage and restriction warnings once I'm able to successfully parse all sample VCDs.

  • Change error messages to line and filenames. Go through all calls to format! whilst also keep performance in mind.

  • Create compressed fungible numeric enums with good heuristic support.

  • Print out git commit or release number.

  • Should be able to load waveform whilst viewing it live. - could be quite challenging to implement for various reasons

  • Consolidate error messages and add cursors throughout.

  • Consider what to do with don't care values will probably just convert them to strings for now.

  • Include line and possible column numbers

  • Take a look at GTKWave parser to compare effificiency.

  • Send survey to community channel.

Questions to Answer

  • Is it safe to assume that we may treat any values before the first non-zero timestamp as having occured on #0?

Probably No Longer Needed

  • Should insert nodes in BFS order