Timer/Counter/PWM chip suggestion



I may run out of timer resources on the processor I'm using and have been looking around for an SPI (or I2C) connected device that can:

* 16 to 24 bit timers
* 4 or more inputs that can be triggered by rising or falling edges. <= 1 MHz.
* Prescaler for each channel.
* Quadrature would be nice, but not required.
* 4 outputs of either variable freq. or PWM. <= 250 KHz.

Does anyone know of a stand-alone device like this? I have been looking, but no luck so far. What about a CPLD or FPGA - can they be configured to do this and any suggestions on manufacturer and part?

Thanks,
Dave

.