Complex programmable logic device. Such device contains relatively large programmable logical blocks – macrocells, connected to external outputs and internal buses. CPLD functionality is coded in non-volatile memory therefore there is no necessity to reprogram them at startup.