Skip to content

Specialize handling of incorrect VCDs for single bit case #64

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 15, 2025

Conversation

oscargus
Copy link
Contributor

Closes #62

A bit tricky to tell exactly how much is saved due to thermal throttling and running other stuff (to some extent), but before:

real    7m34.233s
user    14m20.476s
sys     12m49.311s

After:

real    6m50.539s
user    12m39.561s
sys     11m46.392s

so I think slightly above 10%.

These are running wave2saif on a 2.2 GB post-synthesis VCD file.

@@ -800,6 +786,19 @@ impl SignalEncoder {
});
self.max_states = States::join(self.max_states, states);
} else {
let value_bits: &[u8] = match value[0] {
b'b' | b'B' => &value[1..],
_ => value,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if this is ever triggered now? It can be replaces with

let value_bits: &[u8] =  &value[1..];

and the tests still pass.

@oscargus oscargus changed the title Specialize incorrect VCD handlng for single bit case Specialize handling of incorrect VCDs for single bit case Jul 11, 2025
@ekiwi ekiwi merged commit 12f2cc8 into ekiwi:main Jul 15, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Simplify single-bit parsing of VCD
2 participants