* Fixed point.
* Resource starved. Limited # logic blocks, using DRAM from an FPGA is a massive PITA and you pay dearly for every 100kb of SRAM.
* You figure out how to pipeline so that every cell gets used on every cycle.
* HDL languages
* Terribly long compile+route times...
* ...and sometimes routing fails even if your program is well-formed and "ought to" fit on the chip!
* Proprietary toolchains
* Expensive kits (don't let the $20 kits fool you -- you'll spend thousands if you're really using an FPGA for what they're good at)
* Even more expensive test equipment (makes the thousands you spent on the FPGA kit look cheap)
The flipside is that GPUs don't do deterministic latency or talking to hardware. If you need to ship billions of samples per second from your JESD204B ADC back across your PCIe bus (to get them into your GPU, of course) then there's only one chip that fits the bill: the mighty FPGA.
That's an understatement.
http://ark.intel.com/products/84685/Intel-Xeon-Processor-E7-... http://www.amazon.com/Nvidia-Accelerator-passive-cooling-900...
Now, I guess you can decent performance out of cheaper chips already, but paying $5000 for an Intel CPU is hardly rare.