Field Programmable Gate Arrays (FPGA) are perhaps the evolution of technology as we enter the new age. To get a brighter vision, we must first explain what a Micro Processor is. A Microprocessor is software that implemented on a silicon wafer by means of correct transistor connections. In other words, a simple instruction in assembly [ADD EAX, 0x04], which adds 4 to the EAX register, is no more than a command which is read by the processor (the software implemented on a silicon wafer), and executed after.Due to their nature, processors execute commands in a sequential manner; you can places as many commands as you wish on a storage, and ask your processor to read the storage and execute them one-by-one. This leads into a productive task being done, such as booting a computer, or showing your operating system on your screen.So you might ask what an FPGA is? An FPGA is a silicon wafer, which can have up to several hundred thousand digital Cells. Each cell can perform simple tasks such as adding 2 bits, keeping 8 bits (acting as a very small RAM) or acting as a small multiplexer, decoder or several gates. However, initially they are not connected to each other. Your role, as a hardware engineer, is to design a program that commands each cell what task to perform, and also connect the to other cells in the correct order. FPGAs are programmable, and their interconnection will shaped based on your design. They must be programmed each time on startup, since most of them cannot retain their configuration after power-down, as they use RAM technology.Visit buy epm9560arc208 for more details .
A good example can be the human brain. The human brain does not have a central processor, but processes data in parallel manner, involving trillions of neurons (corresponds to Digital Cells in FPGAs) who participate in millions of differenet tasks at the same time. Each Neuron can perform a small task, but when trillions of them work together, they easily outperform world fastest supercomputers.As we mentioned, an FPGA can have up to several hundred thousand digital cells. This gives you the ability to create 100 multipliers, that each can show the multiplication of two numbers at the same time. This is the very nature of FPGAs; the ability to perform unlimited tasks in parallel, something that cannot be achieved in processors, as they can execute instructions one-by-one in a sequential manner.
2. FPGA vs ASIC
ASIC (Application Specified Integrated Circuit) is a sillicon wafer that has the program already hard-coded inside. Beside FPGAs (and CPLDs), all ICs that you see are ASICs. They are static and cannot be reprogrammed. FPGAs themselves can be considered as ASICs that were design to be programmable. One of the advantages ASICs hold over FPGAs, is their operating speed. Since their interconnection are not dynamic (they are already established and cannot be changed), they do not face connection delays as FPGAs do. On the downside, manufacturing an ASIC can be a very expensive process (270K$ for example), where an FPGA can be obtained anywhere between 20$ to 10,000$.Of course, an ASIC can be cheaper than the equivalent FPGA once in mass-production.Therefore, FPGAs are ideal for development cycle, low-end applications or military-grade application where pricing is not an issue.