Cyclone III + EPCQ AS configuration corruption / flash wipe
Hi,
We recently have started having some issues with a design that we have been using for several years now. Basically, the problem is that there is intermittent FPGA booting, eventually total failure to boot. From checking some things (CONF_DONE, etc) it looks like the FPGA is not being configured at all during boot. Reading the program memory from the EPCQ serial flash (using Quartus examine feature) reveals that for some reason or another, the memory is being entirely wiped (all contents FF).
I don't see any note about behavior like this in the datasheet for the memory. Additionally, since it is serial flash, there is a dedicated opcode (with write protect) that needs to be setup in order to wipe the whole device. So, we have been having a hard time figuring out what could cause this since an accidental erase command is entirely unlikely. Like I mentioned earlier- we have reused this design for more than 10 years. However, in the most recent implementation of the design, we needed to run some cables for certain signals, like the clock for the Cyclone III.
Is there some sort of undocumented behavior like irregular/ dropout clock causing this flash wipe? Could power rail deregulation cause this? We also have some motors nearby, which are not really shielded to prevent stray EMI (seems unlikely this would cause it, or corruption instead of total wipe). Has anyone else seen this problem? The serial flash we are using is EPCQ64ASI16N. The FPGA is Cyclone III EP3C25.
Something to add is that the chip does not become damaged by means of this wipe- re-programming via ASP with Quartus restores the program, verification passes and functionality is restored. However we have seen the problem return after some time, meaning that there is an external stimulus for this problem.
Thanks