Good place to start this would be here:<p><a href="https://github.com/wkoszek/freebsd_netfpga" rel="nofollow">https://github.com/wkoszek/freebsd_netfpga</a><p><a href="https://wiki.freebsd.org/FPGA/" rel="nofollow">https://wiki.freebsd.org/FPGA/</a><p><a href="https://www.freshports.org/devel/xc3sprog/" rel="nofollow">https://www.freshports.org/devel/xc3sprog/</a><p>It's a FreeBSD NetFPGA driver for an older 1G card that I wrote during my internship 8 years ago, and a little ecosystem to make development more functional. I could program the FPGA from the FreeBSD and synthesize the code on FreeBSD that time.<p>What you say is very hard, though. Speeds which are achieved with modern ASICs are hard to compete with, because ASICs do a lot of advanced stuff with DMAs, interrupts, checksum offloading. This might be doable with an expensive hardware, but nobody in DYI community has money to do this.<p>Additionally the tools for synthesis are proprietary, and everything touching FPGA is pretty much proprietary too. Looking into date/author of the synthesis is as far as I could get:<p><a href="https://github.com/wkoszek/libxbf" rel="nofollow">https://github.com/wkoszek/libxbf</a><p>(can only open file and tell you where the bitstream starts; not what it actually is) So the road to complete freedom goes through ASIC world, in my opinion.