Page 1 of 1

CPLD lost it's memory

Posted: Tue May 20, 2025 11:43 pm
by jds
I hadn't used my Rockwell Forth system for a while, and now that I've powered it up again it doesn't work. After a short investigation it looks like the CPLD isn't working. I can pop it out of its socket, power up and get the same result as when it's in the socket. It's there mainly for the address decoding so the R65F11 still starts up, it just has no external RAM or Development ROM.

It's an Altera EPM7064, which I thought would hold it's program for a very long time. I'm a bit stuck for reprogramming it as I'll have to install Quartus on another computer and hunt out the programmer. But at least I still have the source code.

Has anyone else seen CPLD's fail in this way?

Re: CPLD lost it's memory

Posted: Wed May 21, 2025 1:13 am
by plasmo
Is it EPM7064 or EPM7064S? The -S means you can verify it in-situ via the 10-pin JTAG header. The CPLD should hold its program for 20 years, although it has limited programming cycles, like 100 cycles. My guess is more time it was reprogrammed, the shorter the data retention time. I’ve not had experienced EPM7xxx data loss and some of my EPM7xxx had 100+ programming cycles.
Bill

Re: CPLD lost it's memory

Posted: Wed May 21, 2025 5:44 am
by BigDumbDinosaur
jds wrote:
Has anyone else seen CPLD's fail in this way?

Retention life deteriorates with each programming cycle, which is typical of these devices.  In theory, the claimed data retention life of a device is usually unchanged as long as you don’t exceed the maximum allowed number of programming cycles.  Your device is likely “worn out” from too many cycles, is older than you think, or both.

Re: CPLD lost it's memory

Posted: Wed May 21, 2025 12:29 pm
by Dr Jefyll
jds wrote:
After a short investigation it looks like the CPLD isn't working.
How short an investigation? Best to be careful about jumping to conclusions (been there, done that, as have we all).

You've said you can pop it out of its socket, power up and get the same result as when it's in the socket. I don't know all the details, but is that 100% conclusive? Are there alternative explanations? Just a friendly reminder... :)

-- Jeff

Re: CPLD lost it's memory

Posted: Wed May 21, 2025 6:32 pm
by richardc64
BigDumbDinosaur wrote:
jds wrote:
Has anyone else seen CPLD's fail in this way?

Retention life deteriorates with each programming cycle, which is typical of these devices.  In theory, the claimed data retention life of a device is usually unchanged as long as you don’t exceed the maximum allowed number of programming cycles.  Your device is likely “worn out” from too many cycles, is older than you think, or both.
Extending the concern to other programmable devices, does endurance or longevity apply only to the individual bits or bytes of an EEPROM or the sectors of a Flash device that have been programmed? And if only half of an EEPROM or Flash has been in use and is approaching its End of Life, for whatever reason, would the unused bytes or sectors still have 10,000 programming cycles and 10 years of data retention left to them? Or is the devices' usability limited to 10,000 cycles/10yrs, no matter how much of it has been programmed?

Re: CPLD lost it's memory

Posted: Wed May 21, 2025 7:59 pm
by GARTHWILSON
richardc64 wrote:
Extending the concern to other programmable devices, does endurance or longevity apply only to the individual bits or bytes of an EEPROM or the sectors of a Flash device that have been programmed? And if only half of an EEPROM or Flash has been in use and is approaching its End of Life, for whatever reason, would the unused bytes or sectors still have 10,000 programming cycles and 10 years of data retention left to them? Or is the devices' usability limited to 10,000 cycles/10yrs, no matter how much of it has been programmed?
Individual sectors can be worn out while unused ones in the same IC are still as good as new.  The ones that are approaching their life expectancy should be marked as such, so that writing a new version of the same file for example goes to newer sectors.  In the flash memories I've worked with, changing even one byte in a sector re-writes the entire sector; so if you're going to do multiple bytes in the same sector, it's best to read it out, modify it, then put it back, so you only get one erase-program cycle wearing things out.

Re: CPLD lost it's memory

Posted: Wed May 21, 2025 9:34 pm
by BigDumbDinosaur
richardc64 wrote:
Extending the concern to other programmable devices, does endurance or longevity apply only to the individual bits or bytes of an EEPROM or the sectors of a Flash device that have been programmed?

I can’t speak with authority about flash devices or EEPROMs, but wearout in UV-erasable EPROMs seems to occur cell-by-cell.  I use the 27C256 (32Kb × 8) in my POC units, of which only the range from $1000-$3FFF (12 KB) is actually programmed.  After several EPROMs had worn out from many cycles (possible several hundred—I don’t keep track), I tried programming them using a different, unused address range to see what would happen.  They programmed and verified without error, demonstrating that the unused cells remain “fresh,” even in old parts.

Your CPLD uses CMOS EEPROM technology, which means it is subject to the same wearout effects as seen in conventional EEPROMs.