IP Library Granted Patent US 12695455
Granted Patent B2
US 12695455 · App. 18/665,265 · Granted Jul 28, 2026

Complementary 2(N)-bit redundancy for single event upset prevention

Inventor: Syed Shakir Iqbal (Bangalore, IN)
Assignee: Google LLC
H03K19/23H03K19/003
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12695455
App. No.
18/665,265
Filed
May 15, 2024
Granted
Jul 28, 2026
Kind
B2
Art Unit
2845
USPC
326/11
Abstract

The present disclosure describes various aspects of complementary 2(N)-bit redundancy for single event upset (SEU) prevention. In some aspects, an integrated circuit includes a data storage element to store a data value, another data storage element to store a complementary data value, a multi-bit data storage element (e.g., a 2-bit storage element) to store both the data value and the complementary data value, and voting logic that may enable a complementary data storage scheme with inter-circuit redundancy to prevent SEU. Additionally, the voting logic of the integrated circuit may enable detection and correction of data value errors and/or enable programming of voting logic criteria, which may be implemented dynamically based on a type of SEU failures that are detected or corrected.

Claims (87)

1 . An integrated circuit comprising:

an input node to receive a data value;

a first data storage element having an input operably coupled to the input node, the first data storage element configured to store a complementary data value of the data value received at the input;

a multi-bit data storage element having a first input operably coupled to the input node and a second input operably coupled to the input node, the multi-bit data storage element configured to store the data value and the complementary data value as separate values; and

voter logic comprising:

an output coupled to an output node of the integrated circuit;

a first input of the voter logic operably coupled to an output of the first data storage element to receive a first logic value based on the complementary data value stored by the first data storage element;

a second input of the voter logic coupled to a first output of the multi-bit data storage element to receive a second logic value based on the data value stored by the multi-bit data storage element; and

a third input of the voter logic coupled to a second output of the multi-bit data storage element to receive a third logic value based on the complementary data value stored by the multi-bit data storage element,

the voter logic configured to provide an output data value to the output node of the integrated circuit based on a set of respective logic values of at least two of the first logic value, second logic value, and third logic value.

2 . The integrated circuit as recited in claim 1 , further comprising:

a second data storage element having an input operably coupled to the input node, the first data storage element configured to store the data value, and wherein:

the voter logic further comprises a fourth input operably coupled to an output of the second data storage element to receive a fourth logic value based on the data value stored by the second data storage element; and

the voter logic is configured to provide an output data value to the output node of the integrated circuit based on a set of respective logic values of at least three of the first logic value, second logic value, third logic value, and fourth logic value.

3 . The integrated circuit as recited in claim 2 , wherein:

the voter logic is configured to provide the output data value using a majority voter function based on:

the first logic value based on the complementary data value stored by the first data storage element;

the second logic value based on the data value stored by the multi-bit data storage element; and

the fourth logic value based on the data value stored by the second data storage element; or

the voter logic is configured to provide the output data value using a majority voter function based on:

the first logic value based on the complementary data value stored by the first data storage element;

the third logic value based on the complementary data value stored by the multi-bit data storage element; and

the fourth logic value based on the data value stored by the second data storage element.

4 . The integrated circuit as recited in claim 2 , wherein:

the voter logic is configured to provide the output data value using a majority voter function based on:

the first logic value based on a non-inverted version of the complementary data value stored by the first data storage element;

the second logic value based on the data value stored by the multi-bit data storage element; and

the fourth logic value based on the data value stored by the second data storage element.

5 . The integrated circuit as recited in claim 2 , wherein:

the set of respective logic values based on which the voter logic provides the output data value are a first set of respective logic values; and

the voter logic is further configured to:

detect a single event upset (SEU) based on the at least three of the first logic value, the second logic value, the third logic value, and the fourth logic value; and

alter, in response to detection of the SEU, configurable logic of the voter logic to use a second set of respective logic values of at least three of the first logic value, second logic value, third logic value, and the fourth logic value to provide the output data value, the first set of respective logic values being different from the second set of respective logic values.

6 . The integrated circuit as recited in claim 5 , wherein:

the voter logic further comprises respective exclusive-OR circuits of complementary pairs of the first logic value, second logic value, third logic value, and the fourth logic value configured to detect the SEU.

7 . The integrated circuit as recited in claim 6 , wherein:

the voter logic is further configured to alter, in response to detection of the SEU, the configurable logic of the voter logic to implement a triple module redundancy (TMR) mode in which the voter logic implements a voter function based on:

the fourth logic value based on the data value stored by the second data storage element;

the first logic value based on a non-inverted version of the complementary data value stored by the first data storage element; and

the second logic value based on the data value stored by the multi-bit data storage element.

8 . The integrated circuit as recited in claim 2 , wherein the first data storage element, the second data storage element, or the multi-bit data storage element are implemented as one or more of:

a latch, a bi-stable latch, a set-reset latch (SR latch), a master-slave latch, a D latch, a flip-flop, a D flip-flop, a T-flip-flop, a JK flip-flop, a master-slave flip-flop, a one-bit register, a multi-bit register, a logic storage unit, a charge storage unit, or a clocked data storage circuit.

9 . The integrated circuit as recited in claim 1 , further comprising:

a first inverter operably coupled between the input node and the input of the first data storage element; or

a second inverter operably coupled between the input node and the second input of the multi-bit data storage element.

10 . The integrated circuit as recited in claim 1 , further comprising:

a first inverter operably coupled between the output of the first data storage element and the first input of the voter logic; or

a second inverter operably coupled between the second output of the multi-bit data storage element and the third input of the voter logic.

11 . The integrated circuit as recited in claim 1 , wherein the multi-bit data storage element further comprises:

a first latch circuit configured to store the data value;

a second latch circuit configured to store the complementary data value; and

shared clock logic that is operably coupled to the first latch circuit and the second latch circuit.

12 . The integrated circuit as recited in claim 11 , wherein:

the first latch circuit comprises at least one of first flip-flop or first 1-bit storage element of the multi-bit data storage element; and

the second latch circuit comprises at least one of second flip-flop or a second 1-bit storage element of the multi-bit data storage element.

13 . A method comprising:

receiving a data value at an input of a complementary multi-bit redundant circuit;

storing a complementary data value of the data value to a first one-bit data storage element of the complementary multi-bit redundant circuit;

storing the data value to a first storage element of a multi-bit data storage element of the complementary multi-bit redundant circuit;

storing the complementary data value of the data value to a second storage element of the multi-bit data storage element of the complementary multi-bit redundant circuit; and

generating, using voter logic of the complementary multi-bit redundant circuit, an output data value based on at least two of the complementary data value stored by the first one-bit data storage element, the data value stored to the first storage element of the multi-bit data storage element, and the complementary data value stored to the second storage element of the multi-bit data storage element.

14 . The method of claim 13 , the method comprising:

storing the data value to a second one-bit data storage element of the complementary multi-bit redundant circuit;

monitoring a complementary data value pair that includes one of the data values stored by the second one-bit data storage element or the first storage element of the multi-bit data storage element and one of the complementary data values stored by the first one-bit data storage element and the second storage element of the multi-bit data storage element;

detecting, based on the complementary data value pair, a failure of one of the first one-bit data storage element, the second one-bit data storage element, the first storage element of the multi-bit data storage element, or the second storage element of the multi-bit data storage element; and

altering the voter logic to exclude a failed one-bit data storage element or a failed storage element of the multi-bit data storage element.

15 . The method of claim 14 , wherein the respective data value or complementary data value of one of the first one-bit data storage element, the second one-bit data storage element, the first storage element of the multi-bit data storage element, or the second storage element of the multi-bit data storage element is not used by the voter logic to provide the output data value, and the method further comprises:

altering the voter logic to include the respective data value or complementary data value of the first one-bit data storage element, the second one-bit data storage element, the first storage element of the multi-bit data storage element, or the second storage element of the multi-bit data storage element that was not previously used by the voter logic to provide the output data value.

16 . The method as recited by claim 14 , further comprising:

providing the data value stored by the second one-bit data storage element to a first input of the voter logic;

providing the complementary data value stored by the first one-bit data storage element to a second input of the voter logic;

providing the data value stored to the first storage element of the multi-bit data storage element to a third input of the voter logic; and

providing the complementary data value stored to the second storage element of the multi-bit data storage element to a fourth input of the voter logic.

17 . The method of claim 16 , further comprising:

providing, via a first inverter, the complementary data value stored in the first one-bit data storage element to the second input of the voter logic; or

providing, via a second inverter, the complementary value stored in the second storage element of the multi-bit data storage element to the fourth input of the voter logic.

18 . The method as recited by claim 14 , further comprising:

causing, via clocking logic that is coupled to a first latch circuit of the multi-bit data storage element, the first latch circuit of the multi-bit data storage element to store the data value to the first storage element of the multi-bit data storage element; and

causing, via clocking logic that is coupled to a second latch circuit of the multi-bit data storage element, the second latch circuit of the multi-bit data storage element to store the complementary data value to the second storage element of the multi-bit data storage element.

19 . The method as recited by claim 13 , wherein:

the generating the complementary data value comprises:

generating, via a first inverter of data inversion circuitry, a first instance of the complementary data value;

generating, via a second inverter of the data inversion circuitry, a second instance of the complementary data value, and

the storing of the complementary data value comprises:

storing, from the first inverter, the first instance of the complementary value to the first one-bit data storage element; and

storing, from the second inverter, the second instance of the complementary value to the second storage element of the multi-bit data storage element.

20 . The method as recited by claim 19 , wherein at least one of the data inversion circuitry, first inverter, or the second inverter comprises an inverting logic gate that is implemented external to the first one-bit data storage element and the multi-bit data storage element.