SPARK: High-Level Synthesis using Parallelizing Compiler Techniques
Center for Embedded Computer Systems Information and Computer Science
University Of California, Irvine
menuHomeMethodologyDownloadNewsPublicationsBenchmarksLinksInternal


Overview

SPARK is a C-to-VHDL high-level synthesis framework that employs a set of innovative compiler, parallelizing compiler, and synthesis transformations to improve the quality of high-level synthesis results. The compiler transformations have been re-instrumented for synthesis by incorporating ideas of mutual exclusivity of operations, resource sharing and hardware cost models. The SPARK methodology is particularly targeted to control-intensive microprocessor functional blocks and multimedia and image processing applications. We have validated the effectiveness of our approach and evaluated the various optimizations for large real-life applications such as the Instruction Length Decoder from the Intel Pentium and multimedia applications such as MPEG-1, MPEG-2 and the GIMP image processing tool.

SPARK takes behavioral ANSI-C code as input, schedules it using speculative code motions and loop transformations, runs an interconnect-minimizing resource binding pass and generates a finite state machine for the scheduled design graph. Finally, a backend code generation pass outputs synthesizable register-transfer level (RTL) VHDL. This VHDL can then by synthesized using logic synthesis tools into an ASIC or by mapped onto a FPGA.

Faculty

Prof. Rajesh Gupta (Primary Investigator)
Prof. Nikil Dutt
Prof. Alex Nicolau

Project Researchers

Sumit Gupta (Graduated June 2003: Now a Post-Doctoral Researcher)

Other Graduate Students who have contributed to SPARK

Nick Savoiu
Mehrdad Reshadi
Sunwoo Kim



Industry Liasons

Conexant: Chuck Siska
Intel: Shai Rotem, Mike Kishinevski and Timothy Kam
Motorola: Paul Kritzinger

The SPARK project is funded by the
Semiconductor Research Corporation and Intel Strategic CAD Labs




Maintained by Sumit Gupta <sumitg@cecs.uci.edu>