This document discusses the architecture of CPLDs and FPGAs. CPLDs consist of PAL-like blocks, I/O blocks, and a programmable interconnect structure. FPGAs consist of an array of configurable logic blocks, I/O blocks, and programmable row and column interconnect channels. The document compares CPLDs and FPGAs, noting that FPGAs have a more complex architecture and unpredictable delays while CPLDs are less complex, cheaper, and have more predictable delays. The conclusion restates that the document discussed the architecture of CPLDs and FPGAs and listed their comparisons.