EQWAVE: Why Timestamps Lie in RTL vs GLS (and Behavior Doesn’t)
If you’ve ever compared RTL and GLS waveforms, you’ve seen this:
- RTL passes
- GLS fails
- Waveforms don’t line up
- The design is actually correct
That’s because timestamps lie.
The Problem with Timestamps
RTL and GLS live in different timing domains:
- RTL has zero gate delays
- GLS includes real gate delays
- Signal transitions naturally shift in time
Comparing signals by timestamp produces false mismatches, not bugs.

What Actually Matters: Behavior
Instead of asking when a signal toggles, ask:
Did the same sequence of events occur?
If valid → data → ready happens in the same order, timing differences don’t matter.
How EQWAVE Fixes This
EQWAVE compares behavioral patterns, not timestamps:
- Captures signal states on every change
- Hashes them into fingerprints
- Compares sequences, ignoring gate-delay noise
Real bugs show up as behavioral divergence, not timing drift.
Why This Matters
- Fewer false failures
- Faster debug cycles
- Scales better for large designs
This approach is essential as designs get bigger and more complex.
TL;DR
Timestamps lie.
Behavior doesn’t.
That’s the idea behind EQWAVE.
🔗 Full technical article:
EQWAVE: Timestamps lie. Behavior doesn't
Top comments (0)