Designing Correct Circuits

Equivalence transformations are widely used in practical designs of VLSI circuits using Ruby. This paper demonstrates how proofs of these equivalences easily may be performed within a formal framework by a theorem prover. The proof tool used is called RubyZF and contains a semantical embedding of Ruby within Zermelo-Fraenkel set theory using the Isabelle theorem prover. The use of the system is exemplified by a concrete example taken from the T-Ruby design system.

[1]  Lars Rossen,et al.  Proving (facts about) Ruby , 1991 .

[2]  Alain J. Martin,et al.  Syntax-directed translation of concurrent programs into self-timed circuits , 1988 .

[3]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[4]  Konrad Slind An Implementation of higher order logic , 1990 .

[5]  Mary Sheeran,et al.  Deriving Bit-Serial Circuits in Ruby , 1991, VLSI.

[6]  Geoffrey Brown,et al.  Towards Truly Delay-Insensitive Circuit Realizations of Process Algebras , 1991 .

[7]  Geoff Barrett The semantics and implementation of occam , 1988 .

[8]  Graham Hutton,et al.  Between functions and relations in calculating programs , 1992 .

[9]  David L. Dill,et al.  Trace theory for automatic hierarchical verification of speed-independent circuits , 1989, ACM distinguished dissertations.

[10]  Lawrence Charles Paulson,et al.  ML for the working programmer , 1991 .

[11]  David May,et al.  A Tutorial Introduction To Occam Programming , 1987 .

[12]  Fred B. Schneider,et al.  Understanding Protocols for Byzantine Clock Synchronization , 1987 .

[13]  Joseph Sifakis,et al.  Automatic Verification Methods for Finite State Systems , 1989, Lecture Notes in Computer Science.

[14]  Peter Henderson,et al.  Functional programming - application and implementation , 1980, Prentice Hall International Series in Computer Science.

[15]  Nancy A. Lynch,et al.  A New Fault-Tolerance Algorithm for Clock Synchronization , 1988, Inf. Comput..

[16]  Colin Stirling,et al.  An Introduction to Modal and Temporal Logics for CCS , 1991, Concurrency: Theory, Language, And Architecture.

[17]  Nuel D. Belnap,et al.  A Useful Four-Valued Logic , 1977 .

[18]  Alain J. Martin The Design of a Delay-Insensitive Microprocessor: An Example of Circuit Synthesis by Program Transformation , 1989, Hardware Specification, Verification and Synthesis.

[19]  Robert M. Keller,et al.  Towards a Theory of Universal Speed-Independent Modules , 1974, IEEE Transactions on Computers.

[20]  Haskell B. Curry,et al.  Combinatory Logic, Volume I , 1959 .

[21]  Richard M. Karp,et al.  Turing award lecture , 1985, ACM '85.

[22]  Steven D. Johnson Synthesis of digital designs from recursion equations , 1983 .

[23]  Teresa H. Y. Meng,et al.  Automatic synthesis of asynchronous circuits from high-level specifications , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[24]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[25]  Melvin Fitting,et al.  Bilattices and the theory of truth , 1989, J. Philos. Log..

[26]  Mary Sheeran,et al.  muFP, a language for VLSI design , 1984, LFP '84.

[27]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[28]  A. Church The calculi of lambda-conversion , 1941 .

[29]  Matthew L. Ginsberg Bilattices and Modal Operators , 1990, J. Log. Comput..

[30]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[31]  Robin Sharp,et al.  Transformational Rewriting with Ruby , 1993, CHDL.

[32]  Daniel W. Dobberpuhl,et al.  The design and analysis of VLSI circuits , 1985 .

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

[34]  C. A. R. Hoare,et al.  The Laws of Occam Programming , 1988, Theor. Comput. Sci..

[35]  Mary Sheeran UpsilonFP : An algebraic VLSI design language , 1983 .

[36]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[37]  Peter D. Mosses,et al.  Denotational semantics , 1995, LICS 1995.

[38]  Geoffrey Brown,et al.  Hardware Specification, Verification and Synthesis: Mathematical Aspects , 1990, Lecture Notes in Computer Science.

[39]  Kees van Berkel,et al.  Handshake Circuits: An Asynchronous Architecture for VLSI Programming , 1993 .

[40]  Jeffrey J. Joyce,et al.  Formal Verification and Implementation of a Microprocessor , 1988 .

[41]  Amir Pnueli The Temporal Semantics of Concurrent Programs , 1981, Theor. Comput. Sci..