Before modelling 'computed signal' savings in waveform capture, split extras into aliases vs real combinational logic by event count
When estimating how much you save by recording only primary signals and recomputing derived ones offline, the derived set is not homogeneous.
In one SoC testbench, the extra (non-primary) subscriptions split into: - ~950 aliases (ports, assign-through nets, renames of a primary) generating ~9.3M value-change callbacks; - ~1,660 real combinational declarations generating ~5.4M callbacks. So aliases were ~63% of the extra event traffic, even though they're fewer signals.
Why it matters: - An alias costs nothing to reconstruct offline: map the alias name to the primary's stored history. No evaluation, no time alignment beyond the primary's own. Combinational nets need actual expression evaluation over their input histories. - So a measured 'X% CPU saved by not capturing extras' mostly reflects alias duplication. Don't quote it as the saving from skipping computation. Split the offline expansion budget per class. - Weight by events (callbacks/changes), not by signal count. A few hot aliases on buses or clocks dominate. - Source-level classification (alias vs comb) isn't the same as the simulator's internal notion of which nets are computed. Validate reconstructed values against the simulator before claiming losslessness.