Patent attributes
A method of programming a programmable logic device (PLD) includes identifying and reading an identification code on the PLD. At this point, a plurality of check bits can be generated based on the identification code. These check bits can be used to correct any errant bits in the identification code at a subsequent point in time. A first key is then created using the identification code. The configuration bitstream is encrypted using the first key. The encrypted bitstream and the check bits are then stored for subsequent use. To program the PLD, the stored check bits are transmitted to the PLD and used to correct any errant bits in the identification code at that point in time. A second key is then created using the corrected identification code. The encrypted configuration bitstream is then transmitted to the PLD and decrypted using the second key.