An Abstract Model of Behavior for Hardware Descriptions

As part of our research on the Carnegie-Mellon University Design Automation System, we have been investigating methods for proving that the system produces correct designs from correct specifications. We have developed a mathematical model for the behavior of hardware descriptions, which we have used to prove that some of the optimizing transformations used in the design system preserve behavioral equivalence. The model, which is based on regular expressions modified by predicates to show data dependence, goes beyond the usual computational models used in program verification, in that it takes into account the proper sequencing of those "events" which represent interactions with the environment. This paper presents the model, shows how it can be used to represent the behavior of descriptions in an ISP-like hardware description language, and gives an example proof of a transformation.

[1]  John McCarthy,et al.  A Basis for a Mathematical Theory of Computation1) , 1959 .

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

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

[4]  Mario R. Barbacci,et al.  Automated exploration of the design space for register transfer (RT) systems , 1973, ISCA 1973.

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

[6]  William H. Joyner,et al.  Automated proofs of microprogram correctness , 1976, MICRO 9.

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

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

[9]  Todd Jeffry Wagner Hardware verification , 1977 .

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

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

[12]  Daniel P. Siewiorek,et al.  A Technology-Relative Computer-Aided Design System: Abstract Representations, Transformations, and Design Tradeoffs , 1978, 15th Design Automation Conference.

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

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

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

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

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

[18]  Daniel Gajski,et al.  Automatic Design with Dependence Graphs , 1980, 17th Design Automation Conference.

[19]  Daniel P. Siewiorek,et al.  A design methodology and computer aids for digital VLSI systems , 1981 .

[20]  Mario Barbacci,et al.  Instruction set processor specifications (ISPS): The notation and its applications , 1981, IEEE Transactions on Computers.

[21]  Donald E. Thomas,et al.  A Technology Relative Logic Synthesis and Module Selection System , 1981, 18th Design Automation Conference.

[22]  Daniel P. Siewiorek,et al.  Measuring designer performance to verify design automation systems , 1981, IEEE Transactions on Computers.

[23]  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.

[24]  Alice C. Parker,et al.  Algorithms for Multiple-Criterion Design of Microprogrammed Control Hardware , 1981, 18th Design Automation Conference.

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