System synthesis based on a formal computational model and skeletons

Formal approaches to HW and system design have not been generally adopted because designers often view the modelling concepts used in these approaches as unsuitable for their problems. Moreover, they are frequently on a too high abstraction level to allow for efficient synthesis with today's techniques. We address this problem with a synthesis method which bridges the gap between a highly abstract functional model and an efficient hardware implementation. The functional model is strictly formal and based on formal semantics, a pure functional language, and the synchrony hypothesis. However, the use of skeletons in conjunction with a proper computational model allows a hardware interpretation, where the structure is given by skeletons and the combinatorial logic by elementary functions. Thus, without compromising the formal properties we offer an effective modelling technique on a high abstraction level which is still natural for hardware designers, and is the basis for synthesis into an efficient implementation. Furthermore, we describe a design methodology which uses the modelling concepts and the synthesis method. It contains a design exploration phase and defines how and when design decisions are formally introduced into the synthesis process. Finally, we illustrate design space exploration and synthesis with a FIFO component taken from an ATM switch.

[1]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[2]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[3]  Frank Vahid,et al.  System specification with the SpecCharts language , 1992, IEEE Design & Test of Computers.

[4]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[5]  W. Horn,et al.  Modelling of an ATM Multiplexer in a Network Terminal for a Mixed Hardware/Firmware Implementation , 1998 .

[6]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[7]  Eerke Albert Boiten,et al.  Transformational derivation of (parallel) programs using skeletons , 1993 .

[8]  Axel Jantsch,et al.  Formal system design based on the synchrony hypothesis, functional models, and skeletons , 1999, Proceedings Twelfth International Conference on VLSI Design. (Cat. No.PR00013).

[9]  D. B. Skillicorn Foundations of Parallel Programming: The Key Idea , 1994 .

[10]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[11]  Alberto Pettorossi,et al.  Rules and strategies for transforming functional and logic programs , 1996, CSUR.

[12]  Stephen A. Edwards,et al.  Design of embedded systems: formal models, validation, and synthesis , 1997, Proc. IEEE.

[13]  Miriam Leeser,et al.  HML: an innovative hardware description language and its translation to VHDL , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[14]  John Launchbury,et al.  Microprocessor specification in Hawk , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[15]  Richard S. Bird,et al.  Lectures on Constructive Functional Programming , 1989 .

[16]  David B. Skillicorn,et al.  Models and languages for parallel computation , 1998, CSUR.

[17]  R. Jewett,et al.  Systems Engineering , 1959, IRE Transactions on Military Electronics.

[18]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[19]  Edward A. Lee,et al.  A DENOTATIONAL FRAMEWORK FOR COMPARING MODELS OF COMPUTATION , 1997 .