FPGA and Microcontroller (newbie question)

Thread Starter

NY10

Joined Jul 30, 2010
47
What is difference between FPGA and Microcontroller ?

I want to know specific detail as well as general picture and overview.

Please don't just post a link to wikipedia.

I want to hear it from a senior engineer or a person who has some expertise on this topic.

Thanks.
 

bradstormer

Joined Aug 6, 2010
65
FPGA is a type of chip which can perform complex logic functions or even simple ones like AND OR NAND etc. They can contain memory depending on the vender which could be simple flip flops or more complex memory blocks. not all are reprogramable
a micro controller consists of a number of blocks built into it such as program counters, Arithmetic Logic unit (ALU) and memory in the form of RAM and ROM.
So very basicaly FPGA's are a chip that is programable to make it perform a boolean expresion (like a bread board in a chip!), micro-controllers are programed to perform a set of instructions, move data about, manipulate and process it.
for more information on FPGA's look up http://www.fpga4fun.com/FPGAinfo1.html
 

Vaughanabe13

Joined May 4, 2009
102
I'm not a senior engineer but I can still try to answer. FPGA stands for "field-programmable gate array", meaning you have control over a lot of logic gates, including AND, OR, NAND, NOR, XOR, XNOR, registers, flip flops, etc. You program a FPGA by writing in a "HDL" or "Hardware Description Language" such as Verilog or VHDL. These languages are considered "concurrent", meaning all of the logic blocks execute their functions simultaneously. In that way, they can perform tasks much faster than microprocessors, since you have control over your inputs/outputs at the gate level with minimal delay between gates. I think most FPGA's do not have internal memory to store the program, so most board designs include a memory chip to store and load the program upon powerup/reset.

You can think of a microprocessor as the hardware used to execute a sequential C program, and a FPGA as the hardware used to execute a concurrent HDL program.
 
Top