Formal verification of an ARM processor

This paper presents a detailed description of the application of a formal verification methodology to an ARM processor. The processor, a hybrid between the ARM7 and the StrongARM processors, uses features such as a 5-stage instruction pipeline, predicated execution, forwarding logic and multi-cycle instructions. The instruction set of the processor was defined as a set of abstract assertions. An implementation mapping was used to relate the abstract states in these assertions to detailed circuit states in the gate-level implementation of the processor. Symbolic Trajectory Evaluation was used to verify that the circuit fulfills each abstract assertion under the implementation mapping. The verification was done concurrently with the design implementation of the processor. Our verification did uncover 4 bugs that were reported back to the designer.

[1]  Randal E. Bryant,et al.  On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication , 1991, IEEE Trans. Computers.

[2]  Mandayam K. Srivas,et al.  Applying formal verification to the AAMP5 microprocessor: A case study in the industrial use of formal methods , 1996, Formal Methods Syst. Des..

[3]  Randal E. Bryant,et al.  Verifying Nondeterministic Implementations of Deterministic Systems , 1996, FMCAD.

[4]  R. Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD 1993.

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

[6]  Randal E. Bryant,et al.  Formal hardware verification by symbolic trajectory evaluation , 1997 .

[7]  Jun Sawada,et al.  Trace Table Based Approach for Pipeline Microprocessor Verification , 1997, CAV.

[8]  Kenneth L. McMillan,et al.  Fitting Formal Methods into the Design Cycle , 1994, 31st Design Automation Conference.

[9]  F. Somenzi,et al.  Who are the variables in your neighbourhood , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

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

[11]  Randal E. Bryant,et al.  Efficient Modeling of Memory Arrays in Symbolic Simulation , 1997, CAV.

[12]  Fabio Somenzi,et al.  Who are the variables in your neighborhood , 1995, ICCAD.

[13]  Richard Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD.

[14]  Alex Van Someren,et al.  The Arm Risc Chip: A Programmer's Guide , 1994 .

[15]  Randal E. Bryant,et al.  ACV: an arithmetic circuit verifier , 1996, Proceedings of International Conference on Computer Aided Design.

[16]  Randal E. Bryant,et al.  Formal verification of a superscalar execution unit , 1997, DAC.