316
- https://doi.org/10.1145/2514740
LegUp
- Sep 1, 2013
- ACM Transactions on Embedded Computing Systems
- Andrew Canis +7 more
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 calledLegUpthat 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.
- # Custom Hardware Accelerators
- # Codesign Space
- # High-level Synthesis Tool
- # Pointer Arithmetic
- # Program Segments
- # Set Of Benchmark
- # Custom Hardware
- # Software Approach
- # Global Variables
- # Commercial Synthesis Tool