Efficient synthesis of array intensive computations onto FPGA based accelerators

Array intensive computations are characterized by processing of large arrays stored in external memory in multiple loops. Synthesizing these computations onto FPGAs involves automatic translation of the behavioral description into state machines controlled by a clock such that the execution time of the program as a whole is the minimum and area requirement does not exceed a predefined limit. The synthesis algorithm also needs to efficiently sequence the array, accesses taking into account memory access requirements such as pipelining. In this paper we present two algorithms each with a specific emphasis to handle this synthesis problem. Our heuristic algorithm generates good solutions in a very short time (less than a second), while our mixed integer linear programming (MILP) based algorithm can generate optimal solution given sufficient time. Both try to minimize execution time and area. Our algorithms not only look at individual loops to exploit parallelism but also consider them together while deciding the clock. The overall execution time is minimized and not just the number of cycles or the cycle time. They also efficiently synthesize memory accesses to fully exploit the memory pipelining. We compare these two algorithms in terms of their relative strengths.

[1]  Wolfgang Rosenstiel,et al.  Resource sharing in hierarchical synthesis , 1997, ICCAD 1997.

[2]  Reinaldo A. Bergamaschi,et al.  Generalized resource sharing , 1997, ICCAD 1997.

[3]  Ron Miller,et al.  Behavioral Synthesis Methodology for HDL-Based Specification and Validation , 1995, 32nd Design Automation Conference.

[4]  Ranga Vemuri,et al.  An automated temporal partitioning and loop fission approach for FPGA based reconfigurable synthesis of DSP applications , 1999, Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361).

[5]  G. De Micheli,et al.  SpC: synthesis of pointers in C application of pointer analysis to the behavioral synthesis from C , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[6]  Niraj K. Jha,et al.  : a novel scheduling technique for control-flow intensive behavioral descriptions , 1997, ICCAD 1997.

[7]  N.K. Jha,et al.  Removal of memory access bottlenecks for scheduling control-flow intensive behavioral descriptions , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[8]  John P. Hayes,et al.  Technology mapping for field-programmable gate arrays using integer programming , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[9]  Minh N. Do,et al.  Youn-Long Steve Lin , 1992 .

[10]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .