# US 11,907,631 B2 · Reset domain crossing detection and simulation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,631 B2
- Document ID: US11907631B2
- Status: Granted
- Kind: B2
- Application number: 17/480,574
- Filed: 2021-09-21
- Published: 2022-03-24
- Granted: 2024-02-20
- Earliest claimed: 2020-09-24
- Assignees: Synopsys, Inc.
- Applicants: Synopsys, Inc.
- Inventors: Fahim Rahim; Paras Mal Jain; Rajarshi Mukherjee; Deep Shah; Satrajit Pal; Dipit Ranjan Senapati; Abhishek Kumar
- Web page: https://patentgrep.com/patent/US11907631B2

## CPC

- G06F 30/3308: using simulation
- G06F 30/3312: Timing analysis
- G06F 30/31: Design entry, e.g. editors specifically adapted for circuit design
- G06F 30/3323: using formal methods, e.g. equivalence checking or property checking
- G06F 2119/12: Timing analysis or timing optimisation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Reset Domain Crossing (RDC) detection and simulation is provided via identifying a plurality of RDCs between flip-flops of a sequence of flip-flops leading to an observation point in a circuit design; classifying each RDC of the plurality of RDCs as one of observable at the observation point or not observable at the observation point based on a reset order applied to the sequence of flip-flops; and outputting a list of the plurality of RDCs classified as observable at the observation point.

## Claims

### Claim 1

A method, comprising:
identifying a plurality of reset domain crossings (RDCs) between sequential elements in a sequence of sequential elements connected to an observation point in a circuit design;
classifying, by a processing device, each RDC of the plurality of RDCs as one of observable at the observation point or not observable at the observation point based on at least one of a reset order and a clock order applied to the sequence of sequential elements, wherein the classifying includes performing a simulation involving tracing of a metastability effect from the RDC through the sequence of sequential elements to determine whether to classify the RDC as generating an observable metastability effect;
identifying, based on the simulation, a metastability countermeasure associated with the RDC, that if removed, would not result in an unobservable RDC becoming observable; and
outputting an identification of the plurality of RDCs classified as observable at the observation point and an indication to remove the metastability countermeasure based on the identification.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
recommending another metastability countermeasure to include in the circuit design in association with each RDC of the plurality of RDCs classified as observable at the observation point.

### Claim 3 (depends on 2)

The method of claim 2, wherein the metastability countermeasure includes at least one of:
a re-ordering of the reset order;
a reset domain shift for at least one sequential element associated with a given RDC to remove the given RDC; or
a gate providing additional timing control the at least one sequential element associated with the given RDC.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
generating a jitter database of the plurality of RDCs classified as observable;
simulating the circuit design;
injecting RDC jitter error signals on the plurality of RDCs classified as observable according to the jitter database; and
generating a coverage report, the coverage report comprising one or more of reset assertion data, destination data toggle data, or jitter error data associated with the RDC jitter error signals.

### Claim 5 (depends on 4)

The method of claim 4, wherein the coverage report identifies differences in output data on the plurality of RDCs classified as observable when the RDC jitter error signals are injected and when the RDC jitter error signals are not injected.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
rendering the coverage report in a Graphical User Interface (GUI) on a display device, wherein the GUI shows waveforms including the RDC jitter error signals that are received by and output by the sequential elements and other logic elements in each RDC of the plurality of RDCs classified as observable at the observation point.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
further pruning the plurality of RDCs to remove RDCs identified as at least one of static or ignored.

### Claim 8

A non-transitory computer readable storage medium including instructions that when executed by a processor enable the processor to:
identify, in a circuit design, a first sequential element that belongs to a first reset domain and that generates a first output;
identify, in the circuit design, a second sequential element that belongs to a second reset domain and that receives the first output as an input and generates a second output; and
in response to determining metastability effects from metastability in the second output are unobservable at an observation point downstream from the second sequential element in the circuit design, simulating the circuit design with jitter injected on the first reset domain and not on the second reset domain.

### Claim 9 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions when executed by a processor further enable the processor to:
generate a coverage report renderable for display via a display device, the coverage report comprising one or more of reset assertion data, destination data toggle data, or jitter error data associated with the jitter injected on the first reset domain.

### Claim 10 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions when executed by a processor further enable the processor to:
identify a metastability countermeasure associated with the second sequential element from the circuit design, that if removed, would not result in an unobservable metastability effect becoming observable; and
remove the metastability countermeasure associated with the second sequential element from the circuit design based on the identification, wherein the metastability countermeasures include a gate providing additional timing control of a reset signal affecting the second sequential element.

### Claim 11 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions, when executed, further enable the processor to:
in response to determining metastability effects from metastability in the second output are observable at the observation point downstream from the second sequential element in the circuit design, recommend a new metastability countermeasure to include in the circuit design in association with the second sequential element.

### Claim 12

A system comprising:
a memory storing instructions; and
a processor, coupled with the memory and to execute the instructions, the instructions when executed cause the processor to:
receive an integrated circuit (IC) design file;
identify a reset domain crossing (RDC) path of the IC design file;
inject, during a simulation of IC design file, a RDC jitter error signal into the RDC path; and
generate a coverage report comprising one or more of reset assertion data, destination data toggle data, or jitter error data associated with the RDC jitter error signal in the RDC path.

### Claim 13 (depends on 12)

The system of claim 12, wherein the reset assertion data comprises data associated with a source sequential logic element which has a respective reset asserted at least once during the simulation.

### Claim 14 (depends on 12)

The system of claim 12, wherein the destination data toggle data comprises data associated with a destination sequential logic element which has a respective data input toggle only due to a reset assertion associated with a source sequential logic element.

### Claim 15 (depends on 12)

The system of claim 12, wherein the jitter error data comprises data associated with signals on which RDC hitter error signals were injected.

### Claim 16 (depends on 12)

The system of claim 12, wherein the instructions when executed further cause the processor to:
identify, before the simulation of the IC design file, a second RDC path of the IC design file;
determine that the second RDC path is one or more of: static, ignored, or unobservable as being and synchronized by a qualifier signal present between a source sequential logic element and a destination sequential logic element; and
prune, before the simulation, the second RDC path from jitter injection analysis during the simulation.

### Claim 17 (depends on 16)

The system of claim 16, wherein determining that the second RDC path is one or more of: static, ignored, or unobservable further comprises:
identifying a plurality of RDCs, including the RDC path and the second RDC path, between flip-flops of a sequence of flip-flops leading to an observation point in the IC design file; and
classifying each RDC of the plurality of RDCs as one of observable at the observation point or not observable at the observation point based on at least one of a reset order and a clock order applied to the sequence of flip-flops.

### Claim 18 (depends on 16)

The system of claim 16, wherein the instructions when executed further cause the processor to:
identify a metastability countermeasure associated with the second RDC, that if removed, would not result in an unobservable RDC becoming observable; and
in response to identifying the metastability countermeasure associated with the second RDC path, remove the metastability countermeasure from the IC design file.

### Claim 19 (depends on 16)

The system of claim 16, wherein the instructions when executed further cause the processor to:
recommending a metastability countermeasure to include in the IC design in association with the RDC path.
