Bitstream for configuring a PLD with encrypted design data
AssigneeXilinx, Inc.
InventorsStephen M. Trimberger, Raymond C. Pang, Walter N. Sze, Jennifer Wong, Kameswara K. Rao
Life of this patent
Estimating the term…
Abstract
It is sometimes desirable to protect a design used in a PLD from being copied. If the design is stored in a different device from the PLD and read into the PLD through a bitstream, an unencrypted bitstream could be observed and copied as it is being loaded. According to the invention, a bitstream for configuring a PLD with an encrypted design includes unencrypted words for controlling loading of the configuration bitstream and encrypted words that actually specify the design.
Claims20
A bitstream for configuring a PLD with a design comprising:
- a plurality of unencrypted words for controlling loading of configuration data;
- and
- a plurality of data words specifying the design;
- wherein a subset of the plurality of unencrypted words for controlling loading of configuration data indicates whether the plurality of data words specifying the design is a plurality of encrypted words specifying an encrypted design.
A bitstream for configuring a plurality of PLDs comprising:
- a first plurality of words for controlling loading of configuration data into a first PLD;
- and
- a second plurality of words corresponding to the first plurality of words and specifying a design for loading into the first PLD
- a third plurality of words for controlling loading of configuration data into a second PLD;
- and
- a fourth plurality of words corresponding to the third plurality of words and specifying a design for loading into the second PLD;
- wherein at least one of the second and fourth pluralities of words specifying a design is encrypted and the corresponding at least one of the first and third plurality of words is unencrypted.
A method of generating a bitstream with encrypted design data comprising the steps of:
- providing a cipher block starting number;
- forming a cipher block chaining initial value by replacing a portion of the cipher block starting number with a starting address for loading a design into a PLD;
- combining the cipher block chaining initial value with a first word of design data to form a first combined word;
- encrypting the first combined word to form a first word of encrypted data;
- combining the first word of encrypted data with a second word of design data to form a second combined word;
- and
- encrypting the second combined word to form a second word of encrypted data.
Dependencies are inferred from the claim text.