This document discusses programmable logic devices (PLDs). It describes the basic structures of read-only memory (ROM) and introduces different types of PLDs including programmable logic array (PLA) and programmable array logic (PAL). The key characteristics of PLA and PAL are explained such as their configurable AND/OR arrays and how they can be programmed to implement different logic functions. Examples of 3-input PLA and PAL structures and their truth tables are also provided.