Skip to main content
  • 144 Accesses

Abstract

An introduction to a number of fully mechanized methods of formal hardware verification is given. Decision-diagram based procedures for the verification of combinational circuits at the gate- and word-level are surveyed. Fixed-point calculation techniques for equivalence and property verification of sequential machines are studied. The verification of processor architectures at the instruction-set and algorithmic register-transfer level is discussed. A method of formally correct synthesis of pipelined architectures is presented.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Abadi and L. Lamport. The existence of refinement mappings. Research report, DEC Systems Research Center, 1988.

    Google Scholar 

  2. C. Barrett, D. Dill, and J. Levitt. Validity checking for combinations of theories with equality. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 187–201. Springer, 1996.

    Google Scholar 

  3. A. Bartsch, H. Eveking, H.-J. Faerber, M. Kelelatchew, J. Pinder, and U. Schellin. LOVERT-a logic verifier of register-transfer level descriptions. In L. Claesen, editor, Proc. IMEC-IFIP Workshop on Applied Formal Methods for Correct VLSI Design, Vol. II, pages 247–256. North-Holland, 1990.

    Google Scholar 

  4. B. Becker and R. Drechsler. How many decomposition types do we need? In Proc. ED&TC’95, pages 438–443, 1995.

    Google Scholar 

  5. A.J. Bernstein. Analysis of programs for parallel processing. IEEE Transactions on Computers, 15:757–763, 1966.

    MATH  Google Scholar 

  6. A. Biere, E. Clarke, R. Raimi, and Y. Zhu. Verifying safety properties of a PowerPC™ microprocessor using symbolic model checking without BDD’s. In Proc. CAV’99, pages 60–71, 1999.

    Google Scholar 

  7. E. Börger and S. Mazzanti. A practical method for rigorously controllable hardware design. In Proc. ZUM’97, LNCS 1212, pages 151–187. Springer, 1997.

    Google Scholar 

  8. J. Bormann, J. Lohse, M. Payer, and G. Venzl. Model checking in industrial hardware design. In Proc. DAC’95, pages 298–303, 1995.

    Google Scholar 

  9. D. Borrione, H. Eveking, and L. Pierre. Formal proofs from HDL descriptions. In J. Mermet, editor, Fundamentals and standards in hardware description languages, 249 of NATO ASI series E, pages 155–194. Kluwer, 1993.

    Google Scholar 

  10. K.S. Brace, R.L. Rudell, and R.E. Bryant. Efficient implementation of a BDD package. In Proc. DAC’90, pages 40–45, 1990.

    Google Scholar 

  11. B. Brock, M. Kaufmann, and J.S. Moore. ACL2 theorems about commercial microprocessors. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 275–293. Springer, 1996.

    Google Scholar 

  12. B.C. Brock, W.A. Hunt, and M. Kaufmann. The FM9001 microprocessor proof. Technical report 86, Computational Logic Inc., 1994.

    Google Scholar 

  13. R.E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transaction on Computers, 35:677–691, 1986.

    MATH  Google Scholar 

  14. R.E. Bryant. Symbolic boolean manipulation with ordered binary decision diagrams. ACM Computing Surveys, 24:293–318, 1992.

    Google Scholar 

  15. R.E. Bryant, D.L. Beatty, and C.J.H. Seger. Formal hardware verification by symbolic ternary trajectory evaluation. In Proc. DAC’91, pages 397–402, 1991.

    Google Scholar 

  16. R.E. Bryant and Y.A. Chen. Verification of arithmetic functions with binary moment diagrams. In Proc. DAC’95, pages 535–541, 1995.

    Google Scholar 

  17. J.R. Burch. Techniques for verifying superscalar microprocessors. In Proc. DAC’96, pages 552–557, 1996.

    Google Scholar 

  18. J.R. Burch and D.L. Dill. Automatic verification of pipelined microprocessor control. In D. Dill, editor, Proc. Computer Aided Verification’ 94, LNCS 818, pages 68–80. Springer, 1994.

    Google Scholar 

  19. J.R. Burch, E.M. Clarke, and D.E. Long. Representing circuits more efficiently in symbolic model checking. In Proc. DAC’91, pages 403–407, 1991.

    Google Scholar 

  20. J.R. Burch, E.M. Clarke, D.E. Long, K.L. McMillan, and D.L. Dill. Symbolic model checking for sequential circuit verification. IEEE Transactions on CAD, 13(4):401–424, 1994.

    Google Scholar 

  21. J.R. Burch, E.M. Clarke, K.L. McMillan, and D.L. Dill. Sequential circuit verification using symbolic model checking. In Proc. DAC’90, pages 46–51, 1990.

    Google Scholar 

  22. G. Cabodi, P. Camurati, L. Lavagno, and S. Quer. Disjunctive partitioning and partial iterative squaring. In Proc. DAC’97, pages 728–733, 1997.

    Google Scholar 

  23. G. Cabodi, P. Camurati, and S. Quer. Improved reachability analysis of large finite state machines. In Proc. ICCAD’96, pages 354–360, 1996.

    Google Scholar 

  24. Y.A. Chen and R.E. Bryant. *PHDD: an efficient graph representation for floating point circuit verification. In Proc. ICCAD’97, pages 2–7, 1997.

    Google Scholar 

  25. E. Clarke, M. Fujita, and X. Zhao. Hybrid decision diagrams-overcoming the limitations of MTBDD’s and BMD’s. In Proc. ICCAD’95, 1995.

    Google Scholar 

  26. E.M. Clarke, E.A. Emerson, and A.P. Sistla. Automatic verification of finitestate concurrent systems using temporal logic specifications. ACM Trans. on Programming Languages and Systems, 8(2):244–263, 1986.

    MATH  Google Scholar 

  27. E.M. Clarke, O. Grumberg, and D.E. Long. Model checking and abstraction. In Proc. POPL’92, pages 343–354, 1992.

    Google Scholar 

  28. E.M. Clarke, M. Khaira, and X. Zhao. Word level model checking-avoiding the Pentium FDIV error. In Proc. DAC’96, pages 645–648, 1996.

    Google Scholar 

  29. E.M. Clarke, K.L. McMillan, X. Zhao, M. Fujita, and J. Yang. Spectral transforms for large boolean functions with application to technology mapping. In Proc. DAC’93, pages 54–60, 1993.

    Google Scholar 

  30. E.M. Clarke and J.M. Wing. Formal methods: state of the art and future directions. ACM Computing Surveys, 28(4):626–643, 1996.

    Google Scholar 

  31. O. Coudert, C. Berthet, and J.C. Madre. Verification of synchronous sequential machines based on symbolic execution. In Proc. Workshop on Automatic Verification Methods for Finite State Systems, Grenoble, pages 365–373, 1989.

    Google Scholar 

  32. D. Cyrluk. Microprocessor verification in PVS. Technical Report SRI-CSL-93-12, SRI International, 1993.

    Google Scholar 

  33. D. Cyrluk. Inverting the abstraction mapping: a methodology for hardware verification. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 172–186. Springer, 1996.

    Google Scholar 

  34. D. Cyrluk, O. Möller, and H. Rueß. An efficient decision procedure for the theory of fixed-sized bit-vectors. In Proc. CAV’97, LNCS 1254, pages 60–71. Springer, 1997.

    Google Scholar 

  35. W. Damm and A. Pnueli. Verifying out-of-order executions. In E. Cerny and D. Probst, editors, Proc. CHARME’ 97-Advances in Hardware and Verification Methods, pages 23–47. Chapman & Hall, 1997.

    Google Scholar 

  36. R. Drechsler and B. Becker. Graphbasierte Funktionsdarstellung. Teubner, 1998.

    Google Scholar 

  37. R. Drechsler, B. Becker, and S. Ruppertz. K*BMD’s: a new data structure for verification. In Proc. EDBTC’96, pages 2–8, 1996.

    Google Scholar 

  38. R. Drechsler, A. Sarabi, M. Theobald, B. Becker, and M.A. Perkowski. Efficient representation and manipulation of switching functions based on ordered Kronecker functional decision diagrams. In Proc. DAC’94, pages 415–419, 1994.

    Google Scholar 

  39. E.A. Emerson. Temporal and modal logic. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Vol. B, pages 995–1072. Elsevier, 1990.

    Google Scholar 

  40. H. Eveking. Verification, synthesis and correctness-preserving transformations-cooperative approaches to correct hardware design. In [96], 1990.

    Google Scholar 

  41. H. Eveking. Verifikation digitaler Systeme. Teubner, 1991.

    Google Scholar 

  42. H. Eveking, H. Hinrichsen, and G. Ritter. Automatic verification of scheduling results in high-level synthesis. In Proc. DATE’99, pages 59–64, 1999.

    Google Scholar 

  43. V.M. Glushkov. Automata theory and formal microprogram transformations. Kibernetika, 1(5):1–9, 1965.

    Google Scholar 

  44. A. Goel, K. Sajid, H. Zhou, A. Aziz, and V. Singhal. BDD based procedures for a theory of equality with uninterpreted functions. In Proc. CAV’98, LNCS 1427, pages 244–255. Springer, 1998.

    Google Scholar 

  45. G.D. Hachtel and F. Somenzi. Logic synthesis and verification algorithms. Kluwer, 1996.

    Google Scholar 

  46. S. Hazelhurst and C.J.H. Seger. A simple theorem prover based on symbolic trajectory evaluation and OBDD’s. Technical Report 93-41, Dept. of Computer Science, Univ. of British Columbia, 1993.

    Google Scholar 

  47. J. L. Hennessy and D. A. Patterson. Computer architecture-a quantitative approach (2nd ed.). Morgan Kaufmann, 1996.

    Google Scholar 

  48. H. Hinrichsen. URL http://www.rs.e-technik.tu-darmstadt.de/~hinni/document/index.html, 1998.

    Google Scholar 

  49. H. Hinrichsen, H. Eveking, and G. Ritter. Formal synthesis for pipeline design. In Proc. Discrete Mathematics and Theoretical Computer Science Conference (DMTCS) and Computing: The Australian Theory Symposium (CATS), 21, number 3 of Discrete Mathematics and Theoretical Computer Science, pages 247–261. Springer, 1999.

    Google Scholar 

  50. S. Höreth. Implementation of a multiple-domain decision diagram package. In E. Cerny and D. Probst, editors, Proc. CHARME’97-Advances in Hardware and Verification Methods, pages 185–202. Chapman & Hall, 1997.

    Google Scholar 

  51. S. Höreth. URL http://www.rs.e-technik.tu-darmstadt.de/~sth/demo.html, 1997.

    Google Scholar 

  52. S. Höreth and R. Drechsler. Dynamic minimization of word-level decision diagrams. In Proc. DATE98, pages 612–617, 1998.

    Google Scholar 

  53. C. Ip and D. Dill. Better verification through symmetry. Formal Methods in System Design, 9:41–75, 1996.

    Article  Google Scholar 

  54. A. Jain, K.L. Nelson, and R.E. Bryant. Verifying nondeterministic implementations of deterministic systems. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 109–125. Springer, 1996.

    Google Scholar 

  55. R.B. Jones, D.L. Dill, and J.R. Burch. Efficient validity checking for processor verification. In Proc. ICCAD’95, 1995.

    Google Scholar 

  56. U. Kebschull, E. Schubert, and W. Rosenstiel. Multilevel logic synthesis based on functional decision diagrams. In Proc. EuroDAC’92, pages 43–47, 1992.

    Google Scholar 

  57. Th. Kropf, editor. Formal hardware verification: methods and systems in comparison, LNCS 1287. Springer, 1997.

    Google Scholar 

  58. A. Kuehlmamm and F. Krohm. Equivalence checking using cuts and heaps. In Proc. DAC’97, pages 263–268, 1997.

    Google Scholar 

  59. R. Kumar, C. Blumenröhr, D. Eisenbiegler, and D. Schmid. Formal synthesis in circuit design-a classification and survey. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 294–309. Springer, 1996.

    Google Scholar 

  60. W. Kunz. Hannibal: an efficient tool for logic verification based on recursive learning. In Proc. ICCAD’93, 1993.

    Google Scholar 

  61. R.P. Kurshan. Computer-aided verification of coordinating processes-the automata-theoretic approach. Princeton Univ. Press, 1994.

    Google Scholar 

  62. R.P. Kurshan. Formal verification in a commercial setting. In Proc. DAC’97, pages 258–262, 1997.

    Google Scholar 

  63. Y.T. Lai and S. Sastry. Edge-valued binary decision diagrams for multi-level hierarchical verification. In Proc. ICCAD’ 93, pages 188–193, 1993.

    Google Scholar 

  64. J. Levitt and K. Olukotun. A scalable formal verification methodology for pipelined microprocessors. In Proc. DAC’96, pages 558–563, 1996.

    Google Scholar 

  65. J. Levitt and K. Olukotun. Verifying correct pipeline implementation for microprocessors. In Proc. ICCAD’97, pages 162–169, 1997.

    Google Scholar 

  66. Z. Manna and A. Pnueli. The temporal logic of reactive and concurrent systems. Springer, 1991.

    Google Scholar 

  67. Y. Matsunaga. An efficient equivalence checker for combinational circuits. In Proc. DAC’96, pages 629–634, 1996.

    Google Scholar 

  68. K.L. McMillan. Symbolic model checking. Kluwer, 1993.

    Google Scholar 

  69. K.L. McMillan. Verification of infinite state systems by compositional model checking. In Proc. CHARME’99, LNCS 1703, pages 219–233. Springer, 1999.

    Google Scholar 

  70. Chr. Meinel and T. Theobald. Algorithms and data-structures in VLSI design. Springer, 1998.

    Google Scholar 

  71. J.P. Mermet, editor. Fundamentals and standards in hardware description languages, 249 of NATO ASI series E. Kluwer, 1993.

    Google Scholar 

  72. S. Minato. Binary decision diagrams and applications for VLSI CAD. Kluwer, 1996.

    Google Scholar 

  73. J.S. Moore, T. Lynch, and M. Kaufmann. A mechanically checked proof of the correctness of the kernel of the AMD586 floating point division algorithm. Research Report, Computational Logic Inc., 1996.

    Google Scholar 

  74. A. Narayan, A.J. Isles, J. Jain, R.K. Brayton, and A.L. Sangiovanni-Vincentelli. Reachability analysis using partitioned-ROBDD’s. In Proc. ICCAD’97, pages 388–393, 1997.

    Google Scholar 

  75. G. Nelson and D.C. Oppen. Fast decision procedures based on congruence closure. In JACM, 27, pages356–364, 1980.

    MathSciNet  MATH  Google Scholar 

  76. K.L. Nelson, A. Jain, and R.E. Bryant. Formal verification of a superscalar execution unit. In Proc. DAC’97, pages 161–166, 1997.

    Google Scholar 

  77. J. O’Leary, X. Zhao, R. Gerth, and C. Seger. Formally verifying IEEE compliance of floating point hardware. Intel Technology Journal, (Q1), 1999.

    Google Scholar 

  78. M. Pandey, R. Raimi, R.E. Bryant, and M.S. Abadir. Formal verification of content addressable memories using symbolic trajectory evaluation. In Proc. DAC’97, pages 167–172, 1997.

    Google Scholar 

  79. N. Park and A.C. Parker. Sehwa: a software package for synthesis of pipelines from behavioral specifications. IEEE Transactions on CAD, 7(3):356–370, 1988.

    Google Scholar 

  80. M. Rahmouni and A.A. Jerraya. Formulation end evaluation of scheduling techniques for control flow graphs. In Proc. EuroDAC’95, Brighton, 1995.

    Google Scholar 

  81. G. Ritter, H. Eveking, and H. Hinrichsen. Formal verification of designs with complex control by symbolic simulation. In CHARME’99, LNCS 1703, pages 234–249. Springer, 1999.

    Google Scholar 

  82. G. Ritter, H. Hinrichsen, and H. Eveking. Formal verification of descriptions with distinct order of memory operations. In ASIAN’99, 5. Springer, 1999.

    Google Scholar 

  83. R. Rudell. Dynamic variable ordering for Ordered Binary Decision Diagrams. Proc. ICCAD’93, pages 42–47, 1993.

    Google Scholar 

  84. T. Sasao and M. Fujita. Representations of discrete functions. Kluwer, 1996.

    Google Scholar 

  85. C.J.H. Seger and R.E. Bryant. Formal verification by symbolic evaluation of partially-ordered trajectories. Formal Methods in System Design, 6:147–189, 1995.

    Article  Google Scholar 

  86. M. Sheeran and G. Stålmarck. A tutorial on Stiilmarck’s proof procedure for propositional logic. In G. Gopalakrishnan and P. Windley, editors, Proc. FMCAD’ 98, LNCS 1522, pages 82–99. Springer, 1998.

    Google Scholar 

  87. R.E. Shostak. A practical decision procedure for arithmetic with function symbols. JACM, 26:351–360, 1979.

    MathSciNet  MATH  Google Scholar 

  88. M.K. Srivas and S.P. Miller. Formal verification of an avionics microprocessor. Technical Report SRI-CSL-95-04, SRI International, 1995.

    Google Scholar 

  89. D. Stoffel and W. Kunz. Record & play: a structural fixed point iteration for sequential circuit verification. In Proc. ICCAD’97, pages 394–399, 1997.

    Google Scholar 

  90. R.E. Tarjan. Efficiency of a good but not linear set union algorithm. JACM, 22:215–225, 1975.

    MathSciNet  MATH  Google Scholar 

  91. C. van Eijk. Sequential equivalence checking without state space traversal. In Proc. DATE’98, pages 618–623, 1998.

    Google Scholar 

  92. C. van Eijk and G. Janssen. Exploiting structural similarities in a BDD-based verification method. In Proc. Theorem Provers in Circuit Design, LNCS 901, pages 110–125. Springer, 1994.

    Google Scholar 

  93. C.A.J. van Eijk. Formal methods for the verification of digital circuits. Dissertation, Technical University of Eindhoven, 1997.

    Google Scholar 

  94. M.N. Velev and R.E. Bryant. Superscalar processor verification using efficient reductions of the logic of equality with uninterpreted functions to propositional logic. In Proc. CHARME’99, LNCS 1703, pages 37–53. Springer, 1999.

    Google Scholar 

  95. P.J. Windley and J.R. Burch. Mechanically checking a lemma used in an automatic verification tool. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 362–376. Springer, 1996.

    Google Scholar 

  96. M. Yoeli, editor. Formal Verification of Hardware Design. IEEE Computer Society Press Tutorial, 1990.

    Google Scholar 

  97. H. Zhang. SATO: An efficient propositional prover. In Proc. CADE’97, LNAI 1249, pages 272–275. Springer, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Eveking, H. (2000). Machine Assisted Verification. In: Börger, E. (eds) Architecture Design and Validation Methods. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-57199-2_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-57199-2_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-62976-1

  • Online ISBN: 978-3-642-57199-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics