IP Library Granted Patent US 8,319,521
Granted Patent B1
US 8,319,521 · App. 13/076,300 · Granted Nov 27, 2012

Safe programming of key information into non-volatile memory for a programmable logic device

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 8,319,521
App. No.
13/076,300
Granted
Nov 27, 2012
Kind
B1
Abstract

A programmable logic device (PLD) is disclosed that includes a non-volatile memory; a shadow register; and a data shift register (DSR) configurable to receive control information from an external programming tool, wherein the DSR is configured to shift the control information into the shadow register if the PLD is in a first programming mode, the PLD being configurable to operate in the first programming mode using the control information stored in the shadow register without the control information being stored in the non-volatile memory.

Claims (42)

1. A programmable logic device (PLD), comprising:

a non-volatile memory;

a shadow register; and

a data shift register (DSR) configurable to receive control information from an external programming tool, wherein the DSR is configured to shift the control information into the shadow register if the PLD is in a first programming mode and the shadow register is configured to receive the control information from the non-volatile memory if the PLD is in a second programming mode.

2. The PLD of claim 1 , wherein the shadow register is configurable to shift the control information into the non-volatile memory if the PLD is in a third programming mode.

3. The PLD of claim 1 , wherein the DSR is configurable to shift the control information into the non-volatile memory if the PLD is in the second programming mode.

4. The PLD of claim 1 , wherein the DSR is configured to serially shift in the control information and to shift out the control information in parallel to the shadow register.

5. The PLD of claim 1 , further comprising a programmable fabric configurable according to a configuration bitstream from the external programming tool.

6. The PLD of claim 1 , wherein a length of the shadow register matches a width for the non-volatile memory, the non-volatile memory being a flash memory.

7. The PLD of claim 1 , wherein the non-volatile memory is a one-time programmable (OTP) memory.

8. The PLD of claim 1 , wherein the DSR is configured to shift the control information directly into the shadow register if the PLD is in the first programming mode.

9. A programmable logic device (PLD), comprising:

a non-volatile memory;

a shadow register;

a data shift register (DSR) configurable to receive control information from an external programming tool, wherein the DSR is configured to shift the control information into the shadow register if the PLD is in a first programming, the PLD being configurable to operate in the first programming mode using the control information stored in the shadow register without the control information being stored in the non-volatile memory; and

an input port to receive the control information, the input port including a de-multiplexer configurable to select the DSR such that the control information is shifted from the external programming tool through de-multiplexer and into the DSR.

10. The PLD of claim 9 , wherein the input port is an IEEE 1532 in system configurable (ISC) input port.

11. The PLD of claim 10 , wherein the input port includes a control register that stores a programming control signal to control whether the PLD is in the first programming mode.

12. A method of configuring a programmable logic device (PLD), comprising:

within the PLD, configuring a de-multiplexer to select a data shift register (DSR);

shifting data through the de-multiplexer and into the DSR from an external programming tool;

shifting the data from the DSR into a shadow register for the PLD in a first programming mode,

configuring the PLD according to a remaining configuration bitstream from the external programming tool; and

operating the configured PLD in the first programming mode without shifting the data into a non-volatile memory within the PLD.

13. The method of claim 12 further comprising:

shifting the data from the external programming tool into the DSR; and

shifting the data from the DSR into the non-volatile memory in a second programming mode for the PLD.

14. The method of claim 13 , further comprising:

determining if the configured PLD operated in the first programming mode as desired; and

if the configured PLD operated as desired, shifting the data from the shadow register into the non-volatile memory in a third programming mode for the PLD.

15. The method of claim 13 further comprising:

shifting the data from the non-volatile memory into the shadow register in the second programming mode for the PLD.

16. The method of claim 12 , wherein the data and the configuration bitstream are shifted into the de-multiplexer through an IEEE 1532 ISC input port for the PLD.

17. The method of claim 16 , further comprising:

storing a mode control signal in a control register for the input port to control whether the PLD is in the first programming mode.

18. The method of claim 12 , wherein shifting the data into the DSR comprises serially shifting the data.

19. The method of claim 12 , wherein shifting the data from the shadow register into the non-volatile memory comprises shifting the data in parallel.

20. A programmable logic device (PLD), comprising:

non-volatile memory;

an IEEE 1532 in system configurable (ISC) input port operable to receive configuration data from an external programming tool, wherein the configuration data includes a mode control signal for controlling whether the PLD is in a first programming mode and wherein the configuration data includes control data;

a data shift register (DSR) for receiving the control data from the input port if the PLD is in the first programming mode; and

a shadow register configured to receive the control data from the DSR if the PLD is in the first programming mode and configured to receive the control data from the non-volatile memory if the PLD is in a second programming mode.

Assignments (3)
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 24, 2015
From: LATTICE SEMICONDUCTOR CORPORATION; SIBEAM, INC; SILICON IMAGE, INC.; DVDO, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 035308/0345 →