A co-synthesis approach to embedded system design automation

Embedded systems are targeted for specific applications under constraints on relative timing of their actions. For such systems, the use of pre-designed reprogrammable components such as microprocessors provides an effective way to reduce system cost by implementing part of the functionality as a program running on the processor. However, dedicated hardware is often necessary to achieve the requisite timing performance. Analysis of timing constraints is, therefore, key to determination of an efficient hardware-software implementation. In this paper, we present a methodology for embedded system design as a co-synthesis of interacting hardware and software components. We present a decomposition of the co-synthesis problem into sub-problems, that is useful in building a framework for embedded system CAD. In particular, we present operation-level timing constraints and develop the notion of satisfiability of constraints by a given implementation both in the deterministic and probabilistic sense. Constraint satisfiability analysis is then used to define hardware and software portions of functionality. We describe algorithms and techniques used in developing a practical co-synthesis framework, vulcan. Examples are presented to show the utility of our approach.

[1]  H. de Man,et al.  Sizing and verification of communication buffers for communicating processes , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[2]  Aloysius K. Mok,et al.  Evaluating tight execution time bounds of programs by annotations , 1989 .

[3]  Joseph Y.-T. Leung,et al.  On the complexity of fixed-priority scheduling of periodic, real-time tasks , 1982, Perform. Evaluation.

[4]  Rajiv Jain,et al.  Area-time model for synthesis of non-pipelined designs , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[5]  Giovanni De Micheli,et al.  High Level Synthesis of ASlCs un - der Timing and Synchronization Constraints , 1992 .

[6]  Rajesh K. Gupta,et al.  Rate analysis for embedded systems , 1998, TODE.

[7]  Michael A. Schuette,et al.  The future of embedded system design , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[8]  Aloysius Ka-Lau Mok,et al.  Fundamental design problems of distributed systems for the hard-real-time environment , 1983 .

[9]  G. De Micheli,et al.  High-level synthesis and optimization strategies in Hercules and Hebe , 1990, [Proceedings] EURO ASIC `90.

[10]  William A. Wulf,et al.  Capturing design rationale in concurrent engineering teams , 1993 .

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

[12]  Jörg Henkel,et al.  Hardware-software cosynthesis for microcontrollers , 1993, IEEE Design & Test of Computers.

[13]  Gaetano Borriello,et al.  Sizing synchronization queues: a case study in higher level synthesis , 1991, 28th ACM/IEEE Design Automation Conference.

[14]  Gaetano Borriello,et al.  Software Scheduling in the Co-Synthesis of Reactive Real-Time Systems , 1994, 31st Design Automation Conference.

[15]  Michel Auguin,et al.  A partitioning algorithm for system-level synthesis , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[16]  R. M. Mattheyses,et al.  A Linear-Time Heuristic for Improving Network Partitions , 1982, 19th Design Automation Conference.

[17]  Frank Vahid,et al.  Specification partitioning for system design , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[18]  Chak-Kuen Wong,et al.  An Algorithm to Compact a VLSI Symbolic Layout with Mixed Constraints , 1983, 20th Design Automation Conference Proceedings.

[19]  John Elder,et al.  Concurrent program structures , 1988 .

[20]  Vinton Gray Cerf,et al.  Multiprocessors, semaphores, and a graph model of computation , 1972 .

[21]  Edward A. Lee,et al.  A hardware-software codesign methodology for DSP applications , 1993, IEEE Design & Test of Computers.

[22]  Xiaobo Hu,et al.  Configuration-level hardware/software partitioning for real-time embedded systems , 1994, Third International Workshop on Hardware/Software Codesign.

[23]  G. De Micheli,et al.  The Olympus Synthesis System for Digital Design , 1990 .

[24]  Alan Burns,et al.  Real-time systems and their programming languages , 1986, International computer science series.

[25]  J. G. Gupta,et al.  Direct determination of traces of Ag, Cd, Pb, Bi, Cr, Mn, Co, Ni, Li, Be, Cu and Sb in environmental waters and geological materials by simultaneous multi-element graphite furnace atomic absorption spectrometry with Zeeman-effect background correction. , 1995, Talanta.

[26]  Egil Juliussen,et al.  The 6th annual computer industry 1993 almanac , 1993 .

[27]  Giovanni De Micheli,et al.  Relative scheduling under timing constraints: algorithms for high-level synthesis of digital circuits , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[28]  Hugo De Man,et al.  Sizing and verification of communication buffers for communicating processes , 1993, ICCAD.

[29]  Ahmed Amine Jerraya,et al.  Interactive system-level partitioning with PARTIF , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[30]  Gregory J. Chaitin,et al.  Register allocation and spilling via graph coloring , 2004, SIGP.

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

[32]  André Heck,et al.  Introduction to Maple , 1993 .

[33]  Giovanni De Micheli,et al.  Relative scheduling under timing constraints , 1991, DAC '90.

[34]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[35]  Alan C. Shaw,et al.  Experiments with a program timing tool based on source-level timing schema , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[36]  Rajesh Gupta,et al.  Hardware Software Co-Design of Embedded Systems , 1996, VLSI Design.

[37]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[38]  James F. Allen Maintaining knowledge about temporal intervals , 1983, CACM.

[39]  B. Dasarathy TimingConstraints ofReal-Time Systems: Constructs forExpressing Them, MethodsofValidating Them , 1985 .

[40]  R.K. Gupta,et al.  Constrained software generation for hardware-software systems , 1994, Third International Workshop on Hardware/Software Codesign.

[41]  Giovanni De Micheli,et al.  The Olympus synthesis system , 1990, IEEE Design & Test of Computers.

[42]  Brian Kernighan,et al.  An efficient heuristic for partitioning graphs , 1970 .

[43]  Giovanni De Micheli,et al.  Partitioning of functional models of synchronous digital systems , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[44]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

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

[46]  Fadi J. Kurdahi,et al.  Evaluating layout area tradeoffs for high level applications , 1993, IEEE Trans. Very Large Scale Integr. Syst..

[47]  Giovanni De Micheli,et al.  Optimizing the control-unit through the resynchronization of operations , 1992, Integr..

[48]  Jianwen Zhu,et al.  Specification and Design of Embedded Systems , 1998, Informationstechnik Tech. Inform..

[49]  Vivek Sarkar,et al.  Partitioning and Scheduling Parallel Programs for Multiprocessing , 1989 .

[50]  M. Billingsley,et al.  The Market Survey , 1986, The Nurse practitioner.

[51]  Simon S. Lam,et al.  Authentification for Distributed Systems , 1992, Computer.

[52]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[53]  Giovanni De Micheli,et al.  Constrained software generation for hardware-software systems , 1994, Third International Workshop on Hardware/Software Codesign.

[54]  Herman Schmit,et al.  A Model and Methodology for Hardware-Software Codesign , 1993, IEEE Des. Test Comput..

[55]  Luciano Lavagno,et al.  Hardware-software codesign of embedded systems , 1994, IEEE Micro.

[56]  Jörg Henkel,et al.  Fast timing analysis for hardware-software co-synthesis , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.