FPGA vs. Microcontroller

FPGA stands for Field Programmable Gate Array. They are programmable integrated circuits made up of a large number configurable logic blocks (CLBs), fixed function blocks and memory blocks which can be used to perform complex digital computations. The CLBs are the basic and most important unit of FPGA. CLBs are made up of Look Up Tables (LUTs) and flip-flops.

Microcontroller is a small computer on a single IC containing a processor, memory, I/O peripherals and program memory (Flash/RAM).

Microcontrollers execute the program stored in their ROM memory. The programs for microcontrollers are written in high level languages like C or in assembly language. These languages are sequential/procedural in nature i.e. one line execute after the previous and before the next.

On the other hand FPGAs are wired circuits which can make things work in a parallel fashion i.e. more than one things can be executed at the same time. The FPGAs are programmed using HDLs like Verilog or VHDL which are concurrent languages.

FPGA is faster than a microcontroller in most cases. For example we have three switches and three LEDs. Whenever the switch is on the corresponding LED lights up.

Let us first consider the case of a microcontroller. The switches are connected to the input ports of the microcontroller while the LEDs are connected to the output port. The controller has a processor which processes the inputs and decides the corresponding output. When all three switches are pressed each input one by one is processed by the processor and the LED is lit up. This all happens very quickly in a very tight loop but the time taken by the processor is thrice than if there was a single switch-LED system (Sequential Processing).

However in the case of FPGA a connection (like a wired connection) is simply made between the switch and the LED and there is a separate connection for each switch so all switch-LED systems work in parallel (Concurrent Processing). Also the time taken for processing is saved. Thus the speed of FPGA is much faster than a microcontroller as illustrated in this example.

This is a trivial example in which the time delay does not matter much but in case of large complex circuits, small delays add up to make larger ones.

Leave a Reply

Your email address will not be published. Required fields are marked *