logo elektroda
logo elektroda
X
logo elektroda

Understanding the Key Differences: CPLD vs. FPGA in Electronics Design

*Piotrek* 17004 3
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • #1 3545002
    *Piotrek*
    Level 15  
    Maybe for some it is stupid but what is the difference between CPLD and FPGA ??
  • ADVERTISEMENT
  • #2 3547056
    MNCHH
    Level 17  
    Hello

    FPGA (Field Programmable Gate Array) is a kind of programmable logic circuit. For a designer, it has the same functionality as an ASIC, but it can be reprogrammed many times after it has been manufactured, purchased and installed in the target device. The largest suppliers of this type of systems are Altera and Xilinx as well as Actel, Atmel, Cypress, Lattice Semiconductor, QuickLogic.

    FPGAs are typically slower than their ASICs and draw more power. However, they have many other advantages such as shorter design times, lower production costs (for small series). In addition, it is now possible to perform the so-called Hard-Copy of FPGA, i.e. an integrated circuit with functionality such as a project uploaded to the FPGA. Such a system is faster and consumes less power.

    In general, FPGAs include a matrixed CLB logic. Individual blocks are connected with each other by means of Routing Channels and programmable matrices of connection keys located at the intersection of horizontal and vertical routes. On the periphery of the logic block matrix are programmable IOB (input / output) blocks. FPGA structures contain from 64 to tens of thousands of logic blocks with a very diverse structure. Logic blocks can be very complex, then there are fewer in the system, or relatively simple and then there are more of them. Typically, complex logical blocks contain two or more RAM memories to create look-up tables (LUTs) and two or more flip-flops. In most systems, these are four-input arrays (RAM memory with a capacity of 16 bits). In systems with a simpler structure, logic blocks usually contain two-input combination function generation circuits or four-input multiplexers and possibly flip-flops.

    Modern FPGAs can be reprogrammed 'on the fly', which leads to the idea of a reconfigurable computer or reconfigurable system - i.e. systems that can adapt their structure to better meet the tasks they are facing at a given moment.

    FPGAs are used in digital signal processing, aviation and military, in the prototype phase of ASICs and many other fields. For example, Xilinx FPGAs have successfully proven themselves in the mission to Mars, which ended with the landing of the Spirit and Opportunity rovers.

    A hardware description language such as Verilog or VHDL is used to define the behavior of the FPGA. Then, using the synthesis tools, a list of connections is generated, which is then mapped to a specific system in the implementation process. It should be noted that the synthesis process allows the creation of logic circuits of any size, while the implementation process is an attempt to enter it into a specific FPGA, where there may not be enough resources to implement the given logic. The FPGA is programmed with a binary file that contains information about the system configuration.

    Reconfigurable systems can be divided according to the type of technology used to remember their configuration:

    * SRAM - Based on static memory technology, they lose their configuration in the event of a power outage.
    * EPROM - Usually programmable only once. Alternatively, you can clear their configuration with ultraviolet radiation.
    * EEPROM - Reusable. They retain their configuration in the event of a power failure.
    * FLASH - Reusable. Typically, FLASH cells are smaller than their corresponding EEPROM cells, therefore such systems are less expensive to manufacture.
    * fuse, anti-fuse - Programmable only once. Old type.

    FPGAs are one of two families of highly integrated programmable digital logic circuits - the second group is CPLD (Complex Programmable Logic Device) with a slightly different architecture.

    Whereas CPLD (Complex Programmable Logic Device) - complex programmable electronic circuits.

    These circuits are conceptually similar to SPLDs, but are more complex, i.e. have greater logical resources and functional capabilities. They have a hierarchical architecture based on logical macrocells, which contain from several dozen to several hundred. Typically 4 to 16 macrocells are combined into larger functional blocks. A greater number of blocks are connected by means of a key connection matrix, the switching capacity of which determines to what extent the system is programmable.

    Regards
  • ADVERTISEMENT
  • #3 3559999
    Lukasz Baj
    Level 11  
    FPGAs and CPLDs differ internally (although these differences are sometimes barely visible). FPGAs are a matrix of identical logic blocks between which there are connection lines (for connecting logic inside the FPGA system). Most often, SRAM is used to configure these chips.

    The CPLD system can be imagined as a combination of several (a dozen or so) SPLD systems (e.g. GAL) - called macrocells. There are connection lines between the macrocells. EEPROM (FLASH) memory is most often used to configure CPLDs.
  • #4 3562396
    *Piotrek*
    Level 15  
    Thanks for all the answers, they made me clear what and how.
    Greetings, Piotrek
ADVERTISEMENT