Structural analysis cannot tell a deliberate reset crossing from a bug unless somebody writes down which is which. Reset intent is that written record: every reset, the domain it defines, and how the domains release relative to each other.
One row per reset. If any column is unknown, the intent is incomplete and analysis waits.
Field | Why the analysis needs it |
|---|---|
Name and source | Identifies the reset net: where it is generated and what it fans out to. |
Polarity | Active-high or active-low; wrong polarity in intent inverts every verdict. |
Assertion style | Asynchronous or synchronous assertion; decides which assertion checks apply. |
Release style and synchronising clock | Synchronous release needs the clock it is synchronised to; asynchronous release needs a reset synchroniser. |
What it resets | The set of registers forming its reset domain. |
Release order rank | Which resets must release before or after this one. |
Dependent domains | Which other reset domains this reset fans into, if any. |
A reset domain is the set of registers that share one reset and one release behaviour. Two registers on the same reset net but released through different synchronisers belong to different reset domains, because they can come out of reset on different cycles.
Relationship | Meaning | What ordering needs |
|---|---|---|
Independent | Neither reset affects the other domain. | No ordering needed, but crossings between them still need synchronised release. |
Sequenced | Domain B must release after domain A has settled. | A stated rank and a check that B stays in reset until A is out. |
Nested | One reset holds several sub-domains that release together or in order. | The parent release and each sub-domain release, in order. |
Shared tree | One source fans out to several domains through different synchronisers. | Skew between the branches must be safe for any logic the branches share. |
A small example: a core domain and a peripheral domain where the peripheral must not leave reset until the core clock and reset are stable. The intent records the core reset at rank 1 and the peripheral reset at rank 2 with the core as its dependency. The analysis then checks that the peripheral release is held until the core release has completed, instead of guessing.
The checks map every flip-flop to exactly one reset domain and flag each crossing where reset or reset-released data moves between domains. The review checks the intent itself: every reset port on the boundary has a row, every rank has a reason, and no register is left unmapped. An unmapped register is a defect in the intent, not a pass.
Two. A reset domain is defined by shared release behaviour, and these blocks come out of reset on different cycles, so crossings between them must be checked.
As a defect in the intent. The analysis cannot verdict an undocumented reset, so the intent must be completed and the analysis re-run.