New Techniques for Sequential Software Synthesis from a Polychronous Data Flow Formalism

Much of the design and development of embedded software has been done manually over the years with rigorous posteriori verification steps to ensure correctness of the manually written code. Formalization of requirements to make verification and simulation test bench generation more rigorous are being practiced increasingly, but currently, there is much left to be desired in ensuring complete functional and timing correctness of safety-critical software. Polychronous data flow is a formalism used to express specification and to synthesize sequential software. Existing compilers operating on polychronous specification try to build a hierarchic tree-like intermediate form, bottom-up to relate signals in a design. We propose a Boolean theory based alternative where existing mathematical tools are utilized to generate embedded software from polychronous specification. Relative rates of occurrences of events on signals are identified and a unique top-down order of execution is built. Optimization techniques to improve synthesis time is also provided to enhance the performance of an associated software synthesis tool capable of visually capturing and simulating polychronous specification.

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

[2]  Paul Le Guernic,et al.  Compositional design of isochronous systems , 2008, 2008 Design, Automation and Test in Europe.

[3]  Klaus Schneider,et al.  The Synchronous Programming Language Quartz , 2009 .

[4]  Klaus Schneider,et al.  Averest: Specification, Verification, and Implementation of Reactive Systems , 2005 .

[5]  David Nowak,et al.  Synchronous structures , 1999, Inf. Comput..

[6]  Stephen A. Edwards,et al.  Code Generation in the Columbia Esterel Compiler , 2007, EURASIP J. Embed. Syst..

[7]  Andrew J. Kornecki,et al.  Assessment of Software Development Tools for Safety-Critical Real-Time Systems , 2003 .

[8]  Sandeep K. Shukla,et al.  MRICDF: A Polychronous Model for Embedded Software Synthesis , 2010, Synthesis of Embedded Software.

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

[10]  Sandeep K. Shukla,et al.  SMT based false causal loop detection during code synthesis from Polychronous specifications , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[11]  Sandeep K. Shukla,et al.  Faster Software Synthesis Using Actor Elimination Techniques for Polychronous Formalism , 2010, 2010 10th International Conference on Application of Concurrency to System Design.

[12]  Sandeep K. Shukla,et al.  EmCodeSyn: A visual framework for multi-rate data flow specifications and code synthesis for embedded applications , 2009, 2009 Forum on Specification & Design Languages (FDL).

[13]  Sandeep K. Shukla,et al.  An alternative polychronous model and synthesis methodology for model-driven embedded software , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[14]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..