Debug your RTL without the headache.

Riptide is a waveform debugger for the 21st century. Designed from the ground up to give you the tools you need to find bugs quickly while minimizing visual noise. GPU accelerated rendering, advanced querying, derived signal expressions, and direct simulator control.

DESIGNED TO FIT YOUR FLOW
File formatsVCD, FST, GHW *
SimulatorsVerilator, Icarus, GHDL, Questa, Vivado *
Frameworkscocotb, UVM, SVUnit *
PipelinesMake, CMake, CI artifacts *
* coming soon
The Riptide waveform viewer showing the keysched module — signal tree, active signals, and aligned waveforms
// CLARITY

Silence the noise.

Large traces are full of noise — invalid or disabled signals, duplicates. Riptide was designed to maximize clarity and contrast. The viewer clearly distinguishes adjacent signals, renders unknown and high impedance values as bold cross hatches, and mutes disabled values so you can focus on what matters.

  • Clock native gridThe timeline and grid are clock synchronized by default.
  • Typed bus & enum renderingBold, anti-aliased text rendering for primitives and enums.
  • X / Z hatchingUnknown and high-impedance values stand out on sight.
  • Mute disabled signalsSignals with nothing to say fade into the background.
Riptide waveform canvas — clock, buses, enum states and hatched X/Z bands aligned to one time grid
// QUERY THE TRACE

Ask your waveform a question.

A trace shouldn't just sit there. Compose derived signals, keep a live watch on what matters, and let Riptide surface the glitches, failed asserts, and look-alike events you'd otherwise scroll right past.

// CONTROL

One interface for every simulator.

In addition to recorded waveforms, Riptide can connect directly to your simulator to drive live simulation. It leans on Edalize to speak TCL to whatever backend you run, so you work from one clean, unified surface instead of wrestling a different clunky UI for every tool. Same commands, any simulator under the hood.

  • Uniform control surfacerun · step · restart · poke — identical across backends.
  • Powered by EdalizeBattle-tested TCL abstraction across the EDA tool zoo.
  • No vendor lock-inSwap the simulator under your testbench, keep your flow.
SIMULATORVerilator 5.0 ▾
Verilatorconnected
Icarusready
GHDLsoon
Questasoon
Vivadosoon
> run -for 100nsone TCL surface, every backend
NAMEVALUE
handshake_if group · coupled
clk1
in_valid1
in_data[7:0]0xA3
state[1:0]BUSY
fifo_level[3:0]2
dbus[7:0]↔ in_data0xF0
busy1
// ORGANIZATION

Organize signals logically.

Group a handshake, bus, or valid/data pair together and visualize, move, or collapse them together. Riptide can also auto-detect and assign colors to groups from the signal hierarchy, reducing manual effort.

  • Logical groupsGroup related signals, color them, and collapse them together.
  • Automatic group detectionRiptide can use the signal hierarchy and naming patterns to auto-detect groups, saving you time.

Find the bug on the first run.

Stop scrubbing endless traces by hand. Set a breakpoint, hit run, and let Riptide take you straight to the edge that broke.