Click image to enlarge
Figure 1: Example PLD, with 12 inputs, 8 product terms and 4 macrocells
PLDs can have hundreds of macrocells with up to 16 product terms driving each macrocell. The AND and OR gates within the product terms can be interconnected to form highly flexible custom logic functions. The macrocells are typically clocked, and their outputs can be fed back into the product term array. This allows state machines to be created.