Suppose you have a device, connected to the CPLD input. The device, on a clock edge, output the data to the CPLD.
Now, that same clock is used by the CPLD. The CPLD must have time to process the data at input, and set the correct result at the input of it's output registers, *before* the next clock edge.
There's 2 main things involved here. First, when the first clock edge occur, and the device send the new data to the CPLD, there's a small delay between clock edge, and valid data. Next, there's a delay needed by the CPLD to evaluate those data, and produce correct result.
Only when the result is currectly evaluated, may the next clock edge occur (where those resulting data get shifted into the CPLD flip-flop).
So, the max clock frequency depend on
- The CPLD speed grade (how fast it can evaluate expressions, by it's logic block).
- The delay between clock edge and the time at which data is valid at CPLD input pins. This can be told to the synthesizer and P&R with parameters.
The output delay can also be specified, so the 'compiler' can minimize output delay to the next chip.
All of this affect the maximum frequency on the CPLD.