A Complex Programmable Logic Device (CPLD) is a pre-assembled, freely configurable logic device. These devices, which are a further development of Programmable Array Logic( PAL) and Programmable Logic Devices( PLD), are characterized by high processing speeds, simple design, predictable timing and easy programming. They consist of PAL-like functional units that are programmed via a switching matrix of their connections.
Complex Programmable Logic Devices functional units include AND gates and OR gates, caches, registers, and input/output systems that can be linked together. Here, different logic units are combined into larger macro function blocks in the form of a matrix. The complete CPLD device can contain up to 500 logics.
Unlike Simple Programmable Logic Devices( SPLD), Complex Programmable Logic Devices (CPLD) are formed from many SPLDs. The individual SPLD logics are linked together with a switching matrix. CPLDs are typically memory-based Programmable Logic Devices (PLD) whose logic design is stored in Erasable PROMs ( EPROM), Electrically Erasable PROMs( EEPROM), or Flash memory. The main difference between PLDs and CPLDs is their higher complexity.