Hardware/Software Co-Design Using Functional Languages

In previous work we have developed and prototyped a silicon compiler which translates a functional language (SAFL) into hardware. Here we present a SAFL-level program transformation which: (i) partitions a specification into hardware and software parts and (ii) generates a specialised architecture to execute the software part. The architecture consists of a number of interconnected heterogeneous processors. Our method allows a large design space to be explored by systematically transforming a single SAFL specification to investigate different points on the area-time spectrum.

[1]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

[2]  Mary Sheeran,et al.  muFP, a language for VLSI design , 1984, LFP '84.

[3]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[4]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[7]  John T. O'Donnell,et al.  Generating Netlists from Executable Circuit Specifications , 1992, Functional Programming.

[8]  Ian Page,et al.  Parameterised processor generation , 1994 .

[9]  Ian Page,et al.  Compiling occam into Field-Programmable Gate Arrays , 2001 .

[10]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[11]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[12]  Donald E. Thomas,et al.  Behavioral transformation for algorithmic level IC design , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[13]  Luca Cardelli The Functional Abstract Machine , 1983 .

[14]  Gaetano Borriello,et al.  The Chinook hardware/software co-synthesis system , 1995 .

[15]  A. D. Brown,et al.  Source level optimisation of VHDL for behavioural synthesis , 1997 .

[16]  Robin Milner,et al.  Definition of standard ML , 1990 .

[17]  Luciano Lavagno,et al.  Hardware-Software Co-Design of Embedded Systems , 1997 .

[18]  Richard Sharp,et al.  A Statically Allocated Parallel Functional Language , 2000, ICALP.

[19]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[20]  Richard Sharp,et al.  The FLaSH Compiler : Efficient Circuits from Functional Specifications , 2000 .