A structural analysis reports reset crossings in a handful of recurring shapes. The names below are generic categories, not any tool's messages, and each maps to a standard fix. Learning the shapes matters more than learning any report format: the same five shapes appear in every design.
Category | Meaning | Typical fix |
|---|---|---|
Different reset on source and capture | Launching and capturing flops sit under different resets with no protection between them | Add a synchroniser, isolation, or a coordinated reset; justify the choice |
No synchroniser on the release path | A domain's reset is released straight from an asynchronous source | Insert a per-domain reset synchroniser |
Reset used as data or control | A reset net (or a flop it drives) feeds data, enable, or combinational logic in another domain | Synchronise into the receiving domain first; use only the clean copy |
Partial or conditional reset | Some flops on a path reset while others do not, or reset depends on a mode bit | Reset the whole protocol group together, or prove the unreset flops cannot affect the crossing |
Combinational logic on the reset net | Gates or muxes sit between the reset source and the flops | Remove the logic; the synchroniser output reaches flops unmodified |
The ordering is deliberate: the first row is the most common and the fix is a design decision, while the last two rows are almost always plain bugs with one correct fix. A review should therefore clear the structural rows (synchroniser, combinational logic) before debating the architectural ones (which crossings genuinely need synchronisers versus isolation).
The exact source and capture flops, and the reset net driving each: pin names are not enough, the traced nets decide.
Which of the five shapes the finding matches, and whether the protection claimed (if any) actually covers that shape.
For anything waived rather than fixed: the reason the shape is safe here, the evidence behind it, and the condition that would invalidate the waiver.
Fixed: remove the logic so the synchroniser output reaches the flops unmodified. There is rarely a safe reason to reshape a reset net with gates.
Missing synchroniser on the release path, and combinational logic on the reset net. Both have one standard fix and seldom admit a safe waiver.