.NET hardware acceleration with FPGAs

Hastlayer logo with tagline

The power of FPGAs at the hand of software developers

Hastlayer aims to provide software developers of the .NET platform a tool to accelerate performance-critical parts of their programs with FPGAs, while substiantially increasing performance and drastically reducing power consumption compared to high-end CPUs. Hastlayer automatically generates FPGA-implemented logic circuits from .NET program code and masks the part of the software that was swapped out with a hardware implementation – the surrounding software uses the hardware component just as it would be standard .NET software.

Hastlayer is primarily intended to be used by software developers with no hardware design knowledge, allowing them to utilize the power of FPGAs with their existing skills.

Click here for a short overview video of how to work with Hastlayer. If you want to dive deeper check out the Hastlayer SDK GitHub project for source code, documentation, bug reports and feature requests.


Working with Hastlayer

Using Hastlayer aims to be an experience as seamless as possible, for software developers not having any FPGA design knowledge. The general process of utilizing Hastlayer to convert a piece of software into an FPGA-implemented hardware that delivers the same logic is as following:

  1. A performance-critical part of the software is factored out to a separate assembly (class library).
  2. The Hastlayer class library is added to the software and configured.
  3. Method calls to the performance-critical component are changed to go through Hastlayer. This makes it possible to direct calls to the hardware implementation when it’s ready but keep the option to run the standard software assembly if e.g. an FPGA is not present.
  4. The conversion of the performance-critical assembly is done by Hastlayer: VHDL code is generated which is put into the Hastlayer hardware framework, then synthesized and used to program a connected FPGA with the existing vendor toolchain.
  5. Method calls are now directed to the FPGA and are executed by logic circuits.
  6. The result of the process is then passed back to the software components calling the methods and then the software continues its execution the regular way.

The prototype readily accelerates selected algorithms by multiple orders of magnitude. This is still in a constrained environment, further improvements are needed and technological challenges have to be solved for Hastlayer to be industrially usable.

Click here for a short overview video of how to work with Hastlayer. Check out the SDK to start using Hastlayer.


Why .NET?

Hastlayer can process software written for Microsoft’s .NET platform (which is now open-source and not locked to Microsoft).

One of the advantages of .NET is that a large number of programming languages can be used to write software for it, in a way that as a step all programs, written in either language, will be transformed (compiled) to the same programming language called Common Intermediate Language (CIL).

Since Hastlayer processes CIL programs this means that the input of Hastlayer can be a program written in dozens of programming languages (including several of the most popular ones as C#, C++, Python, PHP, even the now very popular web scripting language JavaScript), thus being readily available for the vast majority of the world’s software developers.