The difference between CPLD and FPGA are discussed in the article. But before that, some basic information about CPLD and FPGA is discussed below.
Complex Programmable Logic Device (CPLD)
- Complex Programmable Logic Device (CPLD) is an erasable programmable logic device that can be programmed with a schematic or behavioral design.
- CPLD is nothing but a type of complex PLD based on EPROM or EEPROM technology.
- A basic CPLD cell is called a macrocell, which is the CPLD implementation of a CLB. It is composed of AND gate arrays and is surrounded by interconnect area.
- They are characterized by an architecture offering high speed, predictable timing, and simple software.
- Also referred to as multilevel arrays, devices that combine a number of PAL type circuits on the same chip.
- Logic blocks are programmable AND and fixed OR structure with fewer product terms than most PAL devices.
- PALs and GALs are available in small sizes, equivalent to a few hundred logic gates. For bigger circuits (logic), complex PLDs or CPLDs can be used.
- CPLDs can replace thousands or even hundreds of thousands of logic gates.
- Some CPLDs are programmed using a PAL programmer but this method results inconvenient for devices with hundreds of pins.
- The second method of programming is to solder the device to its printed circuit board, then feed it with a serial data stream from a personal computer.
- CPLD contains a circuit which decodes the data stream and configures the CPLD to perform its specified logic function.
Field Programmable Gate Arrays (FPGAs)
- FPGAs offer a number of configurable logic blocks (CLBs) which contains programmable combinational logic and registers for sequential circuits.
- There is also a set of input/output blocks that can be configured as fixed input, fixed output, or bidirectional.
- Outputs have tristate nature and registers can be used for latching incoming or outgoing data.
- FPGAs use a grid of logic gates, similar to that of an ordinary gate array, but programming is done by the customer, not by the manufacturer.
- In FPGA, all the configurable logic blocks and input/output blocks can be programmable interconnected to implement virtually any logic circuit.
- FPGAs are generally programmed after being soldered down to the circuit board, in the same way as larger CPLDs.
- In larger FPGAs, the configuration is volatile and must be re-loaded into the device whenever power is applied or different functionality is required.
Difference between CPLD and FPGA
|1||CPLD stands for Complex Programmable Logic Device.||FPGA stands for Field Programmable Gate Array.|
|2||CPLD provide highest performance, but they also contain fewer registers than FPGAs.||FPGAs are offered in a wide density range, from few thousand gates to several million gates.|
|3||CPLDs are ideal for complex blocks with a large number of inputs.||FPGA architecture is more granular compared to CPLD, making it suitable for designs with large number of simple blocks with few numbers of inputs.|
|4||CPLDs can implement large functions in one pass through logic array.||FPGAs can’t implement large functions in one pass through the logic array.|
|5||CPLD’s resources are partitioned into logic blocks, imposing restrictions on how they may be used.||FPGAs contain arrays of logic cells and are less partitioned than CPLDs.|
|6||The number of input-output pins offered by CPLD is significantly higher.||A number of input-output pins offered on the FPGA are less than CPLD.|
|7||Any design can fit into a 100 K gate CPLD, i.e. space required on silicon is less.||The same design requires 150 K gate FPGA i.e. space required on silicon is more.|
|8||CPLD based design needs less board space, board layout complexity, cost and Bill Of Material (BOM) than FPGA.||FPGA based design needs increased board space, board layout complexity, cost and Bill Of Material (BOM).|
|9||CPLD doesn’t require any memory store configuration program.||FPGA invariably require one or more configuration PROM, depending on the size of FPGA used.|
|10||CPLDs with their course-grain architecture and dedicated routing offer the advantage of predictable timing and end-of-use.||Due to granular architecture and segmented routing of FPGAs, it is difficult to predict the speed performance of a design until it is targeted in the software.|
|11||CPLD consume more power than FPGA devices.||FPGA consumes less power than CPLD.|
|12||Process technologies are EPROM, EEPROM and FLASH.||Process technologies are SRAM, anti-fuse and EEPROM.|
|13||Applications of CPLD bus interfaces, complex state machines, fast memory interfaces, wide detectors, PAL device integration.||FPGA applications Logic consolidation, board integration, replaces absolute devices, simple state machines, complex controllers/interfaces.|