• DocumentCode
    991851
  • Title

    Automated verification of behavioral equivalence for microprocessors

  • Author

    Corella, Francisco

  • Author_Institution
    IBM Thomas J. Watson Res. Center, Yorktown Heights, NY, USA
  • Volume
    43
  • Issue
    1
  • fYear
    1994
  • fDate
    1/1/1994 12:00:00 AM
  • Firstpage
    115
  • Lastpage
    117
  • Abstract
    Presents a new method for verifying, in a fully automated way, that two synchronous sequential circuits have the same input/output behavior. The method applies to designs in which a distinction between data path and control can be made, and in particular to microprocessors. The verification is carried out at the register-transfer level. In contrast with previous methods, our procedure is not limited by the total number of latches in the circuit: it runs in time that is independent of the width of the data path. A price has to be paid for this: the procedure does not always terminate, and may produce false negatives. We argue, however, that these problems should not come up when verifying general purpose microprocessors. We have implemented the procedure in Prolog on an IBM RS/6000 workstation, and have tried it on the Tamarack-3 microprocessor previously verified by J.J. Joyce (1990) with the interactive theorem prover HOL at the University of Cambridge. We have verified the equivalence of several alternative implementations to the original one, in times ranging from 11 to 26 s, and we have detected the errors in several incorrect implementations, in times ranging from 1 to 26 s
  • Keywords
    IBM computers; abstract data types; artificial intelligence; circuit CAD; finite state machines; flip-flops; formal verification; logic programming; logic testing; microprocessor chips; sequential circuits; 1 to 26 s; HOL; IBM RS/6000 workstation; Prolog; Tamarack-3 microprocessor; abstract data types; artificial intelligence; automated hardware verification; behavioral equivalence; computer-aided design; data control; data path; false negatives; finite state machines; general purpose microprocessor design; incorrect implementations; input/output behavior; interactive theorem prover; latches; logic programming; nonterminating procedures; register-transfer level; synchronous sequential circuits; Automata; Automatic control; Boolean functions; Computer errors; Data structures; Design methodology; Latches; Microprocessors; Sequential circuits; Workstations;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/12.250616
  • Filename
    250616