1 C Compiler for the VERSAT Reconfigurable Processor Gonc¸alo R. Santos Tecnico´ Lisboa University of Lisbon Email:
[email protected] Abstract—This paper describes de development of a C lan- programmable in assembly using the picoVersat instruction set. guage compiler for picoVersat. picoVersat is the hardware con- The assembler program available for program development is troller for Versat, coarse grain reconfigurable array. The compiler a cumbersome form to port existing algorithms to the Versat is developed as a back-end for the lcc retargetable compiler. The back-end uses a code selection tool for most operations, while platform, most of them written in C or C++. A compiler is some where manually coded. Assembly inline support was added essential for the test and assessement of the Versat platform to the front-end since it was missing from lcc. The compiler capabilities. A first prototype compiler, developed by Rui was integrated into a compilation framework and extensive Santiago [5], exists and was used for the development of some testing was performed. Finally, some limitations were highlighted, examples. However, the compiler is not only not very practical relating to the compiler and picoVersat usage, and some efficiency considerations were addressed. still, but also quite primitive. It supports a limited subset of the C language with C++ alike method invocation, with no Index Terms—Versat, CGRA, picoVersat, C-compiler, lcc back- variables, functions or strucutures. All programming uses the end. picoVersat register names to hold values. Furthermore, the only C++ syntax used is the method invocation from object I.