IP Library Granted Patent US 7,596,744
Granted Patent B1
US 7,596,744 · App. 11/361,584 · Granted Sep 29, 2009

Auto recovery from volatile soft error upsets (SEUs)

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 7,596,744
App. No.
11/361,584
Granted
Sep 29, 2009
Kind
B1
Abstract

In one embodiment, a programmable logic device for recovery from soft error upsets (SEUs) includes: a configuration memory operable to store configuration data; a configuration engine operable to configure the configuration memory; an error detection circuit operable to determine if the stored configuration data in the configuration memory has an error; and a configuration reset circuit operable to trigger the configuration engine to reconfigure the configuration memory if the error detection circuit detects the error.

Claims (38)

1. A programmable logic device, comprising:

a configuration memory for storing configuration data;

a configuration engine for configuring the configuration memory and retrieving resulting configuration data from the configuration memory;

an error detection circuit for detecting whether the retrieved configuration data in the configuration memory has an error; and

a configuration reset circuit for triggering the configuration engine to reconfigure the configuration memory if the error detection circuit detects the error,

wherein the retrieved configuration data comprises programmed configuration data and non-programmed configuration data, and wherein the error detection circuit includes a first mode of operation in which both the programmed configuration data and the non-programmed configuration data are examined for error and includes a second mode of operation in which only the programmed configuration data is examined for error and the non-programmed configuration data is assigned to a known binary state.

2. The programmable logic device of claim 1 , wherein the error detection circuit comprises a CRC calculation engine.

3. The programmable logic device of claim 2 , wherein the CRC calculation engine comprises a linear feedback shift register (LFSR).

4. The programmable logic device of claim 1 , wherein the configuration engine is adapted to allow reads or writes to at least one embedded memory in response to being triggered to reconfigure the configuration memory.

5. The programmable logic device of claim 1 , wherein the configuration memory is a volatile configuration memory, and wherein the configuration engine is adapted to reconfigure the volatile configuration memory using a non-volatile configuration memory.

6. The programmable logic device of claim 5 , wherein the programmable logic device incorporates the non-volatile configuration memory.

7. The programmable logic device of claim 5 , wherein the non-volatile memory is an external SPI flash memory.

8. A programmable logic device, comprising:

a configuration memory for storing configuration data;

a configuration engine for configuring the configuration memory and retrieving resulting configuration data from the configuration memory;

an error detection circuit for detecting whether the retrieved configuration data in the configuration memory has an error; and

a configuration reset circuit for triggering the configuration engine to reconfigure the configuration memory if the error detection circuit detects the error,

wherein the error detection circuit asserts an error detection flag if error is detected, and wherein the configuration reset circuit triggers the configuration engine in response to comparing the error detection flag with a delayed version of the error detection flag.

9. The programmable logic device of claim 8 , wherein the configuration reset circuit comprises an AND gate to perform the comparison of the error detection flag with a delayed version of the error detection flag.

10. A programmable logic device, comprising:

a configuration memory for storing configuration data;

a configuration engine for configuring the configuration memory and retrieving resulting configuration data from the configuration memory;

an error detection circuit for detecting whether the retrieved configuration data in the configuration memory has an error; and

a configuration reset circuit for triggering the configuration engine to reconfigure the configuration memory if the error detection circuit detects the error,

wherein the configuration engine is adapted to prevent a tri-state of any input or output pads in response to being triggered to reconfigure the configuration memory.

11. A programmable logic device, comprising:

a configuration memory for storing configuration data;

a configuration engine for configuring the configuration memory and retrieving resulting configuration data from the configuration memory;

an error detection circuit for detecting whether the retrieved configuration data in the configuration memory has an error; and

a configuration reset circuit for triggering the configuration engine to reconfigure the configuration memory if the error detection circuit detects the error,

wherein the configuration engine is adapted to prevent an assertion of a global reset signal in response to being triggered to reconfigure the configuration memory.

12. A method of recovering from a soft error within configuration data stored in a configured programmable logic device, comprising:

during operation of the configured programmable logic device, repeatedly processing the configuration data using an error-detection algorithm to generate a checksum;

after a checksum is generated, comparing the generated checksum with a previously-generated checksum to determine if an error exists in the configuration data; and

if an error is determined, initiating within the programmable logic device a reconfiguration of the configuration memory to remove the error from the configuration data,

wherein the configuration data comprises programmed configuration data and non-programmed configuration data, the method further comprising assigning the non-programmed configuration data to a known binary state before processing the configuration data.

13. The method of claim 12 , including reconfiguring the configuration memory without interrupting normal operation of the device.

14. The method of claim 12 , wherein repeatedly processing the configuration data comprises using a CRC algorithm to generate a CRC checksum during each repetition, and comparing the generated checksum with a previously-generated checksum comprises comparing the generated CRC checksum with a previously-generated CRC checksum.

Assignments (4)
SECURITY INTEREST Recorded May 21, 2019
From: LATTICE SEMICONDUCTOR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 049980/0786 →
RELEASE OF SECURITY INTEREST Recorded May 21, 2019
From: JEFFERIES FINANCE LLC
To: LATTICE SEMICONDUCTOR CORPORATION; SILICON IMAGE, INC.; SIBEAM, INC.; DVDO, INC.
Reel/Frame 049827/0326 →
SECURITY INTEREST Recorded Mar 18, 2015
From: LATTICE SEMICONDUCTOR CORPORATION; SIBEAM, INC.; SILICON IMAGE, INC.; DVDO, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 035223/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2006
From: KOW, SAN-TA; WU, ANN; THAO, TOU NOU
To: LATTICE SEMICONDUCTOR CORPORATION
Reel/Frame 017277/0137 →