3 ms·
What you're missing is the fundamental reason industry uses FPGA's, flexibility and parallelism. An ASIC will always outpeform an FPGA in some specialized front
by pseudosudoer 8y ago
What you're missing is the fundamental reason industry uses FPGA's, flexibility and parallelism. An ASIC will always outpeform an FPGA in some specialized front, but the development time and cost associated with an ASIC is signifantly longer and more expensive respectively. An FPGA can be plopped into your design, and use cases can be added without refabbing the entire PCB. Good luck doing that with an ASIC...
A microcontroller is more flexible than a FPGA, but it lacks the ability to parallelize (as many) tasks as an FPGA. Hardware interrupts on a uC are definitely not free and can impact performance from the overhead associated with processing the interrupt, where an FPGA can process any interrupt for "free" without impacting the performance of any parallel module. Real time apps can be implemented on uC's and DSP's, but may not be able to meet them depending on the time constraints on your system.
FPGA's and GPU's were never meant to compete. GPU's will destroy an FPGA on any parallel data processing task, but that data needs to first be populated onto the GPU. A GPU's bottleneck is (usually) never it's processing speed, but it's data population (RAM) bandwidth. A GPU will never have direct access to hardware, where as an FPGA does. The overall speed of a GPU exceeds that of an FPGA for specialized parallel processing, but the latency of a GPU is larger.
The point is that FPGA's are specialized, and so are other co-processors/hardware. They should be used only when it makes sense to use them, and more ad-hoc or flexible solutions are not viable.