ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

What are SPLDs, CPLDs and FPGAs?

Updated on October 4, 2015
Altera Stratix IV GX FPGA
Altera Stratix IV GX FPGA | Source

There are three types of microelectronic devices. Two of them are usually known. These two are memory and microprocessor. Everybody at least know what such devices are. There is one another group of devices, that is not so commonly known. I speak about logic devices. Logic devices, shortly speaking, are basic building block of all digital microelectronic devices. Logic devices are used to implement specific functions, such as device interfacing, data communications, digital signal processing and so on. Actually, logic devices can handle every function that is needed in digital device.

About 50 years ago, logic devices were discrete. It means, system was built using thousands of single chips, that were connected together with tons of wires. Everything is OK, if systems are small and need no improvement. But the problems appeared in circuit design stage. It was too difficult to modify such systems after it were built. That was the reason, why PLDs and other programmable devices appeared.

GAL SPLD device
GAL SPLD device | Source

SPLD

PLD stands for Programmable Logic Device. Basically, it is an electronic component that is used to build reconfigurable digital circuits. Typical logic elements have functions, that are defined in the process of manufacturing. The PLD's functions are undefined, so it can be programmed. Let's say you have several TTL logic elements. They can be simple replaced by one of PLD device, so the circuit becomes not so complex. PLD is used to describe all different types of programmable devices. There are 3 main groups of such devices. It is SPLD (Simple PLD), CPLD (Complex PLD) and FPGA (Field Programmable Gate Array). Sometimes PLD term is used while speaking about SPLD devices. There are many various SPLD devices such as PLA (Programmable Logic Array), PAL (Programmable Array Logic) and GAL (Generic Array Logic).

SPLDs have many advantages, comparing to typical logic elements. First of all, the one element can be used instead of several logic elements. One element requires less board area. The number of pins is smaller, so the tracing process becomes not so complex. Also one element consumes less power. Also, such elements allow to make changes in the logic circuit without rewiring. The SPLD simply can be changed with another one. This can be used for fixing errors or updating the whole system.

The structure of SPLD device is quite simple. It consists of many connected cells. These cells usually contains AND and OR gates and some flip-flops. Boolean logic equations can be built into those cells. There are specialized programming languages used to program logic functions into these cells. The hardware realization can be made using ABEL or PALASM programming languages. Also it can be built using schematic capture tools. It allows user to draw logic circuit that is needed.

Internal CPLD structure
Internal CPLD structure

CPLD

The next step in evolution of PLD devices were CPLD devices. It is Complex Programmable logic devices. Basically, this type of PLD contains many SPLD type devices, that interconnect with each other. PLD blocks are called macro-cells. They are connected by global interconnection matrix. So, it comes, that each PLD block (macro-cell) can be programmed. Also, the interconnection matrix also can be programmed. The advantages comparing it with SPLD are it's usability and capacity. CPLD can handle much more logical elements and functions that typical SPLD device. Also, CPLD devices can be reprogrammed.

FPGA structure
FPGA structure | Source

FPGA

FPGA stand for Field Programmable Gate Array. It is named as field programmable, because its internal structure can be programmed on the field. It means, that an engineer, can make FPGA to work as it is needed. FPGA is capable to handle almost any hardware design. It is used to develop new devices that will be manufactured as ASICs. Also, FPGA can be used to develop various custom systems that meet specific needs.

The FPGA evolved from CPLD devices but its architecture is completely different. The structure has 3 parts: logic blocks, interconnection blocks and input/output blocks. Input/output blocks are connected with I/O pins on the package. Logic blocks consists of LUTs (look-up-tables) and flip flops. They are used to implement various logic functions. The interconnection blocks allow to connect logic blocks together. Interconnection also can be programmed.

FPGA has more flexible architecture than CPLD has. Various systems can be implement on FPGA. It can work as DSP, micro-controller or even micro-processor. Verilog or VHDL programming languages are used while working with FPGA. The possibilities of FPGA help engineers to develop new products and systems.

Main brands of PLD devices

There are several market leaders that produce various SPLD, CPLD and FPGA chips. The 2 market leading companies are Xilinx and Altera. Lattice is the 3rd player with distinctively lower market share.

Xilinx is well known market leader in FPGA manufacturing for many years. Xilinx offers various products and solutions. Spartan series became very popular among students and small companies. While other lines like Virtex and others are quite popular in high-end companies.

Altera is another well-known market leader that provides Cyclone, Arria and Stratix series. Quite huge amount of users chooses Altera because of better development software solutions comparing to Xilinx.

Lattice Semiconductors is known for low cost and low power solutions and has its place among users.

The device brand and tools choice always depends on problem that you are solving. It is very useful to analyze products and solutions provided by all manufacturers and make a final decision. The product choice may also depend on your personal experience, cost and user community you are working with. If you are a student it is likely that your first choise will be made by your university and you meet one of those devices in the lab. The same will happen with programming language choice.

Wich language you prefer?

See results

HDL programming languages

Hardware description languages (or simply HDLs) are used to program a PLD. SPLD device such as PAL or GAL can be programmed using PALASM, ABEL or CUPL languages. Verilog and VHDL are higher-level HDLs and are used to program CPLD and FPGA devices.

Both VHDL and Verilog are HDLs used to describe digital and mixed signal systems. It is hard to tell which language to learn (Verilog or VHDL). It mostly depends on your personal needs and tools you are using. Some FPGAs will do better with VHDL and some with Verilog. It also depends on user community you are in. If most of your colleagues are working with VHDL it is likely that you will start using VHDL and vice versa.

Some time ago a real language war was running. Simple wars usually take place on the Internet community. Remember Intel vs AMD, PIC vs AVR and similar discussions. Both HDL languages mentioned have their advantages and disadvantages. To put arguments in short it can be said that VHDL is more complex and more academic language. It has complex syntax and requires completely different mindset comparing to traditional languages (e.g. C). While programming with VHDL programmer must write more code, it end up with many errors but it ends up with perfect result. Verilog is simpler language, its syntax is similar to C, and it does not require starting thinking differently. The code compiles smooth but it can end up with hidden tricky bugs.

It is not important wich language you choose. It is important to understand how to use it.

VHDL and Verilog Comparison

VHDL
Verilog
Strongly-typed
Weakly-typed
Verbose
Concise
Deterministic
Can be deterministic only in some cases
Very different comparing to C syntax
C like syntax

Comments

Submit a Comment

  • Silwen profile imageAUTHOR

    Silwen 

    2 years ago from Europe

    Hello. It is very hard to answer this question in few short sentences. I suppose this topic requires a full hub, so thank you for idea.

    To answer your question it must be said that the main difference and advantage of FPGA over MCU is that FPGA doesn't have a fixed HW structure. The structure of FPGA is programmable according to user applications. It means, that the user decides how every pin should be used and so on. Hardware structure and functions of FPGA is completely defined by user, while microcontrollers has predefined structure and functions (e.g. 8 digital I/O pins, 4 analog and etc). FPGA allows user to make his own decision and program HW as he/she needs.

  • alikhan3 profile image

    StormsHalted 

    2 years ago from Karachi, Pakistan

    Hey can you list some advantages of FPGA over a microcontroller

working

This website uses cookies

As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

Show Details
Necessary
HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
LoginThis is necessary to sign in to the HubPages Service.
Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
AkismetThis is used to detect comment spam. (Privacy Policy)
HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
Features
Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
MavenThis supports the Maven widget and search functionality. (Privacy Policy)
Marketing
Google AdSenseThis is an ad network. (Privacy Policy)
Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
Index ExchangeThis is an ad network. (Privacy Policy)
SovrnThis is an ad network. (Privacy Policy)
Facebook AdsThis is an ad network. (Privacy Policy)
Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
AppNexusThis is an ad network. (Privacy Policy)
OpenxThis is an ad network. (Privacy Policy)
Rubicon ProjectThis is an ad network. (Privacy Policy)
TripleLiftThis is an ad network. (Privacy Policy)
Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
Statistics
Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)