Field Programmable Gate Arrays (or FPGA) is an amazing that can be reconfigurable for many different uses. It can be changed a unlimited number of times, and there are infinite uses for it. They are configurable thanks to a CLB (configurable logic blocks) matrix.
Any people prefer FPGA over ASIC because of the reprogrammable factor. ASIC (or Application Specific Integrated Circuits) are not reprogrammable. This means that once you get a ASIC, you can’t change its use. ASICs take a lot of time to make, and they are pretty expensive. FPGAs are so cheap most of the buyers are hobbyists.
The main reason that the FPGA is much cost efficient than the ASIC is because of the efficiency of each of them has. But that doesn’t mean that the FPGA isn’t good for high complexity processors. FPGA is basically empty. For the device to work, you need to configure it for it to work as you need it to. This means that if the FPGA doesn’t work, its not because of the device, but because of the configurable file. Learn more at http://www.directics.com/fpga-board/.
With a microcontroller you configure it with a certain programing language. With a FPGA, you design the circuit. There is no limit on what you can use them for.
To configure it, you write a HDL (Hardware Description Language). FPGA store the HDL files and configurations in RAM, while microcontrollers store every bit of information on a flash drive.
You can use Verilog or VHDL as your HDLs, since these are the most popular ones. As you may know, RAM memory is temporal to a point, this means that once you shut down the device, you lose all of the information in it. This means that a FPGA needs to have power to keep all the information on it. This is if
you don’t have a flash chip to store the information.
Since you are able to create the circuit from zero, you can decide which pins and ports to use. You can emulate ports, so you can have more than one. There is obviously a limit to what you can create. FPGAs have a limit in which your circuit can no longer grow or expand. You can make the space greater by having more FPGAs in your configuration.
There are many useful uses for FPGAs that vary from military defense to medical applications. Here are some of the most important ones.
Building a physical circuit can sometimes be better than a FPGA, but with the FPGA you can model this circuit to make sure it will actually work. This is very useful specially for big companies that need to know if a complicated circuit is worth the while.
Several military defense systems use FPGAs to process images. The FPGA can be configurable for many scenarios. These gives them an upper hand since they can have a clearer image of the battlefield.
Also, a lot of medical systems such as scanners poses some kind of FPGAs.
Most of these machines have processors with FPGA to ensure reconfiguration. The intelligent displays on some of these machines are made out of FPGAs as well.