IP Library Granted Patent US 7,546,498
Granted Patent B1
US 7,546,498 · App. 11/446,308 · Granted Jun 9, 2009

Programmable logic devices with custom identification systems and methods

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,546,498
App. No.
11/446,308
Granted
Jun 9, 2009
Kind
B1
Abstract

Systems and methods are disclosed herein to provide techniques for providing programmable identification codes (IDCODE) for PLDs. For example, in accordance with an embodiment of the present invention, a programmable logic device includes a first non-volatile memory adapted to store a first identification code of the programmable logic device, and a second memory adapted to store a second identification code of the programmable logic device. A control circuit selects between the first identification code stored in the first non-volatile memory and the second identification code stored in the second memory to provide as an identification code for the programmable logic device.

Claims (56)

1. A programmable logic device comprising:

a JTAG state machine;

a JTAG instruction decoder coupled to the JTAG state machine;

a JTAG multiplexer coupled to the JTAG instruction decoder and a control circuit;

a first non-volatile memory adapted to store a first identification code of the programmable logic device;

a second memory adapted to store a second identification code of the programmable logic device; and

the control circuit adapted to select between the first identification code stored in the first non-volatile memory and the second identification code stored in the second memory to provide as an identification code for the programmable logic device,

wherein the control circuit comprises:

a multiplexer coupled to the first non-volatile memory and the second memory; and

a third non-volatile memory adapted to control the multiplexer to provide one of the first identification code and the second identification code as a multiplexer output signal to the JTAG multiplexer to provide as the identification code on a test data output path.

2. The programmable logic device of claim 1 , wherein the first non-volatile memory has stored therein a hard-wired identification code as the first identification code, and the second identification code is a user-provided customized identification code.

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

a third memory adapted to store at least one of a third identification code and a user code of the programmable logic device;

wherein the second memory is further adapted to store at least one of the second identification code and a user code of the programmable logic device; and

wherein the control circuit is further adapted to select between the second memory and the third memory to provide a user code for the programmable logic device.

4. The programmable logic device of claim 1 , wherein the second memory and the third non-volatile memory are formed as part of a flash memory block.

5. The programmable logic device of claim 1 , wherein the second memory and the third non-volatile memory are formed as part of a flash memory block, and wherein the flash memory block is partitioned into a configuration data portion and a test data portion, with the second memory and the third non-volatile memory forming a part of the test data portion.

6. The programmable logic device of claim 1 ,

wherein the second memory is coupled to the JTAG multiplexer and adapted to provide a USERCODE of the programmable logic device.

7. The programmable logic device of claim 1 , wherein the second memory comprises a USERCODE register for the programmable logic device.

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

a first port adapted to support a JTAG standard;

a plurality of input/output blocks;

a plurality of logic blocks;

an interconnect adapted to programmably connect the input/output blocks and the logic blocks; and

a configuration memory adapted to receive configuration data via the first port to configure the input/output blocks, the logic blocks, and the interconnect.

9. The programmable logic device of claim 1 , wherein the programmable logic device is externally marked to distinguish from a programmable logic device that does not include the second memory.

10. A programmable logic device comprising:

a first non-volatile means for storing a first identification code of the programmable logic device;

a second means for storing a second identification code of the programmable logic device;

means for selecting between the first non-volatile storing means and the second storing means to provide an identification code for the programmable logic device;

a third means for storing at least one of a third identification code and a user code of the programmable logic device, wherein the second storing means is further adapted to store a user code of the programmable logic device in the event that the second storing means is not storing the second identification code, and wherein the selecting means is further adapted to select between the third storing means and the second storing means to provide a user code of the programmable logic device; and

means for transferring data from the third storing means to the second storing means.

11. The programmable logic device of claim 10 , further comprising means for supporting a JTAG standard, wherein the selecting means provides the identification code to the supporting means to provide on a test data output terminal, and wherein the second storing means is further adapted to store a user code of the programmable logic device to provide to the supporting means in the event that the second storing means is not storing the second identification code.

12. The programmable logic device of claim 10 , further comprising means for distinguishing externally the programmable logic device from a programmable logic device not storing the second identification code.

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

means for receiving JTAG information and providing JTAG information, wherein the information provided includes the identification code;

a plurality of input/output blocks;

a plurality of logic blocks;

an interconnect adapted to programmably connect the input/output blocks and the logic blocks; and

a configuration memory adapted to receive configuration data via the JTAG receiving means to configure the input/output blocks, the logic blocks, and the interconnect.

14. A programmable logic device (PLD) comprising:

a JTAG state machine;

a JTAG instruction decoder coupled to the JTAG state machine;

a JTAG multiplexer coupled to the JTAG instruction decoder and a control circuit;

a first memory adapted to store a first PLD identification code;

a second memory adapted to store a second PLD identification code; and

the control circuit adapted to select between the first PLD identification code stored in the first memory and the second PLD identification code stored in the second memory and further adapted to provide the selected PLD identification code to the JTAG multiplexer.

15. The programmable logic device of claim 14 , wherein the first memory is ROM and the second memory is reprogrammable non-volatile memory.

16. The programmable logic device of claim 14 , wherein the second memory is coupled to the JTAG multiplexer and adapted to provide a user code of the programmable logic device.

17. The programmable logic device of claim 14 , further comprising:

a third memory adapted to store at least one of a third PLD identification code and a user code of the programmable logic device;

wherein the second memory is further adapted to store at least one of the second PLD identification code and a user code of the programmable logic device; and

wherein the control circuit is further adapted to select between the second memory and the third memory to provide a user code for the programmable logic device.

18. The programmable logic device of claim 17 , wherein the third memory is adapted to transfer to the second memory one of a PLD identification code and a user code of the programmable logic device.

19. The programmable logic device of claim 17 , wherein the second memory is volatile memory and the third memory is reprogrammable non-volatile memory.

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 Jun 28, 2006
From: TANG, HOWARD; AGRAWAL, OM P.; FONTANA, FABIANO
To: LATTICE SEMICONDUCTOR CORPORATION
Reel/Frame 017854/0701 →