Automatic Synthesis of Data Storage and Control Structures for FPGA-based Computing Engines

Pedro Diniz
University of Southern California
Information Sciences Institute
pedro@isi.edu

and

Joonseok Park
University of Southern California
Information Sciences Institute
joonseok@isi.edu

Abstract

Mapping computations written in high-level programming languages to FPGA-based computing engines requires programmers to create the datapath responsible for the core of the computation as well as the control structures to generate the appropriate signals to orchestrate its execution. This paper addresses the issue of automatic generation of data storage and control structures for FPGA-based reconfigurable computing engines using existing compiler data dependence analysis techniques. We describe a set of parameterizable data storage and control structures used as the target of our prototype compiler. We present a compiler analysis algorithm to derive the parameters of the data storage structures to minimize the required memory bandwidth of the implementation. We also describe a complete compilation scheme for mapping loops that manipulate multi-dimensional array variables to hardware. We present preliminary simulation results for complete designs generated manually using the results of the compiler analysis. These preliminary results show that is possible to successfully integrate compiler data dependence analysis with existing commercial synthesis tools.

Keywords:

FPGA-based reconfigurable computing architectures, compilation, program analysis, data queues.


Copyright Notice

PDF Document, Postscript Document