Is the CRC generated dynamically, and how is it stored and reported
during a CRC readback?
This question concerns the reliability of the 4000XL devices. Specifically, how
susceptable is the device is to CRC errors during readback or configuration in
hostile environments? For information on Single Event Upsets, there are a number
of white-papers on support.xilinx.com which discuss this for the 4000/XL devices.
The CRC signature is generated dynamically from the readback/configuration
stream. However, for readback, if your design has LUT RAMs for example, and
since RAM contents change, the readback CRC will not necessarily match the
configuration CRC. After a CRC signature is generated in the LFSR, it is shifted
out of the LFSR. So, there is no other register to hold the signature. This
reduces the probability of an error by not having a second storage register to
which the CRC is copied.