Electrical – Comparing FPGA to microcontroller or SOC, assume same functionality, how big can FPGA get

fpgamicrocontrollersoc

Looking at this answer to FPGA's vs Microcontrollershttps://electronics.stackexchange.com/a/4393/127001

It mentions that FPGA is space-limited, and MCU is time-limited. So this got me to thinking.

How big can FPGA get if we assume the system using MCU has the similar application and setup as the FPGA? Would it be safe to assume that system that uses MCU and SoC has the similar answer in this case?

UPDATE:
To clarify, let's use Arduino Uno as a reference for MCU. What would be the physical size of FPGA if you were to use the similar specification of Arduino Uno?

Best Answer

I think you are a little confused about the fundamental difference between the FPGA, a processor, and a microcontroller.

In simple words:

A processor is a special logical device that can do only a specific functionality, like executing a program instruction by instruction. So, since there is a limit to the speed at which the processor can "jump" from line to the next, we say that it is time limited and can not work faster than its maximum. A microcontroller is like a processor but it has memory and is like a system on a chip.

An FPGA is a "scaffold" of logical components, primitive blocks that can be interconnected into larger blocks to perform a specific function. Therefore, if you have enough "components" to make two or three or more identical blocks that can perform the same function, you can run them in parallel, and thus will get the job done faster (just like using several processors to work in parallel). In fact, you can design your own processor(s) and implement them on an FPGA. But the key idea is that if you do not have enough logical components, your are space limited, or better to say, resource limited. The amount of the logic that can be placed on the IC die is limited due to the limited space (and for other reasons).

So, the bottom line is that you can make a really fast system using FPGA, if you have enough FPGA resources (area on which logic components reside), so the ultimate limit is the "size" - which defines how many adders, multipliers, RAM blocks, etc. are given in a particular FPGA chip. As for the processor, there is no way you can make it run faster than its maximum frequency. So, this is where you have the bottleneck - you can not jump to another function before you finished the previous one, but with an FPGA, those functions can be ran together at the same time.

As for the physical sizes, the chips are made of different sizes depending on the amount of resources that should be inside them, and the number of pins. You can look up different parts and compare the sizes in terms of physical dimensions and resource wise. But, as mentioned in the other answers, you should not mix the chip size with the PCB board size that contains all the necessary components to interface a chip.