7 ms·
FPGAs are "Field Programmable Gate Arrays". AKA, reprogrammable logic circuits. Some stuff is just better done using a processor than an FPGA. Basically, when
by MayeulC 5y ago
FPGAs are "Field Programmable Gate Arrays". AKA, reprogrammable logic circuits. Some stuff is just better done using a processor than an FPGA.
Basically, when using an FPGA, you have a finite number of gates you can use: it's like saying "code anything you want, it must be less than 1k lines".
Sequential logic, that's very convoluted with lots of condition, and not performance-critical will be a very good fit for CPUs, while the FPGA remains useful for high-troughoutput, parallel work, and specialized computing elements.
So you can just have a processor plus an FPGA on the same board. But if you need a small fraction of an FPGA, you might as well use the rest to implement a CPU.
And instead of designing your own instruction set, compiler, debugger, etc, you might want to pick an existing one, preferably the best match to your requirements.
You can also modify the instruction set of the CPU to make use of more specific functionality you integrate on the FPGA. And implementing it this way makes it easier to share resources (registers, memory, peripherals).
Of course, there is a performance penalty (frequency and energy) compared to using a "real" transistor-based CPU, and that's one of the reasons manufacturers sometimes integrate ARM cores in their designs.