IP Library Granted Patent US 10,127,374
Granted Patent B2
US 10,127,374 · App. 14/632,860 · Granted Nov 13, 2018

Methods for controlling the use of intellectual property in individual integrated circuit devices

Inventors: G. Richard Newell (Tracy, CA); Paul Ekas (Redwood City, CA)
Assignee: MICROSEMI SOC CORPORATION
G06F21/44G06F21/51G06F21/76G06F2221/2129G06F2221/2149
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 10,127,374
App. No.
14/632,860
Granted
Nov 13, 2018
Kind
B2
Abstract

A method for controlling the use of intellectual property (IP) in an individual integrated circuit includes loading data including the IP into the individual integrated circuit, loading an IP license certificate into the individual integrated circuit, the certificate including identification of the IP authorized for the individual integrated circuit, determining inside the individual integrated circuit whether the IP is authorized for the individual integrated circuit, enabling operation of the individual integrated circuit if the IP circuit is authorized for use in the individual integrated circuit, and imposing a penalty on operation of the individual integrated circuit if the IP is not authorized for use in the individual integrated circuit.

Claims (49)

1. A method for controlling the use of intellectual property (IP) in an individual integrated circuit in a group of N authorized integrated circuits, comprising:

loading information into the individual integrated circuit, the information including a list identifying each item of the IP that has been loaded into the individual integrated circuit;

creating by each owner of each item of IP authorized, license authorization information, the license authorization information including no identification information of individual integrated circuits for which the each item of IP is authorized;

creating and certifying device license information by a trusted programmer from the license authorization information, the trusted programmer constrained to create the certified device license information for no more than N individual integrated circuits, the certified device license information created using an identification number of the individual integrated circuit and identifying individually each item of the IP authorized for the individual integrated circuit;

loading the certified device license information into the individual integrated circuit from the trusted programmer;

validating inside the individual integrated circuit authenticity and integrity of the certified device license information;

comparing separately inside the individual integrated circuit each item of IP listed in the certified device license information to each item of IP on the identification list identifying the IP that has been loaded into the individual integrated circuit to determine whether each item of the loaded IP is authorized for the individual integrated circuit;

enabling operation of the individual integrated circuit if the certified device license information is valid and if the loaded IP is authorized for use in the individual integrated circuit; and

imposing a penalty on operation of the individual integrated circuit if the certified device license information is invalid or if the loaded IP is not authorized for use in the individual integrated circuit.

2. The method of claim 1 wherein the integrated circuit is a field programmable gate array (FPGA) and:

loading information into the individual integrated circuit, the information including a list identifying the IP that has been loaded into the individual integrated circuit comprises loading the information into the individual FPGA, the information including a list identifying the IP that has been loaded into the individual FPGA;

creating and certifying device license information by a trusted programmer from the license authorization information, the trusted programmer constrained to create the device license information for no more than N individual integrated circuits, the device license information created using an identification number of the individual integrated circuit and identifying the IP authorized for the individual integrated circuit comprises creating and certifying device license information by a trusted programmer from the license authorization information, the trusted programmer constrained to create and certify the device license information for no more than N individual FPGAs, the device license information created using an identification number of the individual FPGA and identifying the IP authorized for the individual FPGA;

loading the certified device license information into the individual integrated circuit from the trusted programmer comprises loading the certified device license information into the individual FPGA;

validating inside the individual integrated circuit authenticity and integrity of the certified device license information comprises validating inside the individual FPGA authenticity and integrity of the certified device license information;

comparing separately inside the individual integrated circuit each item of IP listed in the certified device license information to each item of IP on the list identifying the IP that has been loaded into the individual integrated circuit to determine whether each item of the loaded IP is authorized for the individual integrated circuit comprises comparing inside the individual FPGA the certified device license information to the list identifying the IP that has been loaded into the individual FPGA to determine whether the loaded IP is authorized for the individual FPGA;

enabling operation of the individual integrated circuit if the certified device license information is valid and if the loaded IP is authorized for use in the individual integrated circuit comprises enabling operation of the individual FPGA if the certified device license information is valid and if the loaded IP is authorized for use in the individual FPGA; and

imposing a penalty on operation of the individual integrated circuit if the certified device license information is invalid or if the loaded IP is not authorized for use in the individual integrated circuit comprises imposing a penalty on operation of the individual FPGA if the certified device license information is invalid or if the loaded IP is not authorized for use in the individual FPGA.

3. The method of claim 2 further comprising:

providing at least one level of optional functionality in the individual FPGA;

determining inside the individual FPGA whether the at least one level of functionality has been authorized for use in the individual FPGA; and

enabling the at least one level of optional functionality in the individual FPGA only if it has been determined inside the individual FPGA that the at least one level of functionality has been authorized for use in the individual FPGA.

4. The method of claim 3 wherein:

providing at least one level of optional functionality in the individual FPGA comprises providing selectable levels of functionality in the individual FPGA; and

determining inside the individual FPGA whether the at least one level of functionality has been authorized for the individual FPGA comprises determining which of the selectable levels of functionality in the individual FPGA have been authorized; and

enabling the at least one level of optional functionality in the individual FPGA comprises enabling the selectable levels of functionality in the individual FPGA that have been authorized.

5. The method of claim 4 wherein providing selectable levels of functionality in the individual FPGA comprises providing that the optional functionality does not operate, providing that the optional functionality does operate, and providing that the optional functionality operates for a limited period of time.

6. The method of claim 5 wherein providing that the optional functionality operates for a limited period of time comprises providing that the optional functionality operates for a limited period of time only if it is determined in the FPGA that the optional functionality operates for a limited period of time.

7. The method of claim 2 wherein imposing a penalty on operation of the individual FPGA if the certified device license information is invalid or if the at least one controlled IP circuit block is not authorized for use in the individual FPGA comprises disabling at least one clock circuit in the individual FPGA.

8. The method of claim 2 wherein imposing a penalty on operation of the individual FPGA if the certified device license information is invalid or if the at least one controlled IP circuit block is not authorized for use in the individual FPGA comprises disabling at least one input/output circuit in the individual FPGA.

9. The method of claim 2 , wherein:

loading the device license information into the individual integrated circuit comprises loading an IP license certificate into the individual FPGA, the certificate including a list of controlled IP circuit blocks authorized for the individual FPGA; and

wherein determining inside the individual FPGA whether the at least one controlled IP circuit block is authorized for use in the individual FPGA comprises comparing the at least one controlled IP circuit block in the design file loaded into the individual FPGA with the list of controlled IP circuit blocks authorized for the individual FPGA contained in the IP license certificate.

10. The method of claim 1 wherein:

data including the IP comprises the IP and data including at least one of metadata associated with the IP and additional rule related data;

comparing separately inside the individual integrated circuit each item of IP listed in the device license information to each item of IP on the list identifying the IP that has been loaded into the individual integrated circuit to determine whether each item of the loaded IP is authorized for the individual integrated circuit comprises determining separately inside the individual integrated circuit whether each item of the loaded IP is included in the list identifying the IP that has been loaded into the individual integrated circuit and determining inside the individual integrated circuit whether all additional rules defined by the metadata associated with the IP together with any additional rule-related data have been met; and

imposing a penalty on operation of the individual integrated circuit if the certified device license information is invalid or if the loaded IP is not authorized for use in the individual integrated circuit comprises imposing a penalty on operation of the individual integrated circuit if the certified device license information is invalid or if any of the loaded IP is not identified by the information identifying the IP authorized for the individual integrated circuit or any of the rules specified by the metadata associated with the IP together with the additional rule-related data have not been met.

11. A method for controlling the use of intellectual property (IP) in an individual field programmable gate array (FPGA) in a group of N authorized FPGAs, comprising:

loading a design file into the individual FPGA, the design file including at least one controlled IP circuit block;

loading information into the individual FPGA, the information including a list identifying the at least one controlled IP circuit block that has been loaded into the individual FPGA;

creating by each owner of each controlled IP circuit block, license authorization information, the license authorization information including no identification information of individual integrated circuits for which the each controlled IP circuit block is authorized;

creating and certifying device license information by a trusted programmer from license authorization information received from each owner of each controlled IP circuit block, the trusted programmer constrained to create and certify the certified device license information for no more than N individual FPGAs, the device license information created by the trusted programmer using an identification number of the individual integrated circuit and identifying the IP authorized for the individual integrated circuit;

loading the certified device license information into the individual FPGA from a trusted programmer;

validating inside the individual integrated circuit authenticity and integrity of the certified device license information;

comparing separately inside the individual FPGA each individual IP circuit block listed in the device license information to each individual IP circuit block on the list identifying the at least one controlled IP circuit block that has been loaded into the individual FPGA to determine whether each of the at least one controlled IP circuit block is authorized for use in the individual FPGA;

enabling operation of the at least one controlled IP circuit block if the certified device license information is valid and if the at least one controlled IP circuit block is authorized for use in the individual FPGA; and

imposing a penalty on operation of the individual FPGA if the certified device license information is invalid or if the at least one controlled IP circuit block is not authorized for use in the individual FPGA.

12. The method of claim 11 , wherein:

loading the certified device license information into the individual FPGA comprises loading an IP license certificate into the individual FPGA, the certificate including a list of controlled IP circuit blocks authorized for the individual FPGA; and

wherein comparing separately inside the individual FPGA each individual IP circuit block listed in the device license information to each individual IP circuit block on the list identifying the at least one controlled IP circuit block that has been loaded into the individual FPGA to determine whether each of the at least one controlled IP circuit block is authorized for use in the individual FPGA comprises comparing separately inside the individual FPGA each individual IP circuit block listed in the list of controlled IP circuit blocks authorized for the individual FPGA contained in the IP license certificate to each individual IP circuit block listed in the list identifying the at least one controlled IP circuit block that has been loaded into the individual FPGA to determine whether each of the at least one controlled IP circuit block is authorized for use in the individual FPGA.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI CORPORATION; MICROSEMI SEMICONDUCTOR (U.S.), INC.; MICROSEMI FREQUENCY AND TIME CORPORATION; MICROSEMI COMMUNICATIONS, INC.; MICROSEMI SOC CORP.; MICROSEMI CORP. - POWER PRODUCTS GROUP; MICROSEMI CORP. - RF INTEGRATED SOLUTIONS
Reel/Frame 046251/0391 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI CORPORATION; MICROSEMI SEMICONDUCTOR (U.S.) INC. (F/K/A LEGERITY, INC., ZARLINK SEMICONDUCTOR (V.N.) INC., CENTELLAX, INC., AND ZARLINK SEMICONDUCTOR (U.S.) INC.); MICROSEMI FREQUENCY AND TIME CORPORATION (F/K/A SYMMETRICON, INC.); MICROSEMI COMMUNICATIONS, INC. (F/K/A VITESSE SEMICONDUCTOR CORPORATION); MICROSEMI SOC CORP. (F/K/A ACTEL CORPORATION); MICROSEMI CORP. - POWER PRODUCTS GROUP (F/K/A ADVANCED POWER TECHNOLOGY INC.); MICROSEMI CORP. - RF INTEGRATED SOLUTIONS (F/K/A AML COMMUNICATIONS, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037691/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2015
From: NEWELL, G. RICHARD; EKAS, PAUL
To: MICROSEMI SOC CORPORATION
Reel/Frame 035043/0958 →
Continuity (2)
Provisional Application 61945387 · Feb 27, 2014
Related Publication 20150242615A1 · Aug 27, 2015