Abstract A field programmable gate array (FPGA) is provided that can selectively accept or reject selected software (macros). Specifically, configuration data for the FPGA is passed through a configuration port to a decoder. The decoder processes the configuration data to detect locked macros. If a locked macro is detected, the decoder attempts to unlock the locked macro using one or more keys stored in a key table of the FGPA. If an appropriate key is in the key table, the decoder unlocks the locked macro to configure the FPGA. The keys can be pre-programmed into the FGPA by the macro vendor. If configuration data containing a locked macro is used with an FPGA without the appropriate key, configuration of the FPGA fails.
A method for configuring a field programmable gate array (FPGA), the method comprising: pre-programming a first key into a key table of said FPGA; processing configuration data in said FPGA to detect a first locked macro; and unlocking said first locked macro using said first key pre-programmed into said key table.
Claim 2
Independent Claim
51 words
A method for configuring a field programmable gate array (FPGA), the method comprising: pre-programming a first key into a key table of said FPGA; processing configuration data in said FPGA to detect a first locked macro; and unlocking said first locked macro using said first key pre-programmed into said key table.
Claim 3
Dependent Claim
46 words
The method of claim 1 , further comprising: pre-programming a second key into a key table of said FPGA; processing configuration data in said FPGA to detect a second locked macro; and unlocking said second locked macro using said second key pre-programmed into said key table.
Claim 4
Dependent Claim
28 words
The method of claim 1 , wherein the step of unlocking said first locked macro comprises the step of decrypting said first locked macro using said first key.
Claim 5
Dependent Claim
18 words
The method of claim 1 , wherein said first key comprises a header section and a key section.
Claim 6
Dependent Claim
50 words
The method of claim 4 , wherein the step of pre-programming a first key comprises: storing said header section of said first key in a visible header section of said key table; and storing said key section of said first key in an invisible key section of said key table.