 CPLDs are meant for simpler designs while FPGAs are meant for more complex designs.In general, CPLDs are a good choice for wide combinational logic applications, whereas FPGAs are more suitable for large state machines such as microprocessors.These are microprocessor circuits that contain some fixed functions and other functions that can be altered by code running on the processor.