What's the difference between CPLD and an FPGA?
Differences:


Capacity - CPLD usually has less capacity of logic. The largest CPLD may be at a similar level of the smallest FPGA in the mainstream market.
Storage of the image - CPLD can boot by itself while most of the FPGA need to fetch the configuration bitstream from non-volatile storage because they are SRAM based. This impacts the security of the system.
Feature - CPLD only provides gates, or said, logic cells, that can do all kinds of logic algorithms. In addition, FPGA also embedded a lot of hard blocks such as BlockRAM, DSP, TEMAC, PCIe, MGT, microprocessor, etc to make a single chip of FPGA capable of building a integrated full featured system.