Synthesis and Optimization of Digital Hardware/Software Systems

In this introductory paper to the field, it is our goal to provide a new unified look at synthesis problems that is independent from the level of abstraction like system, RTL, and logic (for refinements targeted to hardware), or process- and basic block level (for refinements targeted to software). For each level of our model called ”double roof”, synthesis requires the solution of three basic problems, namely allocation (of resources), binding, and scheduling Based on the ”double roof” model, we present a graph-based formulation of the tasks of system-synthesis: Contrary to former approaches that consider system-synthesis as a bi-partition problem (e.g., earlier hardware/software partitioning algorithms), we consider also as well the allocation of components like micro- and hardware coprocessors as part of the optimization problem as scheduling of tasks including communication scheduling. The approach is flexible enough to be applied to different other abstraction levels. Finally, we introduce the problem of design space exploration as a new challenge in synthesis. For the typically multi-objective nature of synthesis problems, not only one optimum is wanted, but an exploration of a complete front of optimal solutions called Pareto points.

[1]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[2]  Jürgen Teich,et al.  Multidimensional Exploration of Software Implementations for DSP Algorithms , 2000, J. VLSI Signal Process..

[3]  Lawrence. Davis,et al.  Handbook Of Genetic Algorithms , 1990 .

[4]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[5]  Jürgen Teich,et al.  3D exploration of Uniprocessor Schedules for DSP algorithms , 1999 .

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

[7]  Jürgen Teich,et al.  3D exploration of software schedules for DSP algorithms , 1999, CODES '99.

[8]  Edward A. Lee,et al.  Dataflow process networks , 1995, Proc. IEEE.

[9]  Heinrich Meyr,et al.  High level software synthesis for signal processing systems , 1992, [1992] Proceedings of the International Conference on Application Specific Array Processors.

[10]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[11]  Jürgen Teich,et al.  Evolutionary algorithms for the synthesis of embedded software , 2000, IEEE Trans. Very Large Scale Integr. Syst..

[12]  Daniel D. Gajski,et al.  High ― Level Synthesis: Introduction to Chip and System Design , 1992 .

[13]  M. Engels,et al.  GRAPE: a CASE tool for digital signal parallel processing , 1990, IEEE ASSP Magazine.

[14]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[15]  Jürgen Teich,et al.  Scheduling hardware/software systems using symbolic techniques , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[16]  Jürgen Teich,et al.  System-Level Synthesis Using Evolutionary Algorithms , 1998, Des. Autom. Embed. Syst..

[17]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[18]  Rick Reed,et al.  Telecommunications systems engineering using SDL , 1989 .

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

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

[21]  P. Vaidyanathan Multirate Systems And Filter Banks , 1992 .

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

[23]  Jürgen Teich,et al.  Evolutionary algorithm based exploration of software schedules for digital signal processors , 1999 .