IP Library Granted Patent US 12,210,427
Granted Patent B1
US 12,210,427 · App. 18/139,148 · Granted Jan 28, 2025

Method for modifying or verifying a circuit by inserting a saboteur circuit

Inventors: Jason Hamlet (Albuquerque, NM); Tom Mannos (Albuquerque, NM)
Assignee: National Technology & Engineering Solutions of Sandia, LLC
G06F11/184G06F11/261G06F30/327
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 12,210,427
App. No.
18/139,148
Granted
Jan 28, 2025
Kind
B1
Abstract

A method for circuit modification for fault mitigation including: obtaining a netlist defining a circuit; inserting at least one saboteur circuit into a first net of the netlist; configuring an FPGA to implement the first net and the at least one saboteur circuit; activating a first of the at least one saboteur circuits; determining whether the first net experiences a fault; and upon determining that the first net experiences a fault, modifying the first net by inserting at least one redundant circuit into the first net.

Claims (75)

1. A method for circuit modification for fault mitigation, the method comprising:

obtaining a netlist defining a circuit;

inserting at least one saboteur circuit into a first net of the netlist;

configuring an FPGA to implement the first net and the at least one saboteur circuit;

activating a first of the at least one saboteur circuits;

determining whether the first net experiences a fault;

upon determining that the first net experiences a fault, modifying the first net by inserting at least one redundant circuit into the first net;

obtaining a modified netlist corresponding to the netlist and the at least one redundant circuit;

inserting a second saboteur circuit into a first net of the modified netlist;

configuring the FPGA to implement the first net of the modified netlist and the second saboteur circuit;

activating the second saboteur circuit;

testing the first net of the modified netlist;

determining whether the first net of the modified netlist passes the testing;

upon determining that the first net of the modified netlist passes the testing, retaining the at least one redundant circuit in the modified netlist; and

upon determining that the first net of the modified netlist does not pass the testing, removing the at least one redundant circuit from the modified netlist.

2. The method of claim 1 wherein modifying the first net by inserting at least one redundant circuit into the first net comprises:

identifying original logic in the first net;

inserting at least two redundant logic elements in parallel with the original logic; and

providing an output of the original logic and outputs of the at least two redundant logic elements to a majority voter.

3. The method of claim 2 wherein the at least two redundant logic elements includes at least one diverse implementation of the original logic.

4. The method of claim 2 wherein a total number of outputs from the original logic and the at least two redundant logic elements is an odd number.

5. The method of claim 1 wherein determining whether the first net experiences a fault comprises determining whether the first net experiences a severe fault.

6. The method of claim 1 further comprising:

determining that the first net includes an untested, second of the at least one saboteur circuits;

activating the second of the at least one saboteur circuits;

determining whether the first net experiences a second fault; and

upon determining that the first net experiences a second fault, modifying the first net by inserting at least one second redundant circuit into the first net.

7. The method of claim 1 further comprising:

determining that the netlist includes a second net without a saboteur circuit;

inserting a second saboteur circuit into the second net;

configuring the FPGA to implement the second net and the second saboteur circuit;

activating the second saboteur circuit;

determining whether the second net experiences a fault; and

upon determining that the second net experiences a fault, modifying the second net by inserting at least one second redundant circuit into the second net.

8. A system that is configured for circuit modification for fault mitigation, the system comprising:

a processor; and

a memory that stores instructions that, when executed by the processor, causes the processor to perform acts comprising:

obtaining a netlist defining a circuit;

inserting a saboteur circuit into a first net of the netlist;

configuring an FPGA to implement the first net and the saboteur circuit;

activating the saboteur circuit;

determining whether the first net experiences a fault;

upon determining that the first net experiences a fault, modifying the first net by inserting at least one redundant circuit into the first net;

obtaining a modified netlist corresponding to the netlist and the at least one redundant circuit;

inserting a second saboteur circuit into a first net of the modified netlist;

configuring the FPGA to implement the first net of the modified netlist and the second saboteur circuit;

activating the second saboteur circuit;

testing the first net of the modified netlist;

determining whether the first net of the modified netlist passes the testing;

upon determining that the first net of the modified netlist passes the testing, retaining the at least one redundant circuit in the modified netlist; and

upon determining that the first net of the modified netlist does not pass the testing, removing the at least one redundant circuit from the modified netlist.

9. A computer program comprising a computer-readable non-transitory storage medium, the computer program including instructions for causing a processor to implement a process of circuit modification for fault mitigation, the process comprising:

obtaining a netlist defining a circuit;

inserting a saboteur circuit into a first net of the netlist;

configuring an FPGA to implement the first net and the saboteur circuit;

activating the saboteur circuit;

determining whether the first net experiences a fault;

upon determining that the first net experiences a fault, modifying the first net by inserting at least one redundant circuit into the first net;

obtaining a modified netlist corresponding to the netlist and the at least one redundant circuit;

inserting a second saboteur circuit into a first net of the modified netlist;

configuring the FPGA to implement the first net of the modified netlist and the second saboteur circuit;

activating the second saboteur circuit;

testing the first net of the modified netlist;

determining whether the first net of the modified netlist passes the testing;

upon determining that the first net of the modified netlist passes the testing, retaining the at least one redundant circuit in the modified netlist; and

upon determining that the first net of the modified netlist does not pass the testing, removing the at least one redundant circuit from the modified netlist.

10. A method for circuit validation, the method comprising:

obtaining a modified netlist corresponding to a netlist and at least one modification;

inserting a saboteur circuit into a first net of the modified netlist;

configuring an FPGA to implement the first net of the modified netlist and the saboteur circuit;

activating the saboteur circuit;

testing the first net of the modified netlist;

determining whether the first net of the modified netlist passes the testing;

upon determining that the first net of the modified netlist passes the testing, retaining the at least one modification in the modified netlist; and

upon determining that the first net of the modified netlist does not pass the testing, removing the at least one modification from the modified netlist.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 29, 2024
From: HAMLET, JASON; MANNOS, TOM
To: NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA, LLC
Reel/Frame 066604/0554 →
CONFIRMATORY LICENSE Recorded Nov 30, 2023
From: NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA, LLC
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 065720/0665 →
References Cited (16)
US 6615380B1 · Kapur · 2003 [cited by examiner]
US 8640063B1 · El-Maleh · 2014 [cited by examiner]
US 11416662B1 · Armato · 2022 [cited by examiner]
US 20020116683A1 · Mitra · 2002 [cited by examiner]
US 20090300559A1 · Baumgartner · 2009 [cited by examiner]
US 20120239993A1 · Chung · 2012 [cited by examiner]
US 20130287270A1 · Harper · 2013 [cited by examiner]
US 20170074932A1 · Kourfali · 2017 [cited by examiner]
US 20200050734A1 · Schat · 2020 [cited by examiner]
US 20220043059A1 · Cruz · 2022 [cited by examiner]
US 20220414306A1 · Strasser · 2022 [cited by examiner]
Evaluating the Effectiveness of a Diversity TMR Scheme under Neutrons by Tambara published Sep. 2013, 14th European Conference on Radiation and Its Effects on Components and Systems (RADECS) https://ieeexplore.ieee.org/… [cited by examiner]
Ebrahimi, M. et al., “A Fast, Flexible, and Easy-to-Develop FPGA-Based Fault Injection Technique,” Microelectronics Reliability (2014) 54:1000-1008. [cited by applicant]
Hamlet, J. R. et al., “Diversity for Microelectronics Lifecycle Security,” Sandia Report, SAND2018-11010, Sandia National Laboratories, Sep. 2018, 118 pages. [cited by applicant]
Mannos, T. J. et al., “Fault Testing a Synthesizable Embedded Processor at Gate Level Using FPGA Emulation,” Sandia National Laboratories, SAND2019-0073C, Feb. 20, 2019, 6 pages. [cited by applicant]
Zuzarte, M., “A Tool For Run Time Soft Error Fault Injection Into FPGA Circuits,” Department of Computing and Software, McMaster University, Thesis, Oct. 2014, 104 pages. [cited by applicant]