IP Library Granted Patent US 7,257,750
Granted Patent B1
US 7,257,750 · App. 11/036,630 · Granted Aug 14, 2007

Self-verification of configuration memory in programmable logic devices

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,257,750
App. No.
11/036,630
Granted
Aug 14, 2007
Kind
B1
Abstract

In one embodiment, a programmable logic device is provided that includes a memory having memory cells, each memory cell operable to store either a configuration bit or a RAM bit; a masking circuit operable to mask a RAM bit by providing a masking value for the masked RAM bit; an error detection circuit operable to process the configuration bits during operation of the programmable logic device using an error detection algorithm, the error detection circuit calculating a signature that includes configuration bits and masking values; and a comparator operable to compare the signature calculated by the error detection circuit with a correct signature.

Claims (36)

1. A programmable logic device, comprising:

a memory having memory cells, each memory cell operable to store either a configuration bit or a RAM bit;

a masking circuit operable to mask a RAM bit by providing a masking value for the masked RAM bit;

a signature calculation engine operable to process the configuration bits during operation of the programmable logic device using an error detection algorithm, the signature calculation engine calculating during a calculation cycle a signature that includes configuration bits and masking values; and

a comparator operable to compare the signature calculated by the signature calculation engine in a given calculation cycle with a correct signature.

2. The programmable logic device of claim 1 , wherein the signature calculation engine is a CRC calculation engine, and wherein the comparator is a CRC signature comparator.

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 signature calculation engine is a parity bit calculation engine, and the comparator is a parity bit comparator.

5. The programmable logic device of claim 1 , wherein the memory is a configuration memory organized according to a plurality of word lines and bit lines, a portion of the configuration memory configurable as RAM being organized into a plurality of groups, each group corresponding to memory cells on adjacent word and bit lines, each group being preceded by a flag word line containing flag memory cells indicating whether the adjacent group is configured as RAM, the signature calculation engine including an address shift register to successively activate the word lines and a data shift register to receive bit results from the bit lines corresponding to bits stored on the activated word line.

6. The programmable logic device of claim 5 , further comprising a sense amp for each bit line to provide the bit results, wherein for each bit line that couples to RAM data, the data shift register receives the bit results from the sense amp through the masking circuit comprising an AND gate, the AND gate also receiving an inverted form of a mask enable signal that is activated responsive to the content of the flag memory cells, the AND gate providing the masking value in response to the activation of the mask enable signal.

7. The programmable logic device of claim 6 , further comprising, for each bit line that couples to RAM data, an SR latch to provide the MASK enable signal.

8. The programmable logic device of claim 2 , further comprising:

a register operable to store a predetermined CRC signature, wherein the correct signature used by the CRC signature comparator is the predetermined CRC signature.

9. The programmable logic device of claim 1 , wherein the signature calculation engine is configured to calculate an initial signature during its initial cycle, and wherein the correct signature used by the comparator is the initial signature.

10. The programmable logic device of claim 1 , further comprising:

a configurable logic core, wherein the signature calculation engine and the comparator are each implemented by configuring the logic core.

11. The programmable logic device of claim 1 , wherein the signature calculation engine and the comparator each comprises dedicated hardware.

12. A programmable logic device, comprising:

a memory having memory cells, each memory cell operable to store either a configuration bit or a RAM bit;

a masking circuit operable to mask a RAM bit by providing a masking value for the masked RAM bit;

an error detection circuit operable to process the configuration bits during operation of the programmable logic device using an error detection algorithm, the error detection circuit calculating a signature that includes configuration bits and masking values; and

a comparator operable to compare the signature calculated by the error detection circuit with a correct signature.

13. The programmable logic device of claim 12 , wherein the error detection circuit is a CRC error detection circuit.

14. The programmable logic device of claim 12 , wherein the memory cells storing RAM bits comprise an embedded RAM memory block.

15. The programmable logic device of claim 12 , wherein the memory cells storing RAM bits comprise lookup table (LUT) memory cells.

16. A method for detecting errors in bits stored in a programmable logic device, comprising:

determining whether a stored bit is a configuration bit or a RAM bit;

masking the bit if it is determined to be a RAM bit by providing a masking value for the masked RAM bit;

calculating a signature that includes the configuration bits and the masking values; and

comparing the signature with a correct signature.

17. The method of claim 16 , wherein calculating the signature comprises cyclically processing the stored configuration bits and masking values using a CRC algorithm to generate a CRC signature during each cycle, and wherein comparing the signature comprises comparing the generated CRC signature with a correct CRC signature.

18. The method of claim 16 , further comprising configuring the programmable logic device to perform the determining, masking, calculating, and comparing acts.

19. The method of claim 16 , further comprising:

asserting a good configuration memory flag if the comparison indicates that there are no errors in the stored bits.

20. The method of claim 19 , further comprising:

if the good configuration memory flag is not asserted, reconfiguring the programmable logic device with configuration data.

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 035222/0866 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2005
From: SINGH, SATWANT; NGUYEN, CHI; WU, ANN; YEW, TING
To: LATTICE SEMICONDUCTOR CORPORATION
Reel/Frame 015645/0647 →