Various techniques for controlling use of configuration data for and/or a
design implemented as user logic in a configurable PLD (programmable
logic device) include programming the configurable PLD using
configuration data provided by a secure device. The programmed
configurable PLD includes user logic, a configurable device authorization
code generator and a comparator. The user logic is immediately disabled
after it is loaded into the configurable device. A configurable device
authorization code is generated in the configurable device authorization
code generator in the programmed configurable PLD and is sent to the
comparator. A secure device authorization code is generated by a secure
device authorization code generator and also is sent to the comparator.
The comparator compares the two inputs and, if the configurable device
authorization code and secure device authorization code are identical,
the user logic is then enabled. The configurable device authorization
codes and secure device authorization codes may be generated in various
ways, including using pseudo-random number generators, encryptors and/or
decryptors in combination in the configurable device and the secure
device. Various apparatus for implementing the present invention include
a secure device configured to generate a secure device signal on which
the secure device authorization code is based and a configuration data
storage which provides programming instructions for controlling use of
configuration data that generates the user logic and required
functionalities in the configurable device.