5739 - iCE40 Ultra Plus, Ultra/Ulralite, LP/HX: How safe is the iCE40 device configuration at power-up?

5739 - iCE40 Ultra Plus, Ultra/Ulralite, LP/HX: How safe is the iCE40 device configuration at power-up?

The data from the user's *.nvcm file is programmed into the NVCM. This *.nvcm file has a data CRC embedded at the end. In addition to the CRC, the configuration logic automatically generates an ECC pattern for each 64 byte page, which is stored in the NVCM.

Each time the device is powered up or CRESET_B toggled, the internal state machine performs the ECC check on each page, automatically correcting any incorrect data. After all of the data is transferred to the CRAM, the device compares the CRC value programmed into the NVCM (from the *.nvcm file) with the value calculated by the device. If the CRC comparison passes, the CDONE will go true, indicating that the device is programmed correctly.