LegUp: An open-source high-level synthesis tool for FPGA-based processor/accelerator systems

  • Authors:
  • Andrew Canis;Jongsok Choi;Mark Aldham;Victor Zhang;Ahmed Kammoona;Tomasz Czajkowski;Stephen D. Brown;Jason H. Anderson

  • Affiliations:
  • University of Toronto, ON, Canada;University of Toronto, ON, Canada;University of Toronto, ON, Canada;University of Toronto, ON, Canada;University of Toronto, ON, Canada;Altera Corporation, ON, Canada;University of Toronto, ON, Canada;University of Toronto, ON, Canada

  • Venue:
  • ACM Transactions on Embedded Computing Systems (TECS) - Special issue on application-specific processors
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is generally accepted that a custom hardware implementation of a set of computations will provide superior speed and energy efficiency relative to a software implementation. However, the cost and difficulty of hardware design is often prohibitive, and consequently, a software approach is used for most applications. In this article, we introduce a new high-level synthesis tool called LegUp that allows software techniques to be used for hardware design. LegUp accepts a standard C program as input and automatically compiles the program to a hybrid architecture containing an FPGA-based MIPS soft processor and custom hardware accelerators that communicate through a standard bus interface. In the hybrid processor/accelerator architecture, program segments that are unsuitable for hardware implementation can execute in software on the processor. LegUp can synthesize most of the C language to hardware, including fixed-sized multidimensional arrays, structs, global variables, and pointer arithmetic. Results show that the tool produces hardware solutions of comparable quality to a commercial high-level synthesis tool. We also give results demonstrating the ability of the tool to explore the hardware/software codesign space by varying the amount of a program that runs in software versus hardware. LegUp, along with a set of benchmark C programs, is open source and freely downloadable, providing a powerful platform that can be leveraged for new research on a wide range of high-level synthesis topics.