IP Library Granted Patent US 9,047,429
Granted Patent B2
US 9,047,429 · App. 13/850,898 · Granted Jun 2, 2015

In-place resynthesis and remapping techniques for soft error mitigation in FPGA

Inventors: Lei He (Irvine, CA); Ju-Yueh Lee (Taipei, TW); Zhe Feng (Liaoning, CN); Naifeng Jing (Shanghai, CN)
Assignee: THE REGENTS OF THE UNIVERSITY OF CALIFORNIA
G06F17/505G06F17/5054G06F2217/70H03K19/0033H03K19/00369
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 9,047,429
App. No.
13/850,898
Granted
Jun 2, 2015
Kind
B2
Abstract

In-place resynthesis for static memory (SRAM) based Field Programmable Gate Arrays (FPGAs) toward reducing sensitivity to single event upsets (SEUs). Resynthesis and remapping are described which have a low overheard and improve FPGA designs without the need of rerouting LUTs of the FPGA. These methods include in-place reconfiguration (IPR), in-place X-filling (IPF), and in-place inversion (IPV), which reconfigure LUT functions only, and can be applied to any FPGA architecture. In addition, for FPGAs with a decomposable LUT architecture (e.g., dual-output LUTs) an in-place decomposition (IPD) method is described for remapping a LUT function into multiple smaller functions leveraging the unused outputs of the LUT, and making use of built-in hard macros in programmable-logic blocks (PLBs) such as carry chain or adder. Methods are applied in-place to mapped circuits before or after routing without affecting placement, routing, and design closure.

Claims (101)

1. An apparatus for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit for implementation on the FPGA circuit and routing of circuits through a synthesis process which arrives at a physical design;

performing a circuit analysis on said logic circuit;

performing in-place iterations of reconfiguring, don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream; and

wherein said programming executable on said computer is configured to perform said in-place iterations by performing single event upset (SEU) fault analysis to obtain weight values for routing configuration memory (CRAM) bits, followed by performing in-place logic inversion which inverts functions of driving logic in response to reassigning look-up table (LUT) polarities, followed by adjusting all of the truth tables of its fanout LUTs and driven LUTs to preserve functionality, whereby total weight of configuration memory (CRAM) bits on routing multiplexers is minimized.

2. The apparatus as recited in claim 1 , wherein said programming executable on said computer is configured to perform said in-place iterations as multiple iterations of an in-place resynthesis (IPR) process in which a group of look-up-tables (LUTs) are selected as a sub-network and identical configuration bits corresponding to complementary inputs of said group of LUTs are maximized, whereby faults seen at a pair of complementary inputs have a lower probability of propagation toward increasing overall reliability of the circuit.

3. The apparatus as recited in claim 1 :

wherein said programming executable on said computer is configured to perform said in-place iterations as iterations of an in-place X-filling (IPF) process to a convergence in which states are determined for satisfiability don't cares (SDCs); and

wherein said programming executable on said computer is configured to perform said in-place X-filling (IPF) process in response to performing single event upset (SEU) fault analysis, followed by assigning satisfiability don't care (SDC) bits in response to criticality of LUT configuration bits by assigning said SDC bits to a logic value which maximizes correct logic output probability from a LUT toward minimizing fault impact from SEUs.

4. The apparatus as recited in claim 1 , wherein said FPGA utilizes unidirectional routing architecture having programmable interconnect points (PIPs).

5. The apparatus as recited in claim 4 , wherein an FPGA utilizing unidirectional routing is subject to bridging or driver errors in response to a single-event upset (SEU) occurring on a routing bit of a configuration memory (CRAM).

6. An apparatus for increasing fault tolerance of a synthesized FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit for implementation on the FPGA circuit and mapping to a plurality of look-up tables (LUTs);

performing placement and routing;

performing single event upset (SEU) fault analysis to obtain weight values for each routing configuration memory (CRAM) bits; and

performing in-place logic inversion which inverts functions of driving logic in response to reassigning look-up table (LUT) polarities, followed by adjusting all of the truth tables of its fanout LUTs and driven LUTs to preserve functionality, whereby total weight of all configuration memory (CRAM) bits on routing multiplexers is minimized.

7. The apparatus as recited in claim 6 , wherein said programming executable on said computer is configured to perform driven logic adjustments to modify the logic functions of fan-out LUTs to preserve functionality affected by polarity inversion.

8. The apparatus as recited in claim 6 , wherein said programming executable on said computer is configured to perform said single event upset (SEU) analysis in response to a logic block SEU analysis, connection box SEU analysis, logic routing SEU analysis, and a switch box SEU analysis.

9. The apparatus as recited in claim 6 , wherein said FPGA utilizes unidirectional routing architecture having programmable interconnect points (PIPs).

10. The apparatus as recited in claim 9 :

wherein an FPGA utilizing unidirectional routing is subject to bridging or driver errors in response to a single-event upset (SEU) occurring on a routing bit of a configuration memory (CRAM); and

wherein said bridging or driver errors arise in response to changing the driver of a net or bridging two nets with different drivers together, resulting in signal discrepancy on nets involved in driver switching or bridging due to the SEU.

11. An apparatus for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit for implementation on the FPGA circuit and routing of circuits through a synthesis process which arrives at a physical design;

performing a circuit analysis on said logic circuit;

performing in-place iterations of don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream; and

wherein said programming executable on said computer is configured to perform said in-place iterations by performing single event upset (SEU) fault analysis to obtain weight values for routing configuration memory (CRAM) bits, followed by performing in-place logic inversion which inverts functions of driving logic in response to reassigning look-up table (LUT) polarities, followed by adjusting all of the truth tables of its fanout LUTs and driven LUTs to preserve functionality, whereby total weight of configuration memory (CRAM) bits on routing multiplexers is minimized.

12. A method for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit within an FPGA circuit design application executing on a computer which routes FPGA circuits through a synthesis process and arrives at a physical design for said logic circuit;

performing a circuit analysis on said logic circuit;

performing in-place iterations of don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream; and

performing driven logic adjustments to modify the logic functions of fan-out LUTs to preserve functionality affected by polarity inversion.

13. The method as recited in claim 12 , further configured for said FPGA utilizing a unidirectional routing architecture having programmable interconnect points (PIPs).

14. The method as recited in claim 13 , wherein an FPGA utilizing unidirectional routing is subject to bridging or driver errors in response to a single-event upset (SEU) occurring on a routing bit of a configuration memory (CRAM).

15. An apparatus for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit for implementation on the FPGA circuit and routing of circuits through a synthesis process which arrives at a physical design;

performing a circuit analysis on said logic circuit;

performing in-place iterations of reconfiguring, don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream; and

wherein said programming executable on said computer is configured to perform driven logic adjustments to modify the logic functions of fan-out LUTs to preserve functionality affected by polarity inversion.

16. The apparatus as recited in claim 15 , wherein said FPGA utilizes unidirectional routing architecture having programmable interconnect points (PIPs).

17. The apparatus as recited in claim 16 , wherein an FPGA utilizing unidirectional routing is subject to bridging or driver errors in response to a single-event upset (SEU) occurring on a routing bit of a configuration memory (CRAM).

18. An apparatus for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit for implementation on the FPGA circuit and routing of circuits through a synthesis process which arrives at a physical design;

performing a circuit analysis on said logic circuit;

performing in-place iterations of reconfiguring, don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream; and

wherein said programming executable on said computer is configured to perform said single event upset (SEU) analysis in response to a logic block SEU analysis, connection box SEU analysis, logic routing SEU analysis, and a switch box SEU analysis.

19. The apparatus as recited in claim 18 , wherein said FPGA utilizes unidirectional routing architecture having programmable interconnect points (PIPs).

20. The apparatus as recited in claim 19 , wherein an FPGA utilizing unidirectional routing is subject to bridging or driver errors in response to a single-event upset (SEU) occurring on a routing bit of a configuration memory (CRAM).

21. An apparatus for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit for implementation on the FPGA circuit and routing of circuits through a synthesis process which arrives at a physical design;

performing a circuit analysis on said logic circuit;

performing in-place iterations of reconfiguring, don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream;

wherein said FPGA utilizes unidirectional routing architecture having programmable interconnect points (PIPs);

wherein an FPGA utilizing unidirectional routing is subject to bridging or driver errors in response to a single-event upset (SEU) occurring on a routing bit of a configuration memory (CRAM); and

wherein said bridging or driver errors arise in response to changing the driver of a net or bridging two nets with different drivers together, resulting in signal discrepancy on nets involved in driver switching or bridging due to the SEU.

22. A method for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit within an FPGA circuit design application executing on a computer which routes FPGA circuits through a synthesis process and arrives at a physical design for said logic circuit;

performing a circuit analysis on said logic circuit;

performing in-place iterations of don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream; and

performing said single event upset (SEU) analysis in response to a logic block SEU analysis, connection box SEU analysis, logic routing SEU analysis, and a switch box SEU analysis.

23. A method for increasing fault tolerance of an FPGA circuit, comprising:

a computer configured for designing an FPGA circuit; and

programming executable on said computer for:

describing a logic circuit within an FPGA circuit design application executing on a computer which routes FPGA circuits through a synthesis process and arrives at a physical design for said logic circuit;

performing a circuit analysis on said logic circuit;

performing in-place iterations of don't care X filling, and/or inversion of look-up table (LUT) bits toward increasing overall reliability of said logic circuit; and

updating said FPGA circuit in response to said in-place iterations;

wherein said in-place iterations are performed after placement and routing to preserve physical design while optimizing the logic circuit to mask faults originating upstream; and

wherein said FPGA is utilizing a unidirectional routing architecture having programmable interconnect points (PIPs);

wherein an FPGA utilizing unidirectional routing is subject to bridging or driver errors in response to a single-event upset (SEU) occurring on a routing bit of a configuration memory (CRAM); and

wherein said bridging or driver errors arise in response to changing the driver of a net or bridging two nets with different drivers together, resulting in signal discrepancy on nets involved in driver switching or bridging due to the SEU.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2013
From: HE, LEI; LEE, JU-YUEH; FENG, ZHE; JING, NAIFENG
To: REGENTS OF THE UNIVERSITY OF CALIFORNIA, THE
Reel/Frame 030463/0372 →
Continuity (5)
Continuation PCTUS2011054096 · Sep 29, 2011
Provisional Application 61487133 · May 17, 2011
Provisional Application 61409081 · Nov 1, 2010
Provisional Application 61387572 · Sep 29, 2010
Related Publication 20130305199A1 · Nov 14, 2013