The Ultimate Guide to Choosing WordPress Pros and Cons
Subhadeep fpga-vs-mcu
1. ESD Assignment – FGPA vs. Microcontroller
By Subhadeep karan(M.Tech-IS )(IIS2011004)
INTRODUCTION
FPGA stands for Field programmable gate array is an integrated circuit designed to be configured
after manufacturing, hence it is called field programmable. It’s an integrated circuit that contains
programmable logic components called “Logic Blocks”, and a hierarchy of reconfigurable
interconnects that allow the blocks to “wired together” – Somewhat like many (changeable) logic
gates that can be inter-wired in (many) different configurations. Generally, every logic cell combines
a few binary inputs (typically between 3 and 10) to one or two outputs according to a Boolean logic
function specified in the user program.
A microcontroller is a small computer on a single integrated circuit containing a processor core,
memory, programmable input/output peripherals, and instruction set that the programmer must
follow in order to write code for that microcontroller which restricts it to certain tasks.
DICHOTOMY
Surge of FPGA
In the recent years, the FPGA has witnessed amazing growth in the size and the performance of
FPGAs, thanks to the number of factors, including the ferocious acceptance of the finer chip
geometries down to 28nm, higher levels of integration, the use of faster serial and communication
links, specialized cores, enhanced logic and innovative designs from the major FPGA vendors.
Interim, the overall performance growth curve of the conventional microprocessors have somewhat
mollified due to power density hurdles, which have limited clock rates to around 1.5-2 GHz because
the faster the new processors go hotter they get. This power density barrier has been somewhat
mitigated by the egression of multicore processor, but as the number of core increases these devices
bring their own set of issues including how to make the optimal use of the parallelism while
automatic parallelization tools, lag far behind.
Performance per watt of power
Operational speeds of FPGAs are relatively around a clock rates measured in a few hundreds of
megahertz and having the potential to perform tens of thousands of calculations per clock cycle
while operating in the low “tens of watts” range of power. Meanwhile, microcontrollers that operate
in the same power band have significantly lower processing functionality. Typically a similarly power
rated microcontrollers may run at 1-2GHz clock rate, or roughly 4 or 5 times as fast as an FPGA, but
it will be much more limited in how many operations it can perform per clock cycle, with a maximum
typically in the range of four or eight operations it can perform per clock. This means that FPGA can
provide 50-100 times the performance per watt of power consumed than a microcontroller. This
might seem to give FPGA unbeatable edge over microcontroller but the advantage of FPGAs in these
applications is not clear cut. These factors are algorithm suitability, floating point vs. fixed point
number representation, and general difficulties associated with developing FPGA software.
2. Floating point calculations
A second issue when considering a choice between FPGA and microcontrollers is the fact that FPGAs
are not particularly well suited to floating point calculations, which microcontrollers address with
well-developed vector math engines. While FPGAs can perform these types of calculations, it
requires an undue amount of logic to implement them, which limits the calculation density of the
FPGA and negates much of its computational advantage and value. If an application requires high-
precision floating point-calculations, then it is probably not a good candidate for implementation on
an FPGA. Even high precision fixed point calculations require a large quantity of logic cells to
implement.
Implementation challenges
Suitability of FPGA or microcontroller to a project is also decided by the degree of difficulty that
confronts a system designer tasked with implementing the application and the talent and resources
available for the work. The challenges of designing with traditional microcontrollers are well
established and long familiar. On the other side, while FPGA development tools have dramatically
meliorated over the last few years, it still takes specialized talent to develop a code for FPGA. And
even with expert talent, FPGA development often takes much longer than an equivalent
development task for a microcontroller using a high level language like C or C++. This is partly due to
the tedium demands of the itinerant nature of FPGA code development and the associated long
synthesis/simulation/execution design cycle.
Interfaces
There are other less critical considerations, such as which sensor interfaces are required by an
application, which may also play into the FPGA vs. Microcontroller decision. For example, if custom
or legacy interfaces such as serial front panel data port (SFPDP) are needed for the application and
which may not be supported on a modern processor/controller; it might be preferable to use an
FPGA. FPGAs have an inherent flexibility that enables them to be tailored to connect to a sensor
stream as in the above case of legacy or custom interfaces. Microcontrollers are limited to the
interfaces provided on-chip. FPGAs, on the other hand provide high speed SERDES links that can be
configured as a wide range of standard interfaces. In addition, the large number of discrete I/O pins
on an FPGA can often be used to implement standard or custom parallel bus interfaces. When this
I/O flexibility is combined with directly attached memories.
Algorithm suitability
FPGA’s work best on the problems that can be described as “embarrassingly parallel,” that is,
problems that can be easily and efficiently divided into many parallel, often repetitive,
computational tasks. Many applications in the military and aerospace environment fall into the class
of problem, including radar range and azimuth compression, beam forming and image processing.
On the other hand, there are types of computational problems for which FPGAs are not ideal, such
target classification and moving target indication problems.
Problems like these, that are by nature unpredictable and dynamic are much better performed on
the traditional microcontrollers because they require a more dynamic type of parallelization that is
unsuitable for FPGAs, whose strongpoint is repetitive operations.
3. Cores
FPGAs devices are particularly suitable for parallel algorithms implementation. However, sequential
algorithms, especially those that don’t demand huge processing power, are easier to implement as a
program for a microprocessor. In many applications it would be convenient to have both a
microprocessor and a FPGA array. Of course, one can have a separate RISC CUPU and FPGA chips.
But they can be also combined in one chip (Soft cores), leading to less power consumption, simpler
board layout and fewer problems with signal integrity and EMI.
Soft cores are usually used to create a FPGA based System-on-chip. In this case a CPU core controls
the work of the circuit and does some random calculations, and other parts of the circuit are
responsible for interfacing and parallel processing.(Soft core processors provide several advantages
over custom designed processors such as flexibility, reduced cost, platform independence and
greater immunity to obsolescence.)
Power desideratum
FPGAs are notoriously power hungry as compared to the microcontrollers due to the factors such as
transistor leakage currents lead to high static power consumption that is independent of logic
implementation within the FPGA.
FPGA also lacks the sleep mode as it’s in microcontrollers which also contribute to its low power
consumption.
Summary
Microcontroller Analysis
Advantages Disadvantages
Easy to program Paying for functionality that is not being used
Guaranteed Reliability More costly
Power Saver mode Lower performance
Easy to change design functionality Might not provide required interfaces(obsolete)
Short time-to-market
FPGA Analysis
Advantages Disadvantages
High performance , Re-configurability Difficult to design and debug
IP protection and reuse Constant power usage
Exact functionality is provided as needed Harder to change design functionality
Lower cost(NRE) Long time to market
4. Bibliography
1. http://www.differencebetween.net/technology/difference-between-fpga-and-
microcontroller/www-1-core-com
2. www.pressexposure-com
3. www-fpgajournal-com
4. http://www.edaboard.com/thread26691.html
5. http://rtcmagazine.com/articles/view/102015
6. http://www.cwcembedded.com/assets/files/unsecure/Article-RTC-February-2011.pdf
7. www.electronics-stackexchange-com
8. http://www.xilinx.com/support/documentation/white_papers/wp213.pdf
9. http://www.ece.msstate.edu/courses/design/ece4532/2002_fall/av_switchbox/rd/Micro
controller%20VS%20FPGA.pdf
10. Pieter Anemaet , Thijs van As,P.A.M.Anemaet, T.vanAs.
“Microprocessor Soft-Cores:An Evaluation of Design Methods and Concepts on FPGA”.