Hi
There are three big difference:
1. the internal archi.. the fpga use lookuptables that are 4x1 mem cells,
and the most new cpld cells have one ff+aditional logic array of and+or gates.
Some kind of special fpga have also some special blocks for implement
of system on chip(soc) that usefull for build uc/up/dsp inside.
2. Most fpga based on ram cells so evry time you power up you need
boot them from mem or aditional uc/uc/dsp, also you can cange it desing
in system work(careful).
the cpld based in otp fuse or flash fuse so you don't need boot them.
3. the most of the cpld are not big like the fgpa
most cpld are in range of 1k-50k(~100k) gates equvalent
fpga today you can find in range over some milion gates equvalent
cpld are more popular is small design for glue logic some state mechine
and some fast app, etc..
fpga are more popular in big design when is need of mem and machine
that need a lot of ff,also in system on chips(for reduce space or
for develop design before asic productions).
Best regards. 8)