Scheduling and partitioning ANSI-C programs onto multi-FPGA CCM architectures

The increasing size and speed of modern FPGAs allow complex computations, on the order of an average sized program, to be performed in a small collection of processing elements. It is well documented that the execution of large sections of a program within the "virtual hardware" offered by an attached FPGA processor can provide substantial speedup over the ordinary execution within a sequential, general-purpose processor. Unfortunately, the development tools currently available for FPGAs do not allow for easily configuring multi-FPGA custom computing machines. Configuration of an FPGA architecture requires scheduling: the mapping of computations onto existing functional units. To take advantage of all available logic, computations may span processing elements, calling for partitioning of a subroutine between one or more FPGAs. In this paper, an architecture-independent design tool is presented for translating programs written in C to a dataflow representation and then efficiently scheduling and partitioning the resulting graphs onto multi-FPGA computing platforms.

[1]  David R. Galloway The Transmogrifier C hardware description language and compiler for FPGAs , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[2]  Dan Zuras,et al.  Integer multiplication and division on the HP Precision Architecture , 1987, ASPLOS 1987.

[3]  Wayne Luk,et al.  Constraint-based Hierarchical Placement of Parallel Programs , 1994, FPL.

[4]  A. Smith,et al.  PRISM-II compiler and architecture , 1993, [1993] Proceedings IEEE Workshop on FPGAs for Custom Computing Machines.

[5]  P.M. Athanas,et al.  Real-Time Image Processing on a Custom Computing Platform , 1995, Computer.

[6]  Richard W. Conners,et al.  A MOdular and Reprogrammable Real-time Processing Hardware, MORRPH , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[7]  M AthanasPeter,et al.  Processor reconfiguration through instruction-set metamorphosis , 1993 .

[8]  Richard W. Conners,et al.  MORRPH: a modular and reprogrammable real-time processing hardware , 1995, 1995 Proceedings of the IEEE International Symposium on Industrial Electronics.

[9]  Duncan A. Buell,et al.  Splash 2 , 1992, SPAA.

[10]  Dan Zuras,et al.  Integer multiplication and division on the HP precision architecture , 1987, IEEE Trans. Computers.

[11]  Arthur H. Veen,et al.  Dataflow machine architecture , 1986, CSUR.

[12]  Christopher W. Fraser,et al.  A Retargetable C Compiler: Design and Implementation , 1995 .

[13]  Harvey F. Silverman,et al.  Processor reconfiguration through instruction-set metamorphosis , 1993, Computer.

[14]  John F. Wakerly,et al.  Digital design - principles and practices , 1990, Prentice Hall Series in computer engineering.

[15]  Dan Zuras,et al.  Integer multiplication and division on the HP precision architecture , 1987 .