Methods for implementing circuits in programmable logic...

Electronic digital logic circuitry – Reliability – Fail-safe

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C326S009000, C326S010000, C326S011000, C326S038000, C326S041000, C716S030000, C716S030000, C716S030000

Reexamination Certificate

active

06624654

ABSTRACT:

FIELD OF THE INVENTION
The invention relates to programmable logic devices (PLDs) subject to single event upsets. More particularly, the invention relates to methods of generating high reliability designs for PLDs on which single event upsets have minimal impact.
BACKGROUND OF THE INVENTION
Programmable logic devices (PLDs) are a well-known type of digital integrated circuit that can be programmed to perform specified logic functions. One type of PLD, the field programmable gate array (FPGA), typically includes an array of configurable logic blocks (CLBs) surrounded by a ring of programmable input/output blocks (IOBs). Some FPGAs also include additional logic blocks with special purposes (e.g., DLLs, RAM, and so forth).
The various logic blocks are interconnected by a programmable interconnect structure that includes a large number of programmable interconnect lines (e.g., metal wires). The interconnect lines and logic blocks are interconnected using programmable interconnect points (PIPs). A PIP can be, for example, a CMOS passgate. When the passgate is turned on (i.e., the PIP is enabled), the two nodes on either side of the passgate are electrically connected. When the passgate is turned off (i.e., the PIP is disabled), the two nodes are isolated from each other. Thus, by controlling the values on the gate terminals of the PIPS, circuit connections can be easily made and altered.
PIPs can be implemented in many different ways. For example, a buffered PIP can be implemented as a tristate buffer. When the tristate signal is low, the buffer output is not driven, and the two nodes on either side of the buffer are isolated. When the tristate signal is high, one of the nodes drives the other node in a unidirectional connection.
Various exemplary types of PIPs are described by Freeman in U.S. Pat. No. Re. 34,363, by Carter in U.S. Pat. Nos. 4,695,740 and 4,713,557, by Hsieh in U.S. Pat. No. 4,835,418, and by Young in U.S. Pat. No. 5,517,135, all of which are hereby incorporated by reference. Some PIPs are unidirectional and some are bidirectional. Some are buffered and some are not buffered. However, the various types of PIPs typically have this in common, that they are controlled by a single data value stored in a memory cell called a configuration memory cell.
The logic blocks and PIPs in a PLD are typically programmed (configured) by loading configuration data into thousands of configuration memory cells that define how the CLBS, IOBs, and interconnect lines are configured and interconnected. In Field Programmable Gate Arrays (FPGAs), for example, each configuration memory cell is implemented as a static RAM cell.
When subjected to unusual conditions such as cosmic rays or bombardment by neutrons or alpha particles, a static RAM cell can change state. For example, a stored high value can be inadvertently changed to a low value, and vice versa. Sometimes these “single event upsets” have no effect on the functionality of the chip. At other times, a single event upset can change the function of a PLD such that the circuit no longer functions properly.
FIG. 1
shows a portion of a PLD that includes three logic blocks LB
1
-LB
3
, five interconnect lines IL
0
-IL
4
, and four PIPs P
1
-P
4
. Interconnect lines IL
1
-IL
3
are coupled to logic blocks LB
1
-LB
3
, respectively. For simplicity, interconnect lines IL
1
-IL
3
are shown directly connected to the corresponding logic blocks. In practice, the interconnect lines do not necessarily connect directly to the logic blocks, but can pass through additional PIPs to reach the logic blocks. Interconnect lines IL
1
-IL
3
can each be programmably coupled to interconnect line IL
0
through PIPs P
1
-P
3
, respectively. Interconnect line IL
4
can be programmably coupled to interconnect line IL
3
through PIP P
4
.
PIPs P
1
-P
4
are respectively controlled by four memory cells MC
1
-MC
4
. When the value stored in one of the memory cells is high, the passgate in the associated PIP is enabled. When the value stored in one of the memory cells is low, the interconnect lines on either side of the associated PIP are not connected together. They can be left unconnected or wired as parts of two separate circuits.
As an example, consider the case where memory cells MC
1
, MC
2
, and MC
4
each store a high value and memory cell MC
3
stores a low value. PIPs P
1
and P
2
are enabled, connecting together interconnect lines IL
1
, IL
0
, and IL
2
. PIP P
4
is also enabled, connecting together interconnect lines IL
3
and IL
4
. PIP P
3
is disabled. Further consider that logic block LB
1
is driving a signal on interconnect line. IL
1
and logic block. LB
3
is driving a signal on interconnect line IL
3
. For example, PIPs P
1
and P
3
can be included in output drivers of the CLBs including logic blocks LB
1
and LB
3
, respectively. PIPs P
1
-P
4
can also form part of multiplexer structures within logic blocks or CLBs, or within the programmable interconnect structure of the PLD.
Now suppose a single event upset occurs at memory cell MC
1
, and the value stored in memory cell MC
1
changes from a high value to a low value. PIP P
1
is inadvertently disabled, and interconnect line IL
1
is isolated from interconnect line IL
0
. If logic block LB
1
was driving logic block LB
2
through interconnect line IL
0
, for example, the connection no longer exists, and the circuit does not function properly.
Suppose instead that a single event upset occurs at memory cell MC
3
and the value stored in memory cell MC
3
changes from a low value to a high value. PIP P
3
is inadvertently enabled. Logic block LB
3
tries to place a value on interconnect line IL
0
, which is already driven by logic block LB
1
. Contention occurs, which can cause a number of problems ranging from excessive current consumption to a malfunctioning circuit to causing actual damage to the PLD.
Circuits and methods have been developed to avoid the problems associated with single event upsets in non-programmable circuits. One strategy for avoiding such problems is illustrated in FIG.
2
. The illustrated circuit is called a triple modular redundancy (TMR) circuit. In essence, the required logic is implemented three times (i.e., in three modules), and the results generated by the three modules are compared. The two that are the same are considered to be correct, and the “dissenting vote” is thrown out.
The TMR circuit of
FIG. 2
includes modules M
1
-M
3
, representing three implementations of the same logical function. Each module has a respective output signal
01
-
03
that drives voting circuit VC. Voting circuit VC implements the function (
01
AND
02
) OR (
02
AND
03
) OR (
01
AND
03
) and provides the result as the output signal OUT of the circuit.
Clearly, this approach overcomes any single event upset that affects the functionality of one of the three modules M
1
-M
3
. The module affected by the event produces an incorrect answer, which is overridden in the voting circuit by the other two modules.
However, while the circuit of
FIG. 2
works well for errors that occur within one of modules M
1
-M
3
, it does not work as well when the circuit is implemented in a PLD. In a PLD, the programmable nature of the routing can cause errors that are more difficult to detect. Specifically, a single event upset that changes the value stored in a PIP memory cell can short together two of the module output signals
01
-
03
. In this event, two of the three inputs to the voting circuit can be incorrect.
Further, circuits implemented in a PLD are not necessarily implemented in discrete regions of the device. The best implementation of the circuit of
FIG. 2
in terms of performance or minimizing resource usage might be to physically intermix the logic for the three modules M
1
-M
3
. In that case, internal nodes in two different modules can easily be separated by only a single disabled PIP. If a single event upset inadvertently enables such a PIP, internal nodes from the two modules are shorted together. Again, two of three modules are providing suspect data to the voting circuit.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Methods for implementing circuits in programmable logic... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Methods for implementing circuits in programmable logic..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Methods for implementing circuits in programmable logic... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3059578

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.