Programmable logic devices (PLD) are general purpose devices that can be programmed to implement combinational logic, or combinational logic and sequential state machines. We have been using FPGAs in this course; these are a type of PLD. Other types of PLD are available, and are being developed; see ELM, Chapter 12, and also the ENGN2211 Lecture Notes.