The Spartan-6 devices have a POST_CONFIG_CRC feature which is used for continuous readback of the configuration memory.This feature enables SEU checking during runtime of the device.
The value used by the configuration logic by default is a software calculated CRC value. There is also an option method of using a hardware calculated CRC value. When using the hardware method for calculating the CRC, the first readback of the device sets the CRC value and subsequent readback is compared to that value.
Some designs have been seen to fail the post_config_crc checking due to a software issue with the generation of the CRC value.
Other designs using the I/O DRP might also fail when the DRP port is accessed. How should this issue be managed?
This issue is due to the software-generated CRC value not covering all of the explicit components listed in the ".ncd" file. If a design has this issue, the post_config_crc fails very soon after configuration. This does not happen on all designs as there are only a small set of components excluded from the CRC calculations.
The hardware CRC can be used if issues are seen with the default software-generated CRC. This can be enabled by setting the following constraint in the UCF file:
Config post_crc_source = first_readback;
The hardware-generated CRC provides the same level of protection over the device, and ensures the correct CRC value is used.
The software-calculated CRC value is to be corrected in the 13.1 release of the ISE software.
The I/O DRP port is supposed to be masked out of the Post Config CRC calculations, but this is not occurring properly, and when the I/O DRP is used in the design, the post configuration CRC feature reports errors. This issue is to be resolved in the 13.1 version of the tools. If tool support for this feature is required before then, contact Technical Support.