On Proving the Correctness of Optimizing Transformations in a Digital Design Automation System

As part of our research for the Carnegie-Mellon University Design Automation System, we have been investigating methods for proving that the system produces correct designs from correct specifications. This paper presents a mathematical model of the behavior of hardware descriptions which has been used to prove that some of the optimizing transformations applied to abstract hardware descriptions in the system preserve behavioral equivalence. The model goes beyond the usual computational models used in program verification in that it takes into account the proper sequencing of "events" which represent interactions with the environment.

[1]  Susan L. Gerhart,et al.  Proof Theory of Partial Correctness Verification Systems , 1976, SIAM J. Comput..

[2]  Alice C. Parker,et al.  A Formal Method for the Specification, Analysis, and Design of Register-Transfer Level Digital Logic , 1981, 18th Design Automation Conference.

[3]  Robert D. Tennent,et al.  The denotational semantics of programming languages , 1976, CACM.

[4]  G. Moore Are we really ready for VLSI2? , 1979, 1979 IEEE International Solid-State Circuits Conference. Digest of Technical Papers.

[5]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[6]  Bill Lattin VLSI design methodology the problem of the 80's for microprocessor design , 1979, DAC '79.

[7]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[8]  Daniel P. Siewiorek,et al.  The CMU Design Automation System - An Example of Automated Data Path Design , 1979, 16th Design Automation Conference.

[9]  Alfred V. Aho,et al.  A formal approach to code optimization , 1970 .

[10]  John McCarthy,et al.  A basis for a mathematical theory of computation, preliminary report , 1899, IRE-AIEE-ACM '61 (Western).

[11]  C. William Gear,et al.  High speed compilation of efficient object code , 1965, Commun. ACM.

[12]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[13]  Christopher Strachey,et al.  A theory of programming language semantics , 1976 .

[14]  Charles L. Seitz Proceedings of the Caltech Conference on Very Large Scale Integration, held at the California Institute of Technology 22 - 24 January 1979 ; Organized by the Caltech Computer Science Department and the Caltech Industrial Associates Office , 1979 .

[15]  Dennis Francis Kibler,et al.  Power, efficiency, and correctness of transformation systems. , 1978 .

[16]  Sten Fredrik Andler,et al.  Predicate path expressions: a high-level synchronization mechanism , 1979 .

[17]  David B. Loveman,et al.  Program Improvement by Source-to-Source Transformation , 1977, J. ACM.