A Practical Methodology for the Formal Verification of RISC Processors

  • Authors:
  • Sofiéne Tahar;Ramayya Kumar

  • Affiliations:
  • Department of Electrical and Computer Engineering, Concordia University, Montreal, Canada. E-mail: tahar@ece.concordia.ca;Verysys GmbH, Berlin, Germany. E-mail: kumar@verysys.com

  • Venue:
  • Formal Methods in System Design
  • Year:
  • 1998

Quantified Score

Hi-index 0.02

Visualization

Abstract

In this paper a practical methodology for formally verifyingRISC cores is presented. Using a hierarchical model which reflectsthe abstraction levels used by designers of real RISC processors,proofs between neighboring levels are performed for simplifying theverification process. The proofs are performed by showing that eachinstruction is executed correctly by the pipelined machine withrespect to the semantics of the instruction set architecture. Duringthis proof, temporal abstractions are used to find correspondencesbetween the various levels of abstractions. Additionally, lowerlevel implementational details such as, multiphased clocks and gatelevel descriptions of the final implementation, are accounted for.The overall correctness proof is managed in two complementary steps,namely, {\it pipeline\ data} and {\it pipeline\ control} correctness.In the former, we show that the cumulative effect of pipelinesuboperations yields the data semantics of architecture instructions.While in the latter, we are concerned with interferences (conflicts)between the different instructions and suboperations in the pipeline.We have developed a set of parametrized proof scripts which highlyautomate the different proof tasks. In addition, the pipeline controlproof is constructive, in the sense that the conditions under whichthe pipeline conflicts occur are automatically generated andexplicitly stated thus aiding the user in its removal. All developedspecifications and proof scripts are kept general, so that themethodology could be applied for a wide range of RISC cores (e.g.,those used in embedded systems). In this paper, the describedformalization and proof strategies are illustrated via the DLX RISCprocessor.