Listing which FSDB signals are stored vs computed (secondary) with fsdbdebug, without a reader API call
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.