3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

What's an FPGA? Whats an CPLD?

What's an FPGA?  Like what's it compared to a microcontroller?  Please no links to google or wikipedia :P  I mean, from what I've read, it just seems like theyre inferior to a microcontroller, so I don't get why people use them.

8 answers
sort by: active | newest | oldest
May 27, 2011. 7:48 PMarackoff says:
Microcontrollers typically can only execute "single thread" instructions, performing basic bitwise math on a couple of bytes of input in a single instruction. The single thread execution clock rate typically around 10-100MHz for a decent micro PALES in comparison to the capabilities of even a modest ($6) FPGA. Your typical $6 FPGA can implement a good dozen or more fairly complex parallel processes. You're designing HARDWARE configurations, so you can pack ridiculous purpose-built efficiency and optimization into a single hardware process.

For example, a simple HVAC control system might implement a network of temperature sensors to turn on heating or cooling systems in certain parts of a building. A single threaded system, like a microcontroller, would have to be instructed to read each sensor, perhaps perform some scaling math, check a few conditions, then appropriately change the states of the HVAC machinery.

On an FPGA, the hardware could be configured to run the sensor data in, have combinatorial lookup tables preprogrammed into static registers, controlling EVERY OUTPUT SIMULTANEOUSLY or enabled by one of many global clocks.

An FPGA can execute functions on data-spaces hundreds of bits wide at the full speed (limited only by propagation delay) allowable by the physics of the chip (100MHz is a good starting point for a well-designed FPGA config),
compared to a microcontroller operating on an 8, 16, or 32 bit data space, one word at a time at 1/10 the speed of the FPGA.
Apr 8, 2011. 5:50 PMmishal.abe says:
When you compile a program and burn/download it to your target FPGA/CPLD, the internal structure of the device get changed. That is, the logic gates inside the chip rearrange to perform as per your logic. So changes are happened inside the HARDWARE itself.

But its completely different for a Micro-controller. It works with a SOFTWARE. When you burn a program's hex code to a micro-controller, it will be stored in the program memory of the controller and when you power-ON the circuit, the program starts executing from the first instruction.
Nov 26, 2009. 7:19 PMRe-design says:
People use the because they fit the purpose.  If you need a hammer why use a sledge.


Oct 5, 2010. 9:06 AMmohtaprashantrocks says:
RITE :)
Jun 3, 2010. 1:17 PMkelseymh says:
Six months after your question, and since you decided no one had answered it, there's a new Instructable that should give you what you want.
Nov 26, 2009. 11:44 PMsteveastrouk says:
They'll do things way beyond what any microcontroller can do.
Nov 26, 2009. 7:23 PMseandogue says:
Inferior is not a term I'd use.

An FPGA is a Field Programmable Logic Array

A CLPD is a Complex Programmable Logic Device (ie, it dconsists of severzl bundled PLDs.

Re-design and Nacho explained in part why they're used. The rest is up to you and google (sorry, but I'm not paid to do your footwork)
Nov 26, 2009. 3:58 PMNachoMahma says:
.  They are great for one-off and low production runs.

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!