Neural FPGA

Neural FPGA GitHub.

Neural FPGA project goal is to produce custom hardware able to do inference over generic neural networks using only open source tools. In order to test our hardware designs we rely on hardware simulations and FPGAs.

Hardware simulation open source tools have been available since long time (see Verilator, Icarus Verilog), but open source tools to generate bitstreams for FPGAs were lacking until recent. Project IceStorm was the first complete tool to program a commercially available FPGA, the Lattice iCE40. Following, the project prjtrellis is documenting the bitstream format for the more capable Lattice ECP5. And others are comming.

On this project we won’t focus on specific FPGAs, but because we would like to run our designs on real hardware we will try to fit our designs to available hardware with open source tools. This for the time being will be Ice40 and ECP5 from Lattice.

The main output of this project are cores that can do inference on generic neural networks trained with TensorFlow.