An acronym for Complex Programmable Logic Device, or Complex PLD. The other, less powerful form of PLD is a SPLDSPLD. CPLDs are similar to SPLDs except that they are significantly higher capacity. A typical CPLD is the equivalent of two to 64 SPLDs. A CPLD typically contains from tens to a few hundred macrocells. A group of eight to 16 macrocells is typically grouped together into a larger function block. The macrocells within a function block are usually fully connected. If a device contains multiple function blocks, then the function blocks are further interconnected. Not all CPLDs are fully connected between function blocks. This is vendor and family specific. Less that 100% connection between function blocks means that there is a chance that the device will not route or may have problems keeping the same pinout between design revisions. The designer must verify the programming logic. In concept, CPLDs consist of multiple PAL-like logic blocks interconnected together via a programmable switch matrix. Typically, each logic block contains 4 to 16 macrocells, depending on the architecture.