Preventing glitches and short circuits in high-level self-timed chip specifications

Self-timed chip designs are commonly specified in a high-level message-passing language called CHP. This language is closely related to Hoare's CSP except it admits erroneous behavior due to the necessary limitations of efficient hardware implementations. For example, two processes sending on the same channel at the same time causes glitches and short circuits in the physical chip implementation. If a CHP program maintains certain invariants, such as only one process is sending on any given channel at a time, it can guarantee an error-free execution that behaves much like a CSP program would. In this paper, we present an inferable effect system for ensuring that these invariants hold, drawing from model-checking methodologies while exploiting language-usage patterns and domain-specific specializations to achieve efficiency. This analysis is sound, and is even complete for the common subset of CHP programs without data-sensitive synchronization. We have implemented the analysis and demonstrated that it scales to validate even microprocessors.

[1]  Stephen Longfield,et al.  A Low Power Asynchronous GPS Baseband Processor , 2012, 2012 IEEE 18th International Symposium on Asynchronous Circuits and Systems.

[2]  George J. Milne,et al.  A Methodology for the Formal Analysis of Asynchronous Micropipelines , 2000, FMCAD.

[3]  J. C. Ebergen Translating programs into delay-insensitive circuits , 1989 .

[4]  Alain J. Martin The Probe: An Addition to Communication Primitives , 1985, Inf. Process. Lett..

[5]  Edmund M. Clarke,et al.  Compositional model checking , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[6]  Rajit Manohar,et al.  An Operand-Optimized Asynchronous IEEE 754 Double-Precision Floating-Point Adder , 2010, 2010 IEEE Symposium on Asynchronous Circuits and Systems.

[7]  Marcel Rene Van der Goot Semantics of VLSI synthesis , 1996 .

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

[9]  Stephan Merz,et al.  Model Checking , 2000 .

[10]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[11]  Alain J. Martin The limitations to delay-insensitivity in asynchronous circuits , 1990 .

[12]  Alain J. Martin Compiling communicating processes into delay-insensitive VLSI circuits , 2005, Distributed Computing.

[13]  Paul I. Pénzes,et al.  The design of an asynchronous MIPS R3000 microprocessor , 1997, Proceedings Seventeenth Conference on Advanced Research in VLSI.

[14]  Scott F. Smith,et al.  Provably Correct Synthesis of Asynchronous Circuits , 1992, Designing Correct Circuits.

[15]  Andrew M Lines,et al.  Pipelined Asynchronous Circuits , 1998 .

[16]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[17]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[18]  Michael Mendler,et al.  Newtonian arbiters cannot be proven correct , 1993, Formal Methods Syst. Des..

[19]  Karl Papadantonakis,et al.  Rigorous analog verification of asynchronous circuits , 2006 .

[20]  Michael Goldsmith,et al.  Hierarchical Compression for Model-Checking CSP or How to Check 1020 Dining Philosophers for Deadlock , 1995, TACAS.

[21]  Alain J. Martin Distributed Mutual Exclusion on a Ring of Processes , 1985, Sci. Comput. Program..

[22]  Alain J. Martin,et al.  Quasi-Delay-Insensitive Circuits are Turing-Complete , 1995 .

[23]  Scott F. Smith,et al.  Correct compilation of specifications to deterministic asynchronous circuits , 1993, Formal Methods Syst. Des..

[24]  John Teifel,et al.  A high-performance asynchronous FPGA: test results , 2005, 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'05).

[25]  Andrew S. Cassidy,et al.  Building block of a programmable neuromorphic substrate: A digital neurosynaptic core , 2012, The 2012 International Joint Conference on Neural Networks (IJCNN).

[26]  Edmund M. Clarke,et al.  Hierarchical Verification of Asynchronous Circuits Using Temporal Logic , 1985, Theor. Comput. Sci..

[27]  Michael Kishinevsky,et al.  Concurrent hardware : the theory and practice of self-timed design , 1993 .

[28]  Tom Verhoeff,et al.  Delay-insensitive codes — an overview , 1988, Distributed Computing.

[29]  Ross Tate,et al.  The sequential semantics of producer effect systems , 2013, POPL.

[30]  Steven M. Burns,et al.  The design of an asynchronous microprocessor , 1989, CARN.

[31]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[32]  Ken Mai,et al.  The future of wires , 2001, Proc. IEEE.

[33]  Dominique Borrione,et al.  An approach to the introduction of formal validation in an asynchronous circuit design flow , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[34]  Vivek Tiwari,et al.  Reducing power in high-performance microprocessors , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).