There's a growing demand for synthesising hardware from higher-level, general purpose programming languages, with minimal user interaction. High level synthesis often speeds up, and significantly lowers the cost of, hardware development.
PipeComp is a high-level synthesis system developed at the Department of Control Engineering and Information Technology. It consists of frontends, that processes the programming languages, and backends, that generate hardware descriptions. Its intermediate representation is the HIG dataflow graph.
This document describes the development of a PipeComp frontend that transforms C source code into HIG dataflow graph. The software is implemented in the Java programming language, using the ANTLR parser generator.
The document reviews the general functioning of compilers, some of the more popular parser generators, and some possible dataflow based analyses. It describes the exact specification of the program, the design process, and the implementation of the software, including special considerations necessary for parsing C source code, transforming it into SSA (static single assignment) form, and producing the dataflow graph. Finally, the document presents examples of the whole process of compilation, including compound expressions, the handling of arrays and structures, branching and loops.