This document discusses array subsystems for implementing logic, including programmable logic arrays (PLAs) and field programmable gate arrays (FPGAs). It describes how PLAs use an AND plane and an OR plane to implement sums-of-products logic functions more efficiently than using read-only memories (ROMs). NOR-NOR PLAs convert the logic to use only NOR gates for improved efficiency. FPGAs build on this concept by using programmable logic blocks containing lookup tables (LUTs) and programmable interconnects to route signals between blocks. This architecture provides flexibility to reprogram the FPGA for different logic functions compared to custom chips.