This is an old revision of the document!
My primary research interests are in the domain of reconfigurable computing on field programmable gate arrays (FPGAs). In special, I'm interested in the design and optimization of arithmetic circuits which are tailored for FPGAs. On top of this, I put a special focus on their integration into a high-level synthesis (HLS) flow like the model-based design (MBD) approach. For that I initiated or contributed to a couple of open-source software projects which are listed below.
Origami HLS is an open-source tool for the model-based design of highly optimized FPGA architectures for FPGAs from Matlab/Simulink.
For more information, visit the project website: http://www.uni-kassel.de/go/origami
The PAGSuite provides a suite of tools for the design and the optimization of arithmetic circuits for FPGAs which are based on so-called pipelined adder graphs (PAGs). PAGs are used for different types of constant multiplier problems like the single constant multiplication (SCM), multiple constant multiplication (MCM) and the constant matrix-vector multiplication (CMM). On top of this, tools to design runtime reconfigurabe SCM/MCM/CMM circuits are included.
For more information, visit the project website: http://www.uni-kassel.de/go/pagsuite
FloPoCo is a VHDL code generator for arithmetic cores that was initiated by Florent de Dinechin and Bogdan Pasca. Me and my colleages contributed to several FloPoCo operators and some optimization cores (e.g., the compressor tree optimization and large multiplier optimization). Most of that can be found in the
branch in the GIT repository.
For more information, visit the project website: http://flopoco.gforge.inria.fr
ScaLP is an open source C++ library that acts as a wrapper for different ILP-sovers and provides a nice interface to the developer which is common for all solvers (currently Gurobi, CPLEX, SCIP and LPSOLVE).
To support a natural user interface, it heavily uses the concept of /operator overloading/, i.e., a constraint like x+y⇐31 is exactly written as it is “x+y⇐31”.