What is FPGA? | Introduction to FPGAsApril 17, 2021 2021-12-05 18:38
What is FPGA? | Introduction to FPGAs
What is FPGA? | Introduction to FPGAs
In this article we will look into the basic of FPGA, the difference between ASIC and FPGA, the overview of the FPGA market, and how one can program the FPGA.
So, let’s start with the basic of field programmable gate arrays. Field Programmable Gate Arrays (FPGA) is 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 a software implemented on a silicon wafer using 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 sequentially execute commands; you can places as many commands as you wish on storage, and ask your processor to read the storage and execute them one‐by‐one. This leads to 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 could be a semiconducting material wafer, which may have up to many hundred thousand digital Cells. Every cell will perform straightforward tasks like adding two bits, keeping eight bits (acting as a very small RAM) or acting as a small decoder, multiplexer or several gates.
However, initially, they are not connected. Your role, as a hardware engineer, is to design a program that commands each cell what task to perform and also connect to other cells in the correct order. FPGAs are programmable, and their interconnection will shape based on your design. They must be programmed on every time on startup since most of them cannot retain their configuration on power‐down, as they use RAM technology.
A good example can be the human brain. The human brain does not have a central processor, but processes data in a parallel manner, involving trillions of neurons corresponds to Digital Cells in FPGAs who participate in millions of different tasks at the same time. Each Neuron can perform a small task, but when trillions of them work together, they easily outperform the world fastest supercomputers.
As we tend to mention, an FPGA can have up to many hundred thousand digital cells. this provides you with the flexibility to form a hundred multipliers, that every cell shows the multiplication of 2 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 sequentially execute instructions one by one.
Now, let’s take a look at the difference between FPGA and ASIC. Actually, ASIC (Application Specified Integrated Circuit) is a silicon wafer that has the program already hard‐coded inside. Besides FPGAs (and CPLDs), all ICs that you see are ASICs. They are static and cannot be reprogrammed. FPGAs themselves can be considered ASICs that were designed to be programmable. One of the advantages ASICs hold over FPGAs is their operating speed. Since their interconnection is 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 Date 2021‐04‐17 Words 791 Characters 6129 Page 1 (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.
You might have a question Who makes the FPGAs in today’s market?. Several vendors hold the majority of the market in their hand. Xilinx, Intel, Actel, Lattice, QuickLogic and Achronix (Specialized in very-high-speed FPGAs). Xilinx and Altera are the main manufacturers. You can find their ICs on an eCommerce platform like Amazon or other electronic distributors. A development kit is often a decent way to start out and that I extremely counselled them just in case you’ve got no previous expertise with these chips.
Let’s take a look at How can you write programs in FPGA? FPGA programs are called HDLs (Hardware Description Language). It is very different from the normal code you may have already seen. FPGA coding required parallel‐programming knowledge and extensive experience in Digital Design. VHDL and Verilog are the widely used languages used to create applications in this technology. you’ll hunt for their tutorial on Google, and rest assured, you’ll find several.
I hope this article helped to make things more clear for you as you move on this path.