Kiwi: Synthesis of FPGA Circuits from Parallel Programs
Reconfigurable computing technology is well placed to play an important role in the heart of future heterogeneous computing systems. Soon the role of a mainstream software engineer will involve designing programs for processors that contain not only regular CPUs (Central Processing Units) as the authors know them today but also more specialized processing units e.g. the evolution of today's GPUs (Graphics Processor Units) as general purpose computing engines and a version of today's FPGAs (Field-Programmable Gate Arrays) as a Legolike 2D parallel computing resource. This presents a valuable opportunity for efficiently expressing many compute intensive calculations using more parallel computing resources.