LegUp is a state-of-the-art high-level synthesis (HLS) compiler which automatically generates high-performance FPGA hardware from software. Hardware implemented on an FPGA can provide 10X improvement in performance and energy-efficiency compared to software executing on a processor. However, FPGA hardware design can be extremely difficult and time consuming, even for expert hardware designers. For software engineers, FPGAs have been simply inaccessible. LegUp opens the doors for software engineers to use FPGAs and reap the performance and energy-efficiency benefits FPGAs have to offer. By raising the design abstraction to software, LegUp also significantly reduces the design time, leading to shorter time-to-market. Use LegUp to obtain higher performance, better energy-efficiency, and faster time-to-market for your application!
LegUp can compile your C program into hardware, which can operate as a stand-alone component or can be integrated into a larger system to provide hardware acceleration and energy savings. However, not all program segments may be amenable for hardware acceleration, and some parts of the program can be better suited to remain in software. To this end, LegUp can also compile your program into an ARM Processor-Accelerator SoC (System-on-Chip), where the compute-intensive functions are accelerated in hardware, and the remaining program segments are executed in software on the ARM processor. The software/hardware partitioning, as well as the generation of the system interconnect, are all automatically handled by LegUp.
LegUp supports hardware synthesis of Pthreads and OpenMP, which are popular multi-threading methodologies in software. In software, Pthreads and OpenMP are used to express parallelism, where multiple threads get compiled to execute concurrently on multiple processor cores. LegUp can take Pthreads and OpenMP code, and without requiring any code changes, produce multiple hardware cores that execute concurrently. This is a unique feature of LegUp that is not available in any other HLS tool. By automatically compiling parallel software threads to parallel hardware, LegUp enables those without hardware knowledge to take advantage of parallel FPGA hardware!
LegUp has been shown to produce FPGA hardware that can provide orders of magnitude improvements in speed and energy-efficiency compared to software running on a state-of-the-art processor, such as an Intel i7 or a multi-core ARM. Users can take the same software running on a processor and compile to FPGA hardware using LegUp to achieve better performance and enery-efficiency.
Loops in software are typically performance hot spots, where a majority of the runtime is spent. Loop pipelining, which allows multiple loop iterations to execute concurrently, is crucial for high performance. LegUp has been shown to produce better loop pipelining hardware than other commercial HLS tools.
For more details please contact legup@microchip.com.