Why FPGA

wondrous

Junior Member level 2
Joined
Oct 2, 2018
Messages
22
Helped
1
Reputation
2
Reaction score
1
Trophy points
3
Activity points
336
Hi everyone,,
I study and do projects in embedded system field , not that expert but a little to let me aske why FPGA , i work on atmel MCU also PIC back their when their are atmel & microchip
Now i try to start ARM cortex M4 for embedded ,
But why what is unique thing that make FPGA so popular and advised to learning it , is it the re_configurabilaty or what else ,
Sorry if it fuzzy by some how ,,
 

Speed and intensive data processing is the main purpose of hardware (ASIC or FPGA) as they do parallel processing.
Software is relatively like a donkey with fetch-execute cycles. You may however run several microprocessors to match.
Software is easy at running complex functions with few statements but FPGA has to go down to lowest levels using RTL or ready-made ips.
 
Hi,

FPGA = configurable hardware. Compare it with a lot of available logic ICs ...
... and by "configuring" the FPGA you set all the connections between the logic ICs to get the desired function. All signal lines are active all the time. All signals are processed all the time in parallel and the speed from input to output is very fast. Within low nanoseconds.

Microcontroller = a software controlled device. It processes one instruction at a time. One instruction after the other. It will take microseconds from input to output.
But you can do really complex calculations.

Example:
Building a floating point multiplier is rather complex done with pure logic ICs. .. but a simple task for an ARM core microcontroller.

***
BTW: this is a frequently asked question. It has been answered in the internet million times. More detailed than forum can do. There are documents from universities, there even are Youtube videos. All you have to do is a simple internet search.

Klaus
 
Thanks for your help and your time
From your replay it seems the speed is major thing
--- Updated ---

Thanks klaus
Really thanks
Yes i can do internet search but here in forum there are experience formed year by year and it obtained freely and with open arms,,
 
Last edited:

There are variants of the FPGA as well, take the below system on chip. Its routable, its permits
general logic design in addition to its standard resources, using Verilog and/or schematic capture.
Lots of analog as you can see. So its a bridge of sorts between FPGA and Analog work.

The onchip resources, multiple copies in many cases. A community that has also done custom resources,
like DDS, Cordic, 74HC equivalents......Note each programmable component comes with a lib of APIs to
control it, generally no need to write drivers for the resource. Basically drag and drop, wire, code with the
APIs.... Note single or dual arm core families.

 

If you want to start FPGA, maybe consider everything will be hard, you will probably learn a lot, and return to programming better. But in general doing code on an arduino is a lot more forgiving.
For signals FPGA's are great "And fast and paralel", but it's never fun to use ram memory. You really need converters and extras. Also compilation takes a loong time, it can be a beast to wrangle.
 

Generally speaking, MCUs are suitable for general-purpose tasks while FPGAs meet the needs of latency-sensitive applications; thats all.
 

A MCU may need resources that a FPGA doesn't, to work at all.

MCUs that store program code externally are an IP leak.

OTP FPGAs can be made to not read back, if you want
to secure your code this will thwart all but serious reverse
engineering.

SRAM based FPGAs are real resource needy and slow to
boot up, and now you need external ROM / PROM / NVM
and keep that happy too.

There is a lot of variety out there to comprehend.
 

Thanks a lots
I imagine that FPGA can be strong , fast , robust and mor reliable than other MCU
That may let me skip ARM For example.
Like jumping from 8_bit MCU to 32_bit without going on 16_bit
 

I have a little MAX10 FPGA board, those are quite nice. Although a bit iffy. These have LVCMOS and differential outputs. and are a "reconfigurable FPGA board". For having any odd board to be reconfigurable you have to know how to interface to a ROM or a smart media card interface. In straight binary. So basically you'd have to set up clocks know the interface, page off the data and find the correct value before you can interface the ROM.
and reconfigure "any odd FPGA".

In most cases I would choose ARM cortex these days. There reconfigure would be so much as to press a mouse button and run a script.
Also they have plenty of RAM. The downside may be the industry thinks the same. And the nicer boards are hard to get.


I do like FPGA when I need a really solid sample and hold. You can clock out data with precise timing because the output is reliant on the clock frequency and not the thread conditions.
 
Last edited:

Cookies are required to use this site. You must accept them to continue using the site. Learn more…