Finding counts are meaningless without the setup behind them. A clean report on a wrong setup proves nothing, and a noisy report on missing intent hides its few real findings in busywork. Both failure modes are common, and both are cheap to detect once you know the signatures.
Zero findings across asynchronous clocks should alarm, not reassure. The usual causes are setup holes: a clock never defined so its crossings were never analysed, a wrong grouping that excuses genuinely asynchronous paths, a black-boxed block whose boundary crossings were skipped, or intent that waives whole classes without evidence. The test is the inventory cross-check: the domain inventory lists every clock pair with crossings, and each pair should produce either findings or a documented reason for none. A clock pair with neither is unanalysed, not clean.
Hundreds of findings on signals that never change during operation usually mean missing intent, not a broken design: quasi-static configuration and status flagged as unsynchronised, or a reset asserted only at power-on treated as a live crossing. Noise is dangerous because engineers stop reading, and the one real finding sits on page nine. The cure is intent plus grouping, not fixing every listing: qualify the quasi-static signals with evidence, re-run, and read what remains.
Signal | False clean looks like | Noise looks like | The check |
|---|---|---|---|
Finding count | Zero across async clocks. | Hundreds in one class. | Compare against the inventory, not against zero. |
Clock pairs | A known async pair with no entries at all. | Every pair flagged including static ones. | Each pair needs findings or a documented reason. |
After a setup fix | Counts stay zero: still suspicious. | Counts collapse: it was intent, not design. | Re-run and re-group; read the residue. |
Whether that clock pair appears in the analysis scope at all: defined clocks, correct grouping, no black-box boundary swallowing the interface. Silence without scope is not cleanliness.
Almost certainly an intent gap: quasi-static signals flagged as live crossings. Qualify them with stability evidence and re-run before touching any RTL.