ACM Transactions on Embedded Computing Systems · 2013 · 302 citations · 21 references
ComputingComputer EngineeringComputer ScienceComputer NetworksHeterogeneous ComputingInterconnection NetworksFat-tree NetworksInterconnect ArchitectureNetwork Capacity PlanningRoutingSwitching TechniquesBisection BandwidthClos Network ArchitecturesClos Network TopologyClos NetworksData Center NetworkData Center Network ArchitectureData Center Network TopologyFat-tree Topology
Hardware implementations outperform software in speed and energy efficiency, yet their high design cost and complexity make software the default choice for most applications. LegUp is a high‑level synthesis tool that enables software techniques to be applied to hardware design. It compiles standard C programs into a hybrid FPGA‑based MIPS soft processor plus custom hardware accelerators, supporting most C constructs and allowing software segments to run on the processor. The tool delivers hardware quality comparable to commercial HLS solutions and demonstrates the ability to explore hardware/software codesign trade‑offs by varying the software‑to‑hardware split.
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.
21
Andrew Canis, Jongsok Choi, Mark Aldham et al. · 2011 · 524 citations
An Introduction to High-Level Synthesis
Philippe Coussy, Daniel D. Gajski, M. Meredith et al. · IEEE Design & Test of Computers · 2009 · 496 citations