Methods of providing error correction in configuration bitstreams for
programmable logic devices (PLDs). While any error correction method can
be used, in one embodiment a Hamming code is applied to instructions in
the configuration bitstream, while a product code is applied to
configuration data. Thus, the higher overhead required for a Hamming code
applies to only a few words in the bitstream. The instructions are
corrected on receipt of the word that includes the Hamming code, so the
instructions are executed correctly even if a transmission error has
occurred. However, configuration data can be stored in the configuration
memory without correction. With a product code, the exact location of an
erroneous bit is not known until the end of the transmission, when a
parity word is received. At this time, the PLD can go back and correct
erroneous bits in the configuration data prior to enabling the newly
loaded design.