CPLD vs FPGA
CPLDs (Complex Programmable Logic Device) and FPGAs (Field Programmable Gate Array) are two logic devices that are beginning to blur due to the improvements in technology and the introduction of one’s features to the other. The main difference between FPGAs and CPLDs is the complexity or the number of logic gates contained in each. Although actual numbers can greatly vary between different models, CPLDs contain anywhere from a few thousand gates to tens of thousands. In comparison, FPGAs have tens of thousands to a few million. Because of the huge difference in the number of gates, it is easy to say that you can build more complex logic with FPGAs than with CPLDs.
One major advantage of having an extremely high number of gates is the ability to have high-level functions embedded into the chip. Rather than creating them yourself, some FPGAs already have adders, multipliers, and many other operators for the most common tasks. The programmer can then focus on the actual goal of the design and not have to worry about the implementation of such functions.
There is also a huge difference between the two when it comes to their architecture. FPGAs use LUTs (Look-up Tables) while a CPLD uses a simpler sum of products (also called a sea of gates). Using LUTs are advantageous as it provides significant savings in processing time as the chip would not need to go through the process of recalculating the sum of products as CPLDs do. LUTs also provide a more flexible interconnection between internal FPGA modules than what a CPLD is capable of.
The last major difference between the two is non-volatile memory. LUTs are a form of memory, but it does not persist once power is removed. CPLDs have non-volatile memory embedded in the chips enabling them to function right away without the need for external ROM. CPLDs are even used to act as a “boot loader” for FPGAs. As already mentioned in the beginning of this article, the line between features is beginning to blur. To eliminate the need for “boot loaders,” makers of FPGAs have begun to embed non-volatile memory into their FPGA chips; thereby making this feature present in both CPLDs and some FPGAs.
Summary:
1.FPGAs are more complex than CPLDs.
2.FPGAs have more high-level, embedded functions than CPLDs.
3.FPGAs use look-up tables while CPLDs use a sum of products.
4.CPLDs have non-volatile memory while FPGAs don’t.