Formal verification for microprocessors with extendable instruction set

The correctness of processors is a key for their application. Although some verification methods were developed and successfully applied to conventional microprocessors, only a few of them were used in the context of application specific devices. This work introduces a formal verification approach for a reconfigurable microprocessor with extendable instruction set. The application of this approach is demonstrated using register transfer description of the CoMPARE processor and the Stanford Validity Checker as prover. Some undesired side effects of different instructions that were not discovered during the simulation were found by the verification process. In addition some deficiencies of the hardware description notation as specification formalism were shown.

[1]  Maya Gokhale,et al.  The NAPA adaptive processing architecture , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

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

[3]  David L. Dill,et al.  Validity Checking for Combinations of Theories with Equality , 1996, FMCAD.

[4]  Xiaoyu Song,et al.  Multiway Decision Graphs for Automated Hardware Verification , 1997, Formal Methods Syst. Des..

[5]  Rahul Razdan,et al.  PRISC: programmable reduced instruction set computers , 1994 .

[6]  Ralph Wittig,et al.  OneChip: an FPGA processor with reconfigurable logic , 1996, 1996 Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[7]  Rainer G. Spallek,et al.  CoMPARE: A Simple Reconfigurable Processor Architecture Exploiting Instruction Level Parallelism , 1998 .

[8]  Robert K. Brayton,et al.  Automatic Datapath Abstraction In Hardware Systems , 1995, CAV.

[9]  Greg Nelson,et al.  Fast Decision Procedures Based on Congruence Closure , 1980, JACM.

[10]  John Wawrzynek,et al.  Garp: a MIPS processor with a reconfigurable coprocessor , 1997, Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186).

[11]  Natarajan Shankar,et al.  On Shostak's Decision Procedure for Combinations of Theories , 1996, CADE.

[12]  Michael J. Wirthlin,et al.  The Nano Processor: a low resource reconfigurable processor , 1994, Proceedings of IEEE Workshop on FPGA's for Custom Computing Machines.

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

[14]  David L. Dill,et al.  Automatic verification of Pipelined Microprocessor Control , 1994, CAV.

[15]  Robert E. Shostak,et al.  Deciding Combinations of Theories , 1982, JACM.

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

[17]  David L. Dill,et al.  A decision procedure for bit-vector arithmetic , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[18]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[19]  Reiner W. Hartenstein,et al.  An Internet Based Development Framework for Reconfigurable Computing , 1999, FPL.

[20]  Harvey F. Silverman,et al.  Processor reconfiguration through instruction-set metamorphosis , 1993, Computer.