Complex programmable logic device
A complex programmable logic device (CPLD) is a programmable logic device with complexity between that of programmable array logic (PAL) and field-programmable gate arrays (FPGA), and architectural features of both. The main building block of the CPLD is a macrocell, which contains logic implementing disjunctive normal form expressions and more specialized logic operations.