• DocumentCode
    29946
  • Title

    High-Level Language Tools for Reconfigurable Computing

  • Author

    Windh, Skyler ; Xiaoyin Ma ; Halstead, Robert J. ; Budhkar, Prerna ; Luna, Zabdiel ; Hussaini, Omar ; Najjar, Walid A.

  • Author_Institution
    Dept. of Comput. Sci. & Eng., Univ. of California at Riverside, Riverside, CA, USA
  • Volume
    103
  • Issue
    3
  • fYear
    2015
  • fDate
    Mar-15
  • Firstpage
    390
  • Lastpage
    408
  • Abstract
    In the past decade or so we have witnessed a steadily increasing interest in FPGAs as hardware accelerators: they provide an excellent mid-point between the reprogrammability of software devices (CPUs, DSPs, and GPUs) and the performance and low energy consumption of ASICs. However, the programmability of FPGA-based accelerators remains one of the biggest obstacles to their wider adoption. Developing FPGA programs requires extensive familiarity with hardware design and experience with a tedious and complex tool chain. For half a century, layers of abstractions have been developed that simplify the software development process: languages, compilers, dynamically linked libraries, operating systems, APIs, etc. Very little, if any, such abstractions exist in the development of FPGA programs. In this paper, we review the history of using FPGAs as hardware accelerators and summarize the challenges facing the raising of the programming abstraction layers. We survey five High-Level Language tools for the development of FPGA programs: Xilinx Vivado, Altera OpenCL, BluespecBSV, ROCCC, and LegUp to provide an overview of their tool flow, the optimizations they provide, and a qualitative analysis of their hardware implementations of high level code.
  • Keywords
    application specific integrated circuits; field programmable gate arrays; high level languages; reconfigurable architectures; API; ASIC; Altera OpenCL; BluespecBSV; CPU; DSP; FPGA based accelerators; GPU; LegUp; ROCCC; Xilinx Vivado; dynamically linked libraries; hardware accelerators; high level language tools; operating systems; programming abstraction layers; qualitative analysis; reconfigurable computing; software development process; software devices reprogrammability; Accelerators; Computational modeling; Field programmable gate arrays; High level languages; Optimization; Programming; Reconfigurable architectures; Compiler optimization; high level synthesis; max filter; reconfigurable computing;
  • fLanguage
    English
  • Journal_Title
    Proceedings of the IEEE
  • Publisher
    ieee
  • ISSN
    0018-9219
  • Type

    jour

  • DOI
    10.1109/JPROC.2015.2399275
  • Filename
    7086410