Investigate in an order that can clear suspects cheaply. Each step below either ends the hunt or narrows it; never reorder them so that an expensive theory comes before a cheap audit.
Step | Action | What it clears or finds |
|---|---|---|
1. List the crossings | Every signal entering the FSM's clock from another clock, from the netlist, not the block diagram. | Clears the idea that the boundary is where you think it is. |
2. Read the structural report | Each crossing's classification and synchroniser status. | Finds unsynchronised crossings and illegal synchronisers in minutes. |
3. Check synchroniser legality | No logic between flops, source registered, one destination clock, per Structure and Rules. | Finds the synchroniser that is present but broken. |
4. Trace the fanout | What the synchroniser output, or the raw crossing, drives: one gate or several. | Finds the divergence point where two gates sampled different values. |
5. Targeted testing | Metastability-aware simulation of the suspect path plus constrained-random traffic around it. | Confirms the protocol survives either resolution; it cannot reproduce the field failure on demand. |
In this scenario step 2 finds it: the interrupt enters the FSM clock with no synchroniser, and step 4 shows the raw crossing fanning out to the next-state logic and to a status register. The mechanism reference is Metastability Mechanism. Notice what never appears: weeks of bench reproduction effort, which the symptom already told you would fail.
A legal synchroniser whose output still fans out unsafely, or a different failure mode at the same boundary: lost or duplicated events, or a second crossing the audit missed. The report checks structure, not protocol or completeness of the crossing list.