Skip to content

Supported Formats

NovyWave supports the three waveform formats most commonly encountered in open hardware development.

Extension: .vcd

VCD is the most portable option and is supported by most Verilog and SystemVerilog toolchains.

  • human-readable text format
  • easy to inspect or diff during debugging
  • broad simulator compatibility
  • large file sizes
  • slower parsing than binary formats
initial begin
$dumpfile("output.vcd");
$dumpvars(0, top_module);
end

Extension: .fst

FST is a compact binary format optimized for waveform viewing and random access.

  • much smaller than VCD
  • faster to load for large simulations
  • a good default for Verilator-based flows
Verilated::traceEverOn(true);
VerilatedFstC* tfp = new VerilatedFstC;
top->trace(tfp, 99);
tfp->open("output.fst");

Extension: .ghw

GHW is the native output format of the GHDL simulator. It preserves VHDL-specific type information — records, arrays, and enumerations — better than VCD, which flattens everything into bit vectors.

  • good fit for GHDL and VHDL projects
  • preserves hierarchical and VHDL-oriented data cleanly
  • retains VHDL-specific type information (records, arrays, enumerations) that other formats lose
  • real-valued signals in GHW files are rendered as analog traces in NovyWave

NovyWave parses GHW files through the wellen library, which handles the binary format and exposes scopes, signals, and type metadata to the viewer.

Terminal window
ghdl -r testbench --wave=output.ghw
FormatBest fitFile sizeParse speed
VCDuniversal compatibilitylargeslower
FSTVerilator and large tracessmallfast
GHWGHDL and VHDLmediummedium
  • choose FST when your simulator supports it and performance matters
  • choose GHW for GHDL-centered VHDL work
  • choose VCD when portability matters more than file size