As CPLDs and FPGAs become more advanced the differences between the two device types will continue to blur.
While this trend may appear to make the two types more difficult to keep apart, the architectural advantage of CPLDs combining low cost, non-volatile configuration, and macro cells with predictable timing characteristics will likely be sufficient to maintain a product differentiation for the foreseeable future.
Architecture wise--Basic Cell FPGA -- CLB CPLD-- MAcrocell,LAB's
There are a few major programmable logic architecture available today. Each architecture typically has vendor-specific sub-variants within each type. The major types include: