What are FPGAs?
FPGAs are programmable digital logic chips. What that means is that you can program them to do almost any digital function. Here's the general workflow when working with FPGAs:
You use a computer to describe a "logic function" that you want. You might draw a schematic, or create a text file describing the function, doesn't matter.
You compile the "logic function" on your computer, using a software provided by the FPGA vendor. That creates a binary file that can be downloaded into the FPGA.
You connect a cable from your computer to the FPGA, and download the binary file to the FPGA.
That's it! Your FPGA behaves according to your "logic function".
Keep in mind that
You can download FPGAs as many time as you want - no limit - with different functionalities every time if you want. If you make a mistake in your design, just fix your "logic function", re-compile and re-download it. No PCB, solder or component to change.
The designs can run much faster than if you were to design a board with discrete components, since everything runs within the FPGA, on its silicon die.
FPGAs loose their functionality when the power goes away (like RAM in a computer that looses its content). You have to re-download them when power goes back up to restore the functionality.
Who makes FPGAs?
There are (at least) 5 companies making FPGAs in the world. The first two (Xilinx and Altera) hold the bulk of the market.
Xilinx is the biggest name in the FPGA world. It tends to be the density and technology leader.
Altera is the second FPGA heavyweight, also a well-known name.
Lattice, Actel, Quicklogic are much smaller and are the "specialty shops".
Xilinx
Xilinx has traditionally been the silicon technology leader. Xilinx general philosophy is to provide all the