FPGA stands for Field Programmable Gate Array that is an Integrated Circuit designed to be reprogrammable using hardware description language – such as Verilog HDL or VHDL. The fact that FPGAs are reprogrammable distinguishes FPGAs from Application Specific Integrated Circuits (ASICs), which are integrated circuits manufactured to do specific designed task. Although, there are one-time programmable FPGAs, the dominant types are reprogrammable FPGAs.
An Example
Let’s look at this example, you created a logic design and after downloading the new design to the FPGA you notice that you made a mistake, well if you have an FPGA, this won’t be a problem – you can go ahead and change the design by rewriting new hardware code for it, and reprogram your new design to the FPGA. Whereas, if after manufacturing the ASIC you notice a mistake in the design – you can’t just change the design on that specific chip – you need to re-manufacture a new one.
What is inside of an FPGA?
An FPGA is typically based on
a matrix of configurable logic blocks (CLBs) (CLBs are made out of four basic components: lookup tables (LUTs), multiplexers, Full-Adder, and D-flip-flops)
reconfigurable interconnects (these allow the CLBs to be connected with one another)
Input/Output Blocks (they facilitate external connections for the FPGA – they carry signals into or out of the FPGA)
Fixed function logic blocks (such as multiplier or Digital Signal Processing Blocks)
And block RAM (Block RAM serves as a large memory structure or a group of flip-flops tied together)
What are some advantages to an FPGA?
Some advantages to an FPGA in today’s market are:
Performance – faster and parallel processing of signals, which is hard to do for processors because they are typically sequential.
Reprogrammable hardware structure.
Cost - FPGAs are getting cheaper to manufacture; thus, they are getting more popular in today's industry.
Where are FPGAs used? FPGAs are used in
Aerospace & Defense (Missiles and space)
Audio processing (speech recognition)
Medical Devices (Ultrasound, Surgical Systems)
Security (Industrial Imaging)
Automotive (Vehicle networking and connectivity)
Video and Image Processing (HD Video, Digital Displays)
Wireless Communication (Radio, connectivity interfaces)
ASIC Prototyping
many other applications.
What are some FPGA Design Tools?
Some FPGA Design tools are
LabView System Design Software
Altera Software
Xilinx’s Vivado Design Suite.
Where can you purchase an FPGA Development board to start FPGA Programming?
I've put together a list of Xilinx or Altera development boards that are great and reliable for beginners. You can check them out here: https://www.simplyembedded.net/development-boards
Thank you for putting this together!! So many resources in one location. :)