M.Sc. Project Data Type Agnosticism with Various High-Level Synthesis Tools

Published in Institute for Theoretical Electrical Engineering and Microelectronics (ITEM), University of Bremen, Germany as M.Sc. Project (not a conference), 2018

High-level synthesis (HLS) stands for the generation of digital register-transfer level designs from two source inputs: (i) an algorithmic description in a high-level language like C/C++ and (ii) HLS compiler pragmas for architecture design. In this M.Sc project it was shown that a data type-agnostic programming methodology empowers Xilinx Vivado HLS to synthesise digital architectures for a plethora of data types without modifications of the C source codes. Especially, the very same code can be used for real-valued and complex- valued data paths by utilising the C++ class and template system. Although Xilinx HLS is readily available for academic research, it still is a proprietary tool. Hence, the scope of this Master Project was to user different HLS tools and dive deep into their compilers. Therefore, I had used academic tools like Bambu, Kiwi and LegUp (it was not yet commercial at that time). Further, I had used commercial tools like Intel HLS, Catapult HLS and Xilinx Vivado.