Method for creating circuit redundancy in programmable logic devices
First Claim
1. A method for creating circuit redundancy in programmable logic devices, comprising the steps of:
- (a) establishing a programmable logic device containing a plurality of structural elements, (b) configuring a first portion of said plurality of structural elements at a first time slice into a primary circuit for a predetermined application, (c) identifying at least a second portion of said plurality of structural elements having the least overlap with the structural elements of said first portion thereof, (d) configuring said structural elements at a second time slice of said at least second portion thereof into a duplicate circuit substantially functionally identical with respect to said primary circuit, and (e) comparing performance of said primary circuit and said duplicate circuit in a time-multiplexing fashion.
4 Assignments
0 Petitions
Accused Products
Abstract
In a field programmable gate array (FPGA) allowing dynamic reconfiguration in time multiplexing fashion, duplicate copies are configured in a time multiplexing manner which are functionally identical to a primary circuit specified for a predetermined FPGA'"'"'s application. The primary and duplicate circuits are interrogated by a voting circuit which determines the existence of a faulted circuit in order to eliminate the faulted circuit from the operation of the FPGA. In this manner, without physical addition of redundant circuits, fault tolerancy for the FPGA is provided to minimize the cost, weight, volume, heat and energy associated issues of conventional redundance techniques.
523 Citations
47 Claims
-
1. A method for creating circuit redundancy in programmable logic devices, comprising the steps of:
-
(a) establishing a programmable logic device containing a plurality of structural elements, (b) configuring a first portion of said plurality of structural elements at a first time slice into a primary circuit for a predetermined application, (c) identifying at least a second portion of said plurality of structural elements having the least overlap with the structural elements of said first portion thereof, (d) configuring said structural elements at a second time slice of said at least second portion thereof into a duplicate circuit substantially functionally identical with respect to said primary circuit, and (e) comparing performance of said primary circuit and said duplicate circuit in a time-multiplexing fashion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
in said step (c), including into said at least one second portion of the structural elements unoccupied, configurable logic units, and, upon exhaustion thereof, unoccupied structural elements within occupied configurable logic units.
-
-
5. The method of claim 1, wherein said structural elements include interconnections formed on said programmable logic device.
-
6. The method of claim 1, wherein said structural elements include I/O units of said programmable logic device.
-
7. The method of claim 1, wherein said first portion of said plurality of structural elements includes one configurable logic unit, and wherein said at least second portion of said plurality of structural elements includes at least a further configurable logic unit spatially separated from said one configurable logic unit.
-
8. The method of claim 1, further comprising the step of:
in said step (c), identifying said at least one second portion of the structural elements as linearly displaced with regard to said first portion of the structural elements.
-
9. The method of claim 1, further comprising the step of:
in said step (c), identifying said at least a second portion of the structural elements as spatially rotated with regard to said first portion of the structural elements.
-
10. The method of claim 1, further comprising the steps of:
-
identifying a plurality of time slices, identifying a number of said at least one second portions of unoccupied structural elements, and configuring each of said number of at least one second portions of the unoccupied structural elements into a duplicate circuit at a respective one of said plurality of time slices.
-
-
11. The method of claim 10, further comprising the step of:
identifying time margins for said plurality of time slices.
-
12. The method of claim 11, further comprising the step of determining a feasibility of said number of said second portions and said time margins for said plurality of the time slices.
-
13. The method of claim 1, further comprising the step of:
excluding from operation a defective one of said primary circuit and said duplicate circuit, upon detecting in said step (e) a disagreement in performance of said primary circuit and said duplicate circuit.
-
14. The method of claim 13, further comprising the step of:
-
upon completing the steps (a)-(e) for said predetermined application, repeating said steps (a)-(e) for a different predetermined application.
-
-
15. The method of claim 1, wherein said overlap between the structural elements included into said primary circuit and the structural elements included into said duplicate circuit is substantially zero overlap.
-
16. The method of claim 1, wherein said programmable logic device includes a field programmable gate array.
-
17. A method for creating fault tolerance in programmable logic devices, comprising the steps of:
-
configuring at a first time slice, a primary group of a plurality of structural elements of a programmable logic device into a primary circuit for a predetermined application;
defining a plurality of sequential time slices following said first time slice;
identifying in each of said time slices a respective Nth duplicate group of said plurality of the structural elements;
configuring said respective duplicate group of the structural elements into a duplicate circuit substantially functionally identical to said primary circuit;
comparing performance of said primary circuit and said duplicate circuit in time-multiplexing fashion; and
excluding at least one of said primary circuit and said duplicate circuit from operation subsequent to disagreement in performance being detected in said comparing step. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
identifying said respective duplicate group of the structural elements by a) selecting unoccupied configurable logic units; and
upon exhaustion thereof, byb) selecting unoccupied structural elements within occupied configurable logic units.
-
-
24. The method of claim 22, wherein said structural elements further include interconnections formed on said programmable logic device.
-
25. The method of claim 17, wherein said structural elements include I/O units of said programmable logic device.
-
26. The method of claim 17, further comprising the steps of:
-
defining a plurality of sequential application cycles, each cycle corresponding to a respective application, in each of said application cycles, configuring a respective primary circuit and N duplicate circuits substantially identical functionally to said respective primary circuit, and comparing performance thereof in time-multiplexing fashion.
-
-
27. A programmable logic device with fault tolerance, comprising:
-
a plurality of configurable structural elements;
means for defining a plurality of time slices, configuration means containing configuration data and coupled to said configurable structural elements for;
(a) configuring a primary group thereof into a primary circuit in a 1st time slice of said plurality of time slices, and (b) configuring an Nth duplicate group of the configurable structural elements into a duplicate circuit substantially functionally identical to said primary circuit in a (N+1)th time slice of said plurality of time slices, wherein N≧
1;
means for identifying said Nth duplicate group of the configurable structural elements having the least overlap with the configurable structural elements occupied in said primary circuit and in any of (N−
1) duplicate circuits; and
voting means for interrogating said primary circuit and said duplicate circuits in time-multiplexing fashion for comparing performance thereof. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A method for creating circuit redundancy in field programmable gate array (FPGA), comprising the steps of:
-
in a FPGA containing a plurality of configurable structural elements, a) defining a plurality of time slices, and b) configuring, in a time-multiplexing fashion, a plurality of functionally substantially identical circuits from the structural elements of said FPGA having the least overlap with the structural elements occupied in any previous of said plurality of time slices. - View Dependent Claims (47)
providing voting means, and interrogating and comparing performance of said plurality of functionally identical circuits to detect a defective circuit.
-
Specification