Today we make a crazy promise to every chip company: we’ll erase every waveform dump run on your farm, cut your storage 100x, and hand your engineers back days from unnecessary simulation. Might sound impossible, but we’re serious.
play launch videoOver half of a chip’s lifecycle is dedicated to verification. When a test fails, engineers need a recording of every internal signal - the waveform - to see what went wrong… and most of the time it doesn’t exist. That’s because recording them is so slow (3-8x longer than a normal run) and the files are so massive (10s of GB) that almost no one records by default. Instead, after a failure, they scope out what to record and re-run the simulation with dumping on - losing hours to days.
A company like ARM runs 53 million EDA jobs a week. The combined time lost to reruns for a company at that scale isn’t a couple hours, it’s years - that’s the tax that companies have had to put up with using legacy tools.
But today that tax is officially dead.
Today, we’re proud to announce WaveZip - a compressed waveform format that lets you record every run. Always. Rerunning simulation is a thing of the past!
| step | before | wavezip |
|---|---|---|
| 1 | fail overnight | run (recording always on) |
| 2 | no waveform — recording off, it costs 3-8x | fail |
| 3 | pick signals | unzip |
| 4 | configure dump | debug — procedure ends here |
| 5 | rerun, dumping on | — |
| 6 | wait (hours, often a day) | — |
| 7 | reproduced? if no, loop back to step 5 | — |
| 8 | debug | — |
Waveform files are also now up to 500x smaller. Yes, you read that right… 500x. And best of all, it’s completely lossless.
We tested WaveZip extensively across four popular open-source designs: three RISC-V cores - VeeR EH1, CVA6, and Ibex - plus a full SoC, OpenTitan Earl Grey. For testing we used Verilator: widely recognized as one of the fastest Verilog simulators available. Even Verilator slows down 7.9x when dumping waveforms. WaveZip? Less than 10%.
Just to highlight how big of a deal this is, our friends over at Synopsys brag about single digit multipliers - 2x faster dumping, 5x smaller files…. that’s funny. Let’s take a look at speed:
| bar | workload | recording-off run | same run with recorder | printed value | basis |
|---|---|---|---|---|---|
| veer eh1 · full dump | coremark, 20 iterations | 62.029 s | 493.44 s (drawn at 7.955x) | 7.9x | measured |
| veer eh1 · wavezip | coremark, 20 iterations | 62.029 s | 64.08 s (drawn at 1.03309x) | +3.3% | measured |
| cva6 · full dump | coremark, 3 iterations | 90.908 s | 243.45 s (drawn at 2.678x) | 2.6x | measured |
| cva6 · wavezip | coremark, 3 iterations | 90.908 s | 96.30 s (drawn at 1.05933x) | +5.9% | measured |
| ibex simple system · full dump | coremark, 300 iterations | 185.74 s | 897.68 s (drawn at 4.833x) | 4.8x | measured |
| ibex simple system · wavezip | coremark, 300 iterations | 185.74 s | 201.75 s (drawn at 1.08620x) | +8.6% | measured |
| opentitan earl grey · full dump | coremark, 1 iteration | 272.865 s | 1247.81 s (drawn at 4.573x) | 4.5x | measured |
| opentitan earl grey · wavezip | coremark, 1 iteration | 272.865 s | 283.30 s (drawn at 1.03826x) | +3.8% | measured |
Next let’s take a peek at the size of resulting wave files! WaveZip files are up to 500x smaller than traditional waveforms - and that’s measured against FST, which is already ~50x smaller than raw VCD.
| artifact | size | status |
|---|---|---|
| the dump (dashed outline) | 2,947,131,944 bytes fst | measured, final founder CSV; printed 2.95gb on the plate |
| the wavezip (solid black square) | 5,413,074 bytes .wzip | measured; same run, whole run; printed 5.41mb |
| the run | coremark x20 on VeeR EH1 — the anchor run | measured; the caption calls it 'same test' when pointing at the other designs |
| the ratio | 544x (2,947,131,944 / 5,413,074 = 544.447, printed by FLOOR) | the division of two measured sizes; floor never flatters |
| the ruler (1 gb square) | 251.22 px side (true 251.2214, rounded down) at x371.48 y51.48 on a 620x300 px outline, 63.1122 px^2/MB, equal 7.3 px gaps to the outline's right and bottom edges | areas at true scale; wavezip square rounded up 0.007 px and ruler rounded down 0.0014 px — both error directions do not flatter |
| the other designs (caption only) | cva6 74x · ibex 398x · opentitan 25x | measured, final founder CSV; same test, named in the caption's second line |
On VeeR, if we ran a nightly run in wavezip for a whole year (365 × 5.41 MB), we’d only have about 2 GB. That’s less disk space than a SINGLE dump.
| item | file count | size per file | total on disk | marks drawn |
|---|---|---|---|---|
| wavezip, recorded every night for one year (veer eh1, coremark x20, founder CSV) | 365 | 5.41 mb (5,413,074 bytes, measured) | 1.98 gb (arithmetic: 365 x 5.413074 MB = 1,975.77 MB) | 365 identical black squares in twelve month-rows (jan 31 ... dec 31), month initials j-d at each row, left-aligned rows with month-length ragged right edge; a one-square key above prices one square at one night, 5.41 mb |
| single overnight fst dump, ONE such night the old way (measured at the same anchor) | 1 | 2.95 gb (2,947,131,944 bytes, measured) | 2.95 gb | one connected solid black block below the grid, across a 'vs.' from it, at the exact fractional footprint of 544.45 unit cells (2947131944/5413074) in the same cell unit and gaps-included footprint convention: 52 columns, 10 full rows plus a 24.45-cell stub row whose final cell is inked at 0.45 width; '= 544 squares' worth' printed at the block |
Most teams today delete waveforms as soon as they’ve used them. To understand why, just take a look at ARM’s public scale - up to 9 million EDA jobs a day. Recording just 1% at our measured 2.95 GB would fill up ~265 terabytes every single day. This is the reason no one records. In wavezip, that same 1% is ~487 GB. Now you can store everything without worry.
I know what you’re thinking. This is just too good to be true, there has to be something extremely tedious with the unzipping. Think again!! You can unzip in just seconds.
| design | workload | rerun_with_dumping_on_seconds | unzip_whole_recording_seconds | ratio_shown | basis |
|---|---|---|---|---|---|
| opentitan earl grey | coremark | 1247.76 | 115.39 | 10x (floor of 10.814) | measured, whole run, verilator |
| ibex simple system | coremark x300 | 897.69 | 97.93 | 9x (floor of 9.167) | measured, whole run, verilator |
| veer eh1 | coremark x20 | 493.45 | 38.09 | 13x (founder-sanctioned round-up of 12.956) | measured, whole run, verilator |
| cva6 | coremark x3 | 243.44 | 34.02 | 7x (floor of 7.155) | measured, whole run, verilator |
Just 34 seconds on CVA6, 38 on VeeR, 98 on Ibex, 115 on OpenTitan - versus 243, 493, 898, and 1,248 to rerun. And what unzips is the failing run itself - not a rerun hoping to reproduce it. When simulator seats run $50K-500K a year, relying on a rerun should be out of the picture.
What’s more? Recording overhead stays in the single digits everywhere we measured: +3.3% to +8.6% of run time across the four designs above.
Most importantly, it’s lossless. Every unzipped waveform is diffed against a ground-truth dump of the same simulation, signal by signal, clock edge by clock edge.
How does it work? WaveZip’s compression is implemented in pure SystemVerilog, making it compatible with any compliant simulator. And the resulting format is automatically generated, custom to each Verilog design - which is how it reaches savings no general-purpose compressor can.
Simulation is EDA’s largest and fastest-growing segment - $2 billion last quarter, up 15.5% - verifying chips headed for $975 billion in 2026. The tax is compounding. You don’t have to pay it.
If your team simulates silicon, we want wavezip on your machine!! Fully on prem. We’re onboarding design partners and will wire it into your flow with you ❤️ Book a demo or email us at [email protected] and we’ll unzip some gnarly waveforms together!