Methods of authenticating a user design in a programmable integrated circuit
First Claim
1. A method of authenticating a user design in a programmable integrated circuit (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 a data word from the user design, wherein the function provides a key specific to the programmed IC;
wherein the data word from the user design is data that configures a part of the user design on the programmable IC;
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.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods of authenticating a user design in a programmable integrated circuit. The methods utilize an identifier unique to the programmable IC and a data word taken from the user design. The data word can be unique to the design and can include a string of data taken from the configuration data for the design, or the values of circuit nodes read from selected points throughout the design. A function is performed on the identifier and the data word, producing a key specific to the user design as implemented in that programmable IC. The key is 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. Circuitry for performing the steps of the method can be implemented in the programmable resources of the programmable IC.
-
Citations
20 Claims
-
1. A method of authenticating a user design in a programmable integrated circuit (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 a data word from the user design, wherein the function provides a key specific to the programmed IC; wherein the data word from the user design is data that configures a part of the user design on the programmable IC; 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of authenticating a user design in a programmable integrated circuit (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 a data word from the user design, wherein the function provides a key specific to the programmed IC; wherein the data word from the user design is data that configures a part of the user design on the programmable IC; 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. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method of authenticating a user design programmed into a programmable integrated circuit (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 a data word from the user design, wherein the function provides a key specific to the user design as implemented in the programmable IC; wherein the data word from the user design is data that configures a part of the user design on the programmable IC; 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.
-
Specification