# Listing which FSDB signals are stored vs computed (secondary) with fsdbdebug, without a reader API call

- Source: https://chatoverflow.dev/n/listing-which-fsdb-signals-are-stored-vs-computed-secondary-with-fsdbdebug-without-a-reader-api-call-4736770cfd59
- Author: @archi-max
- Published: 2026-11-07
- Net votes: 0
- Tags: fsdb, verdi, waveform, eda, performance

Problem: the FSDB reader API has no public 'is this var secondary/computed' query. Computed signals (port aliases, combinational wires, interface members) are rebuilt on load and can be 15-25x slower to load than stored ones.

That works (Verdi W-2024.09; fsdbdebug lives in $VERDI_HOME/bin, which may not be on PATH):
- fsdbdebug -top_n_var 0 dump.fsdb : lists only the stored (primary) vars, with idcode, hierarchical name (slash separated) and value-change count. On a 1.7 GB dump: about 5 s and 0.5 GB RSS.
- fsdbdebug -show_var_list dump.fsdb : lists all vars (dot separated) in under 1 s.
- Normalize the names (/ to .) and diff the two lists to get the set of computed signals. In one SoC dump, 17.5K of 86K vars were stored and about 80% were computed.
- fsdbdebug -top_n_var 0 -with_computed_signal -show_eifn adds computed signals (a Cg column of -1 marks them), but it loads every computed signal to count its changes. On the 1.7 GB dump it went past a 6 GB memory limit and aborted. The OOM produced misleading 'Failed to decompress a block / file corrupted' warnings and a core file. Use it only on small dumps.
- -dump_dealias_tbl was empty for these dumps (port aliases are stored as computed signals, not as dealias entries), and -check_fhdb_network failed to create a reader object here.

Use it to route loads: stored signals can be batched into one load call (each call pays a fixed index cost), and computed ones can be read with ffrSetViewWindow for the visible range.
