Designing Modular Hardware Accelerators in C with ROCCC 2.0

While FPGA-based hardware accelerators have repeatedly been demonstrated as a viable option, their programmability remains a major barrier to their wider acceptance by application code developers. These platforms are typically programmed in a low level hardware description language, a skill not comm...

Full description

Saved in:
Bibliographic Details
Published in2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines pp. 127 - 134
Main Authors Villarreal, Jason, Park, Adrian, Najjar, Walid, Halstead, Robert
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.05.2010
Subjects
Online AccessGet full text
ISBN9781424471423
0769540562
9780769540566
1424471427
DOI10.1109/FCCM.2010.28

Cover

More Information
Summary:While FPGA-based hardware accelerators have repeatedly been demonstrated as a viable option, their programmability remains a major barrier to their wider acceptance by application code developers. These platforms are typically programmed in a low level hardware description language, a skill not common among application developers and a process that is often tedious and error-prone. Programming FPGAs from high level languages would provide easier integration with software systems as well as open up hardware accelerators to a wider spectrum of application developers. In this paper, we present a major revision to the Riverside Optimizing Compiler for Configurable Circuits (ROCCC) designed to create hardware accelerators from C programs. Novel additions to ROCCC include (1) intuitive modular bottom-up design of circuits from C, and (2) separation of code generation from specific FPGA platforms. The additions we make do not introduce any new syntax to the C code and maintain the high level optimizations from the ROCCC system that generate efficient code. The modular code we support functions identically as software or hardware. Additionally, we enable user control of hardware optimizations such as systolic array generation and temporal common subexpression elimination. We evaluate the quality of the ROCCC 2.0 tool by comparing it to hand-written VHDL code. We show comparable clock frequencies and a 18% higher throughput. The productivity advantages of ROCCC 2.0 is evaluated using the metrics of lines of code and programming time showing an average of 15× improvement over hand-written VHDL.
ISBN:9781424471423
0769540562
9780769540566
1424471427
DOI:10.1109/FCCM.2010.28