In this article, you will learn what is difference between FPGA and microprocessor or microcontroller? What is difference between hardware based embedded systems design and software based embedded systems design. You may also like to check introduction to field programmable gate arrays article. FPGA has the ability to process multiple instructions at the same time that is they can process instructions in parallel form. On the other hand microprocessors can perform only one instruction at a time that is they can execute instruction only sequentially.
Microprocessors execute software instructions. On the other hand FPGA’s are hardware based design. They actually implement it on hardware through reconfigurable logic building blocks. Microprocessors have instructions executed on programmable hardware unit like arithmetic logic unit and control unit. FPGA’s have actually make hardware based data path and ALU design on hardware. To make things clear lets take one example. Microprocessors are usually programmed with c language and FPGA’s used verilog or VHDL language which is actually converted into logic building blocks on FPGA integrated circuit.
difference between fpga and microprocessor
Below we have two codes one is written in c language which is a microprocessor based designs programming language and other is written in verilog language which is a language of FPGA based designs. Both programs adds eight numbers and store the results in result variable. Both programs performs same functionality to add eight numbers but both programs implement and execute these function in different way. C program implement this code on ALU of microprocessor and FPGA actually implement it through hardware with digital logic circuits based adders as shown below in diagram.
C code gets executed sequentially on a microprocessor through assembly language instructions. So it takes more time to execute all instructions. I will explain it in more detail in later part of this article on difference between FPGA and microprocessor.In case of verilog actual datapath is being created on hardware and it is executed in parallel form and this is the main advantage of hardware based design. Its takes less time for processing of data as shown below:
As shown in above diagram, C code executed on microprocessor with ALU and instructions memory while FPGA makes seven full adders for addition of eight numbers. It is clear from above picture that C code will take more time in execution while FPGA based design less time through actual hardware full adders to implement addition of eight numbers. For example if c code takes one second to execute one instruction so total time it take will be equal to 7 seconds because there are 7 instructions.
Video comparison of FPGA and microprocessor
while FPGA takes only three seconds to perform same task due to parallel function and three steps. Although there are other factors which takes into account. For example FPGA runs on lower frequency that microprocessor but still FPGA takes less time and more efficient in terms of time. So now you should have started making sense on difference between FPGA and microprocessor.
Differences in tabular form
More difference between FPGA based design and microprocessor based design is given below:
Number | FPGA | Microprocessor |
---|---|---|
1 | FPGA can perform multiple instruction at once hence execution or processing is in parallel fashion | Unlike FPGA, Microprocessor can perform only one instruction at a time Because execution is sequential |
2 | For serial communication operations, FPGA’s are no so useful as compare to microprocessors | For serial communication based operations, microprocessors are more useful |
3 | For FPGA based designs, Development period is high | Development board is low for microprocessor or microcontroller based designs |
4 | We can make microprocessor or microcontroller with FPGA which is called microprocessor IP | But We cannot make FPGA with microprocessor |
5 | FPGA’s are like a electronics circuit which we design through wires which is build through reconfigurable logic blocks | While microprocessor execute pieces of code through instructions memory |
6. | FPGA’s have more power consumption | Less power consumption |
7. | Higher data processing throughput | Lower data processing throughput |
8. | Works on lower frequency in the range of mega hertz | Works on higher frequency |
9. | Design is expensive | Cheap price |
I hope that after reading this article, you will be able to know the basic differences between microprocessors and FPGA’s. If you know about more differences, comment on this post so that I can add them in this article.
Now i have cleared about the difference between C code and Verilog code. Thanks for your information.
Thanks, quite clear
Thank you very much for clear explanation of differences.