This document discusses programmable logic devices including PLA, PAL, and ROM. It provides examples of implementing logic functions using a PLA and converting between BCD and gray code using a PLA. ROM is described as a programmable logic device that can also be viewed as a memory, with the inputs serving as addresses and the outputs as stored data. An example is given of designing a BCD to 7-segment display controller using a ROM.