Automatic verification of Pipelined Microprocessor Control

We describe a technique for verifying the control logic of pipelined microprocessors. It handles more complicated designs, and requires less human intervention, than existing methods. The technique automatically compares a pipelined implementation to an architectural description. The CPU time needed for verification is independent of the data path width, the register file size, and the number of ALU operations. Debugging information is automatically produced for incorrect processor designs. Much of the power of the method results from an efficient validity checker for a logic of uninterpreted functions with equality. Empirical results include the verification of a pipelined implementation of a subset of the DLX architecture.

[1]  Warren A. Hunt FM8501: A Verified Microprocessor , 1994, Lecture Notes in Computer Science.

[2]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[3]  D. Beatty A methodology for formal hardware verification, with application to microprocessors , 1993 .

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

[5]  Randal E. Bryant,et al.  Formal hardware verification by symbolic ternary trajectory evaluation , 1991, 28th ACM/IEEE Design Automation Conference.

[6]  Mark Bickford,et al.  Formal verification of a pipelined microprocessor , 1990, IEEE Software.

[7]  Francisco Corella Automated High-level Verification Against Clocked Algorithmic Specifications , 1993, CHDL.

[8]  Stephen J. Garland,et al.  Using transformations and verification in circuit design , 1992, Formal Methods Syst. Des..

[9]  M. Gordon,et al.  PROVING A COMPUTER CORRECT IN HIGHER ORDER LOGIC , 1986 .

[10]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[11]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

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

[13]  Robert E. Shostak,et al.  A Practical Decision Procedure for Arithmetic with Function Symbols , 1979, JACM.

[14]  Andrew William Roscoe,et al.  Occam in the specification and verification of microprocessors , 1992, Philosophical Transactions of the Royal Society of London. Series A: Physical and Engineering Sciences.

[15]  Paolo Prinetto,et al.  Correct hardware design methodologies : proceedings of the Advanced Research Workshop on Correct Hardware Design Methodologies, Turin, Italy, June 12-14, 1991 , 1992 .

[16]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[17]  David Cyrluk,et al.  Microprocessor Verification in PVS - A Methodology and Simple Example , 1993 .

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

[19]  Edmund M. Clarke,et al.  Representing circuits more efficiently in symbolic model checking , 1991, 28th ACM/IEEE Design Automation Conference.