Formal verification of sequential hardware: a tutorial

Various formal verification techniques and how they can be applied to sequential hardware, especially at the register-transfer level, are examined. The basic elements of a verification system, as illustrated on the relatively simple problem of verifying combinational circuits, are presented. The more complex problems involved in analyzing sequential systems and the techniques that have been developed to solve them are then considered. Throughout, the focus is on those techniques whose utility has been demonstrated on real systems, including higher order logic, temporal logic, predicate transformers, state-machine models, and model checkers. >

[1]  Edmund M. Clarke,et al.  Automatic verification of asynchronous circuits using temporal logic , 1986 .

[2]  Alice C. Parker,et al.  An Abstract Model of Behavior for Hardware Descriptions , 1983, IEEE Transactions on Computers.

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

[4]  Avra Cohn,et al.  A Proof of Correctness of the Viper Microprocessor: The First Level , 1988 .

[5]  Gregor von Bochmann Hardware Specification with Temporal Logic: An Example , 1982, IEEE Transactions on Computers.

[6]  Masahiro Fujita,et al.  Evaluation and improvement of Boolean comparison method based on binary decision diagrams , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[7]  Wendell E. Cory Symbolic Simulation for Functional Verification with ADLIB and SDL , 1981, 18th Design Automation Conference.

[8]  Vijay Pitchumani,et al.  An Inductive Assertion Method for Register Transfer Level Design Verification , 1983, IEEE Transactions on Computers.

[9]  Edmund M. Clarke,et al.  Automatic Verification of Sequential Circuits Using Temporal Logic , 1986, IEEE Transactions on Computers.

[10]  Kurt Jensen Coloured Petri Nets , 1992, EATCS Monographs in Theoretical Computer Science.

[11]  Robin Milner,et al.  Concurrent Processes and Their Syntax , 1979, JACM.

[12]  George J. Milne,et al.  A Model for Hardware Description and Verification , 1984, 21st Design Automation Conference Proceedings.

[13]  Avra Cohn Correctness properties of the Viper block model: the second level , 1989 .

[14]  J.A. Darringer The Application of Program Verification to Hardware Verification , 1979, 16th Design Automation Conference.

[15]  Albert R. Wang,et al.  Logic verification using binary decision diagrams in a logic synthesis environment , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[16]  Jean Christophe Madre,et al.  Proving circuit correctness using formal comparison between expected and extracted behaviour , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[17]  Serge Haddad,et al.  Specification and properties of a cache coherence protocol model , 1986, European Workshop on Applications and Theory of Petri Nets.

[18]  John A. Darringer The Application of Program Verification to Hardware Verification , 1979, DAC 1979.

[19]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[20]  Robin Milner,et al.  Calculi for Synchrony and Asynchrony , 1983, Theor. Comput. Sci..

[21]  Fumihiro Maruyama,et al.  A Verification Technique for Hardware Designs , 1982, DAC 1982.

[22]  Paliath Narendran,et al.  Formal verification of the Sobel image processing chip , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[23]  Ben C. Moszkowski,et al.  A Temporal Logic for Multilevel Reasoning about Hardware , 1985, Computer.

[24]  Srinivas Devadas,et al.  On The Verification of Sequential Machines at Differing Levels of Abstraction , 1987, 24th ACM/IEEE Design Automation Conference.

[25]  Keith Hanna,et al.  Specification and Verification using Higher-Order Logic , 1985 .

[26]  Michael K. Molloy Discrete Time Stochastic Petri Nets , 1985, IEEE Transactions on Software Engineering.

[27]  Fred Krögr Temporal Logic Of Programs , 1987 .

[28]  George J. Milne Abstraction and Nondeterminism in Concurrent Systems , 1982, ICDCS.

[29]  J. Paul Roth Hardware Verification , 1977, IEEE Transactions on Computers.

[30]  S. D. Crocker,et al.  State deltas: a formalism for representing segments of computation. , 1977 .

[31]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[32]  Anthony S. Wojcik,et al.  Formal Design Verification of Digital Systems , 1983, 20th Design Automation Conference Proceedings.

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

[34]  Miriam Leeser Reasoning about the function and timing of integrated circuits with interval temporal logic , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[35]  Todd Jeffry Wagner Hardware verification , 1977 .

[36]  Mandalagiri S. Chandrasekhar,et al.  Application of Term Rewriting Techniques to Hardware Design Verification , 1987, 24th ACM/IEEE Design Automation Conference.

[37]  Howard Barringer,et al.  Formal specification and verification of hardware: a comparative case study , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[38]  R. P. Kurshan,et al.  Reducibility in analysis of coordination , 1988 .

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

[40]  Edmund M. Clarke,et al.  Sequential circuit verification using symbolic model checking , 1991, DAC '90.

[41]  Fumihiro Maruyama Hardware Verification , 1985, Computer.

[42]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

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

[44]  George J. Milne,et al.  CIRCAL and the representation of communication, concurrency, and time , 1985, TOPL.

[45]  Zohar Manna,et al.  A Hardware Semantics Based on Temporal Intervals , 1983, ICALP.

[46]  Benjamin Charles Moszkowski Reasoning about Digital Circuits , 1983 .

[47]  Robert P. Kurshan,et al.  Software for analytical development of communications protocols , 1990, AT&T Technical Journal.

[48]  Brian Cantwell Smith Limits of correctness in computers , 1995 .

[49]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[50]  Tom Melham,et al.  Abstraction Mechanisms for Hardware Verification , 1988 .

[51]  A. Cohn The notion of proof in hardware verification , 1989 .

[52]  Larry Lewis Hanes Logic Design Verification Using Static Analysis , 1983 .