Chips designed to be capable of implementing all manner of random logic. Typically an engineer would describe a design in a hardware description language such as VHDL or Verilog, run it through a logic synthesis tool, and use the output to program the chip to perform the previously described task. PLDs tend to be smaller than FPGAs but have simpler timing characteristics.