Alan,
The way I use CPLDs is a little different than the way they are intended to be used. An XC2C32A CPLD can run with a 50MHz to 100MHz clock. It is intended to be a replacement for fast 'glue' logic and many if not most applications utilize this kind of speed.
Designing a microstep drive or a servodrive doesn't require and cannot use anywhere near that kind of clock speed. 5MHz or less is plenty and clock frequency accuracy is of little consequence. We get +/-5% over temperature and supply voltage tolerances. That is why an RC Schmidt inverter oscillator is more than adequate.
I chose the CoolRunner II for characteristics that are vital to me. Foremost is zero DC supply current. Its supply current is a linear function of clock frequency and at 5MHz it's not much (100uA or less). Other CPLDs draw 100mA or more and that is a deal-breaker in my applications. Second, the CoolRunner II has 'true' CMOS inputs. They can be set to 'float' and 'Schmidt' which makes them ideal for quasi-analog inputs. Also the device and its development system is intuitive to use and free of vices.
Finally, it turns out 32 and 64 macrocells are sufficient (barely, but just sufficient) to squeeze out fairly sophisticated designs. The QFN package (QFN32 and QFN48) accommodates only the 32 and 64 macrocell parts. The 128, 256 and larger macrocell parts come in enormous VQFP-100 and VQFP-144 or BGA packages. I cannot use such large parts owing to product size constraints and I'm unwilling to use BGA because of the package expense and the inability to visually inspect solder connections.
Mariss