Saturday, February 19, 2011

§ Difference between CPLD and FPGA


FPGAs and CPLDs are both programmable logic. The main distinction between FPGA and CPLD device architectures is that FPGAs are internally based on Look-up tables (LUTs) while CPLDs form the logic functions with sea-of-gates (e.g. sum of products). The most noticeable difference between a large CPLD and a small FPGA is the presence of onchip non-volatile memory in the CPLD. This distinction is rapidly becoming less relevant, as several of the latest FPGA products also offer models with embedded configuration memory.The characteristic of non-volatility makes the CPLD the device of choice in modern digital designs to perform 'boot loader' functions before handing over control to other devices not having this capability. A good example is where a CPLD is used to load configuration data for an FPGA from non-volatile memory.

CPLD :
1.A complex programmable logic device (CPLD) is a programmable logic device with complexity between that of PALs and FPGAs The building block of a CPLD is the macrocell.

2.CPLDs are easy-to-understand AND-OR structure, offer a single-chip solution with fast pin-topin delays, even for wide input functions.

3. Once programmed, the design can be locked and thus made secure.

4.The limited complexity (<500 flip-flops) means that most CPLDs are used for "glue logic" functions.

5.Non-volatile configuration memory. Unlike many FPGAs, an external configuration ROM isn't required, and the CPLD can function immediately on system start-up.

6.For many CPLD devices, routing constrains most logic blocks to have input and output signals
connected to external pins, reducing opportunities for internal state storage and deeply layered logic.

7.CPLDs have several programmable PLDs which are interconnected via a programmable connections at the global interconnection matrix.

8.In the CPLD way of programming several complete logic functions at once on inividual PLDs and then bringing these PLDs together via programmable connections.

FPGA:
1.Field programmable gate array.FPGA is similar to that of larger CPLDs.

2.FPGAs offer much higher complexity, up to 150,000 flip-flops, and their idle power consumption is reasonably low.

3.Since the configuration bitstream must be reloaded every time power is re-applied, design security is an issue, but the benefits and opportunities of dynamic reconfiguration, even in the end-user system, are an important advantage.

4.FPGAs offer more logic flexibility and more sophisticated system features than CPLDs: clock management, on-chip RAM, DSP functions, (multipliers), and even on-chip microprocessors and Multi-Gigabit Transceivers.

5. Use FPGAs for larger and more complex designs.

6. FPGAs typically have range of gates from tens of thousands to several million.

7.FPGAs on the other hand have individual logic blocks - each block can be programmed to implement a logic function such as AND, OR, NOT etc. These blocks are then connected via programmable switches to implement complete logic functions.

8..In the FPGA way of programming individual AND, OR, NOT logic functions and then putting them together to implement a complete logic function.

NOTE:In general CPLDs are good choice for wide combinational logic applications while FPGAs are more suitable for large state machine.(i.e. microprocessor)
                                                                                                                                                 ~pg

No comments:

Post a Comment

PID Controlled Self balancing Robot using ESP8266 and MPU6050

This ROBOT is made using ESP8266 Node MCU and MPU6050 accelerometer. Motor used here is normal gear motor of 150 rpm with TB6612FNG motor dr...