A built in self test (BIST) circuit is provided for a programmable logic
device (PLD) constructed from fixed or hard core logic that includes
circuitry to write recurring patterns of bits in the configuration memory
in a frame by frame manner and read the cell state to enable the
validation of every configuration bit at power up. The BIST circuitry can
further be used to program the recurring patterns into the configuration
memory, and then read frames of the configuration memory to detect the
occurrence of single event upsets (SEU) that corrupt data in the
configuration memory. The recurring patterns programmed do not require
time consuming functional configuration of the PLD, and can be done in a
production environment after power up without knowledge of how the PLD
will later be configured. No soft logic is needed to form the BIST
circuit, enabling 100% test coverage of the programmable configuration
memory cells.