Abstract
We address the problem of verification of implementations of complex processors using architectural level automatic test program generators. A number of automatic test program generators exist, and are widely used for verification of the compliance of complex processors with their architectures. We define a four stage verification process: (1) describing the processor implementation control as a Finite State Machine (2) deriving transition coverage on the FSM using methods from formal verification (3) translation of the covering tours to constraints on test programs (4) generation of test programs for each set of constraints. This process combines a high quality and well defined theoretical method along with tools used in industrial practice. There are a number of advantages of our Method: (a) The last three stages are automated (b) Implementing the FSM model involves relatively little expert designers time (c) The method is feasible for modem superscalar processors and was studied on an enhanced PowerPC processor. We describe a formal framework for the new process, identify the obstacles that are encountered in the modeling phase, and show how to overcome them.
Preview
Unable to display preview. Download preview PDF.
References
A. Aharon, A. Bar-David, B. Dorfman, E. Gofman, M. Leibowitz, V. Shwartzbund “Verification of the IBM RISC System/6000 by a Dynamic Biased Pseudo-Random Test Program Generator”, In IBM Systems Journal, April 1991
B. Beizer, “The Pentium Bug, an Industry Watershed”, Testing Techniques Newsletter On-Line Edition, September 1995
A. Aharon, D. Goodman, M. Levinger, Y Lichtenstein, Y. Malka, C. Metzger, M. Molco, G. Shurek “Test Program Generation for Functional Verification of PowerPC Processors in IBM”, In proceeding of ACM/ IEEE Design Automation Conference 1995
Y. Lichtenstein, Y. Malka, A. Aharon “Model Based Test Generation for Processor Design Verification”, In Innovative Applications of Artificial Intelligence (IAAI) AAAI Press 1994
Ahi A. M., Burroughs G.D., Gore A.B., LaMar S.W., Lin C.R., Wieman A.L “Design Verification of the HP9000 Series 7000 pa-risc Workstations”, Hewlett-Packard-Journal num. 8 vol. 14 August 1992
A. Chandra, V. Iyengar, D. Jameson, R. Jawalker, I. Nair, B. Rosen, M. Mullen, J. Yoor, R. Armoni, D. Geist, Y. Wolfstal “AVPGEN — A Test Case Generator for Architecture Verification”, IEEE Transactions on VLSI Systems 6(6) June 1995
D. Geist, M. Farkas, A. Landver, Y. Lichtenstein, S. Ur, Y. Wolfsthal “Coverage Directed Generation Using Symbolic Techniques”, FMCAD 96
E. J. Weyuker, B. Jeng “Analyzing Partition Testing Strategies”, IEEE Transactions on Software Engineering vol. 17 no. 7 July 1991
E. J. Weyuker, T.J. Ostrand “Theories of Program Testing and the Application of Revealing Subdomains” IEEE Transactions on Software Engineering vol. 6 no 3 May 1980
Y. Abarbanel, Y. Lichtenstein, Y. Malka, S. Ur “Coverage Driven Processor Bug Classification” Submitted to ACM/IEEE Design Automation Conference 1996
G. J. Holtzman, “Design and Validation of Computer Protocols”, Prentice Hall, Englewood Cliffs, NJ 1991
K.L McMillan “Symbolic Model Checking” Kluwer Academic Press, Norwell MA 1993
K.L McMillan “The SMV System DRAFT”, Carnegie Mellon University, Pittsburgh PA 1992
A.K. Chandra, V.S. Iyengar, R.V. Jawalekar, M.P. Mullen, I. Nair, B.K. Rosen “Architectural Verification of Processors Using Symbolic Instruction Graphs”, In Proceedings of the International Conference on Computer Design, October 1994
D. Lewin, L. Fournier, M. Levinger, E. Roytman, G. Shurek “Constraint Satisfaction for Test Program Generation”, IEEE International Phoenix Conference on Communication and Computers, 1995
A.K. Chandra, V.S. Iyengar “Constraint Solving for Test Case Generation”, In Proceedings of ICCD-92, Cambridge Mass, 1992
R. C. Ho, C. Han Yang, M. A. Horowitz, D. L. Dill “Architecture Validation for Processors” In ACM ISCA 1995
H. Iwashita, S. Kowatari, T. Nakata, F. Hirose “Automatic Test Program Generation for Pipelined Processors”, In Proceedings of the International Conference on Computer Aided Design, November 1994
D. L. Beatty, R. E. Bryant “Formally Verifying a Microprocessor Using a Simulation Methodology”, In Proceedings of the ACM/IEEE Design Automation Conference 1994
T. A. Diep, J. P. Shen “Systematic Validation of Pipeline Interlock for Superscalar Microarchitectures” In Proceedings of the 25'th Annual International Symposium on Fault Tolerance, June 1995
H. Iwashita, T. Nakata, F. Hirose “Integrated Design and Test Assistance for Pipeline Controllers”, IEICE Transactions Information Systems (Japan) Vol.E76-D, No. 7, July 1993
C. May, E. Silha, R. Simpson, H. Warren editors “The PowerPC Architecture”, Morgan Kaufmann, 1994
S. Weiss, J. E. Smith “POWER and PowerPC”, Morgan Kaufmann, 1994
D. Lewin, D. Lorenz, S. Ur “A Processor Implementation Verification Methodology”, IBM Unpublished Document
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lewin, D., Lorenz, D., Ur, S. (1996). A methodology for processor implementation verification. In: Srivas, M., Camilleri, A. (eds) Formal Methods in Computer-Aided Design. FMCAD 1996. Lecture Notes in Computer Science, vol 1166. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0031804
Download citation
DOI: https://doi.org/10.1007/BFb0031804
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61937-6
Online ISBN: 978-3-540-49567-3
eBook Packages: Springer Book Archive