Methods of authenticating a combination of a programmable IC and a non-volatile memory device, where the non-volatile memory device stores a configuration data stream implementing a user design in the programmable IC. A first identifier unique to the programmable IC is stored in non-volatile memory in the programmable IC. A second identifier unique to the non-volatile memory device is stored in the non-volatile memory device. As part of the process in which the configuration data stream is used to program the programmable IC with the user design, a function is performed on the two identifiers, producing a key specific to the programmable IC/non-volatile memory device combination. The key is then compared to an expected value. When the key matches the expected value, the user design is enabled. When the key does not match the expected value, at least a portion of the user design is disabled.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of authenticating a combination of a programmable integrated circuit (IC) and a non-volatile memory device, wherein the non-volatile memory device comprises a configuration data stream implementing a user design in the programmable IC, comprising: programming the user design into the programmable IC, wherein a programmed IC is produced; disabling a first portion of the user design in the programmed IC; performing a function on a first value comprising an identifier unique to the programmable IC and on a second value comprising an identifier unique to the non-volatile memory device, wherein the function provides a key specific to the combination of the programmable IC and the non-volatile memory device; comparing the key with an expected value; and enabling, when the key matches the expected value, the first portion of the user design in the programmed IC; wherein the disabling, the performing, the comparing, and the enabling are all performed by a second portion of the user design in the programmed IC.
2. The method of claim 1 , wherein the identifier unique to the non-volatile memory device comprises a plurality of bits from a plurality of electrically programmable fuses included in the non-volatile memory device.
3. The method of claim 1 , wherein the identifier unique to the programmable IC comprises a plurality of bits from a plurality of electrically programmable fuses included in the programmable IC.
4. The method of claim 1 , wherein the performing the function comprises performing a hash function on the first value and the second value.
5. The method of claim 1 , wherein the performing the function comprises shifting bits of the first value and the second value through a shift register.
6. The method of claim 1 , wherein the programmable IC comprises a device selected from a group consisting of: a programmable logic device (PLD); a microprocessor; a digital signal processor, and a microcontroller.
7. A method of authenticating a combination of a programmable integrated circuit (IC) and a non-volatile memory device, wherein the non-volatile memory device comprises a configuration data stream implementing a user design in the programmable IC, comprising: programming the user design into the programmable IC, wherein a programmed IC is produced; performing a function on a first value comprising an identifier unique to the programmable IC and on a second value comprising an identifier unique to the non-volatile memory device, wherein the function provides a key specific to the combination of the programmable IC and the non-volatile memory device; comparing the key with an expected value; enabling, when the key matches the expected value, at least a first portion of the user design in the programmed IC; and disabling, when the key does not match the expected value, at least the first portion of the user design in the programmed IC; wherein the performing, the comparing, the enabling, and the disabling are all performed by a second portion of the user design in the programmed IC.
8. The method of claim 7 , wherein the expected value is included in the configuration data stream.
9. The method of claim 7 , wherein the identifier unique to the non-volatile memory device comprises a plurality of bits from a plurality of electrically programmable fuses included in the non-volatile memory device.
10. The method of claim 7 , wherein the identifier unique to the programmable IC is stored in a plurality of electrically programmable fuses included in the programmable IC.
11. The method of claim 7 , wherein the performing the function comprises performing a hash function on the first value and the second value.
12. The method of claim 7 , wherein the performing the function comprises shifting bits of the first value and the second value through a shift register.
13. The method of claim 7 , wherein the non-volatile memory device comprises an EEPROM.
14. The method of claim 7 , wherein the programmable IC comprises a device selected from a group consisting of: a programmable logic device (PLD); a microprocessor; a digital signal processor, and a microcontroller.
15. A method of authenticating a combination of a programmable integrated circuit (IC) and a non-volatile memory device, wherein the non-volatile memory device comprises a configuration data stream implementing a user design in the programmable IC, comprising: performing, in a first portion of the user design, a function on a first value comprising an identifier unique to the programmable IC and on a second value comprising an identifier unique to the non-volatile memory device, wherein the function provides a key specific to the combination of the programmable IC and the non-volatile memory device; comparing the key with an expected value; and ensuring that a second portion of the user design in the programmable IC functions differently when the key matches the expected value and when the key does not match the expected value; wherein the performing, the comparing, and the ensuring are all performed by a second portion of the user design.
16. The method of claim 15 , wherein the expected value is included in the configuration data stream.
17. The method of claim 15 , wherein the identifier unique to the programmable IC is stored in a plurality of electrically programmable fuses included in the programmable IC.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 9, 2006
October 14, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.