Programmable logic devices (PLDs) like PLA, PAL, CPLD and FPGA allow implementing logic circuits using programmable switches. PLA and PAL have programmable AND planes and OR planes to implement sum-of-products logic. PALs are simpler than PLAs with fixed OR planes. CPLDs contain multiple PAL-like blocks with programmable interconnects. FPGAs provide programmable logic blocks and interconnects to implement larger circuits without AND/OR planes. All PLDs require programming using CAD tools to set the switches for the desired logic function.