Skip to main content
Log in

A Compiler Intermediate Representation for Reconfigurable Fabrics

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aigner, G., Diwan, A., Heine, D.L., Lam, M.S., Moore, D.L., Murphy, B.R., Sapuntzakis, C.: An Overview of the SUIF2 Compiler Infrastructure. Computer Systems Laboratory, Stanford University

  2. Smith, M.D., Holloway, G.: An Introduction to Machine SUIF and its Portable Libraries for Analysis and Optimization. Division of Engineering and Applied Sciences, Harvard University

  3. Guo, Z., Buyukkurt, B., Najjar, W.: Input data reuse in compiling window operations onto reconfigurable hardware. In: ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems, pp. 249–256. ACM Press, New York, NY, June 2004.

  4. Guo, Z., Buyukkurt, B., Najjar, W., Vissers, K.: Optimized generation of data-path from C codes for FPGAs. In: ACM/IEEE Conference on Design, Automation and Test in Europe, pp. 112–117. IEEE Computer Society, Washington, DC, February 2005

  5. Guo Z., Najjar W. and Buyukkurt B. (2008). Efficient hardware code generation for fpgas. ACM Trans. Arch. Code Optim. 5(1): 1–26

    Article  Google Scholar 

  6. Gokhale, M.B., Stone, J.M., Arnold, J., Lalinowski, M.: Stream-oriented FPGA computing in the streams-c high level language. In: IEEE Symposium on FPGAs for Custom Computing Machines (FCCM 2000) (2000)

  7. Tripp, J., Peterson, K., Ahrens, C., Poznanovic, J., Gokhale, M.: Trident: an FPGA compiler framework for floating-point algorithms. In: FPL ’05: Proceedings of the 2005 Conference on Field Programmable Logic and Applications (2005)

  8. LLVM.: The LLVM Compiler Infrastructure.Information about the LLVM Project is available at the project’s web site, http://www.llvm.org

  9. Najjar W.A., Böhm A.P.W., Draper B.A., Hammes J., Rinker R., Beveridge R., Chawathe M. and Ross C. (2003). From algorithms to hardware—a high-level language abstraction for reconfigurable computing. IEEE Comput. 36(8): 63–69

    Google Scholar 

  10. Todman T., de Coutinho J.G.F. and Luk W. (2005). Customisable hardware compilation. Supercomputing 32(2): 119–137

    Article  Google Scholar 

  11. Diniz, P.C., Hall, M.W., Park, J., So, B., Ziegler, H.E.: Bridging the gap between compilation and synthesis in the DEFACTO system. In: Dietz, H.G. (ed.) LCPC, Volume 2624 of Lecture Notes in Computer Science, pp. 52–70. Springer (2001)

  12. So, B., Hall, M.W., Diniz, P.C.: A compiler approach to fast hardware design space exploration in FPGA-based systems. In: Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation, PLDI, pp. 165–176 (2002)

  13. Gupta, S., Dutt, N.D., Gupta, R.K., Nicolau, A.: Spark: a high-level synthesis framework for applying parallelizing compiler transformations. In: VLSI ’03: Proceeding of the 2003 International Conference on VLSI Design (2003)

  14. Callahan, T.J., Hauser, J.R., Wawrzynek, J.: The Garp architecture and C compiler. IEEE Comput. 33, 62–69 (2002)

    Google Scholar 

  15. Budiu, M., Goldstein, S.C.: Pegasus: an efficient intermediate representation. Technical report, Carnegie Mellon University (2002)

  16. VSIA.: Information about Virtual Socket Interface Association (VSIA) is available at http://www.vsi.org/

  17. Chou, P., Ortega, G., Borriello, G.: Interface co-synthesis techniques for embedded systems. In: ICCAD ’95: Proceedings of the 1995 International Conference on Computer Aided Design (1995)

  18. Lysecky R. and Vahid F. (2002). Prefetching for improved bus wrapper performance in cores. ACM Trans. Des. Autom. Electron. Syst. 7: 58–90

    Article  Google Scholar 

  19. Zhu, J.: Raising the abstraction level of RTL design. In: DATE ’01: Proceedings of the Conference on Design, Automation and Test in Europe. IEEE Computer Society (2001)

  20. Stuikys V. and Damasevicius R. (2004). Soft IP customisation model based on metaprogramming techniques. Informatica 15: 111–126

    MATH  Google Scholar 

  21. Mukherjee, R., Jones, A., Banerjee, P.: System level synthesis of multiple ip blocks in the behavioral synthesis tool. In: PDCS ’03: Proceeding of the 2003 International Conference on Parallel and Distributed Computing and Systems, Marina Del Rey, CA (2003)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Zhi Guo.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Guo, Z., Buyukkurt, B., Cortes, J. et al. A Compiler Intermediate Representation for Reconfigurable Fabrics. Int J Parallel Prog 36, 493–520 (2008). https://doi.org/10.1007/s10766-008-0080-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-008-0080-7

Keywords

Navigation