Förderjahr 2019 / Project Call #14 / ProjektID: 4501 / Projekt: Cloud_FPGA_tool
nMigen is a new language to describe the function of hardware. We will provide a compiler for this language and a example implementation to use the language for solutions deployed on FPGA.
This project will make it easier for engineers to design Internet devices like backbone routers and firewalls, but also data accelerators for video, machine learning, AI, encryption or compression. The new language will specifically support the concept of streaming data. As an example for this concept, the project will implement a TCP/IP stack totally in hardware. This part of the project itself will allow it to make FPGAs available as accelerators accessible over the Internet.
FPGAs are already the backbone of the Internet in many routers. Their unique capability is to process data packets as wirespeed of 100Gbit. FPGAs are able to look into data packets without interrupting the flow of the data on the Backbone. This functionlaity is needed to implement security guards at the security gates between different security domains like the public Internet and VPN routers. Up to now hardware descriptionlanguages like Verilog and VHDL had to be used to implement this functionalities. This languages are very old and only a few desiners are able to write in Verilog or VHDL.
This is the reason why we implement the new language nMigen, which is Python based. This fact makes it more attractive for software people to implement solutions for FPGAs.