This document provides an overview of programmable logic device (PLD) architectures, including CPLDs and FPGAs. It describes the evolution of PLDs from early programmable logic arrays (PLAs) and programmable array logic (PAL) devices. Key developments included the introduction of erasable PROMs and generic array logic (GAL) devices that could be reprogrammed. Modern complex PLDs (CPLDs) integrate more logic than SPLDs and can be programmed in-system via hardware connections to the circuit board.