В CPLD логическая функция реализуеться на жесткой многовходовой логике состоящей из элементов НЕ, И, ИЛИ. В FPGA - логические функции реализуются ячейкам памяти с несколькими входами. То есть для каждого состояния входов(адрес) в ячейку памяти заноситься значение (данные).
Наличие PLL или блоков дополнительной памяти, DSP блоков не существенно.