FPGA doesn't have the instruction pipeline as the command is encoded in the gates themselves. It means that on runtime the FPGA is not turing complete[0] as opposed to the CPU[1].
There is a phrase "data is code and code is data" in security context. The new saying if FPGA would ever replace cpus' as the main computation hardware(as you don't need turing complete when you keep using the same apps[microservices]) is something like "code is execution and execution is code" as you imprint the code in the gates. It would get rid of a whole class/subclass of memory safety vulernabilitie.
This paradigm change is like what webassembly did to the web. The slogan should be "make the bitstream go mainstream" Some made a demo running wasm on fpga[1], not sure if using a cpu or directly
of course you move complexity to compiling, and increase loading speed, all for order of magnitude faster execution
Companies devloped high level synthesis compilers but it's diffcult and challenging as you need to synchronize parallel excution piplines which you don't have to in cpu since it has steady clock rate for each step in the pipeline
A copmany named legup computing(acquired by microchip) compiled memcached/redis applications to fpga and improved perfromance & power efficency by an order of magnitude(10x)
There are a lot of intellectual properties in hardware design as opposed to software so tools and knowledge is scarce.
If anyone works / want to work on this problem hit me up in the comments
[0] Unless you implement a cpu on top of the fpga :)
[1] Assuming infinte memory, which is false, but good enough