Intel makes a PAC N3000 which has an FPGA to accelerate the data plane.
Miroslaw worked many years as a software designers, optimising software. You can have problems in jumps, loops, cache use, etc. So the first task is to find the hotspot. That is the problem you will try to solve on the FPGA. Since it’s FPGA, it’s anyway still flexible so you can change later if needed. You put as much as possible on the hardware, but you can’t put everything on there.
When you use an FPGA, the moving of data between the FPGA and the software CPU may become the bottleneck. So this must be taken into account right away.