A compiler intermediate representation for reconfigurable fabrics

  • Authors:
  • Zhi Guo;Betul Buyukkurt;John Cortes;Abhishek Mitra;Walild Najjar

  • Affiliations:
  • Brocade Communications Systems, San Jose, CA;Department of Computer Science and Engineering, University of California, Riverside, Riverside, CA;Department of Computer Science and Engineering, University of California, Riverside, Riverside, CA;Department of Computer Science and Engineering, University of California, Riverside, Riverside, CA;Department of Computer Science and Engineering, University of California, Riverside, Riverside, CA

  • Venue:
  • International Journal of Parallel Programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Configurable computing relies on the expression of a computation as a circuit. Its main purpose is the hardware based acceleration of programs. Configurable computing has received renewed interest with the recent rapid increase in both size and speed of FPGAs. One of the major obstacles in the way of wider adoption of (re)configurable computing is the lack of high-level tools that support the efficient mapping of programs expressed in high-level languages (HLL) to reconfigurable fabrics. The major difficulty in such a mapping is the translation from a temporal execution model to a spatial execution model. An intermediate representation (IR) is the central structure around which tools such as compilers and synthesis tools are built. In this paper we propose an IR specifically designed for reconfigurable fabrics: CIRRF (Compiler Intermediate Representation for Reconfigurable Fabrics). We describe the design of CIRRF and its initial implementation as part of the ROCCC compiler for translating C code to VHDL. CIRRF is designed to support the creation of a datapath and the scheduling of operations on it. It provides support for buffers, look-up tables, predication and pipelining in the datapath. One of the important features of CIRRF, and ROCCC, is its support for the import of pre-designed IP cores into the original C source code allowing the user to leverage the huge wealth of existing IP cores while programming the configurable platform using a HLL. Using experiments and examples we show that CIRRF is a solid foundation to generate high-performance hardware.