A Complex Programmable logic device (CPLD) is a logic
device with completely programmable AND/OR arrays and macrocells.
Macrocells are the main building blocks of a CPLD, which contain complex
logic operations and logic for implementing disjunctive normal form
expressions. AND/OR arrays are completely reprogrammable and responsible
for performing various logic functions.