This chapter overviewes Binary Decision Diagrams (BDDs) and their application in Formal Hardware Verification. BDDs are first described as a representation formalism for Boolean functions. BDDs are directed acyclic graphs, deriving their efficiency from canonicity, and from their ability to be exponentially more compact, in terms of node count, than alternative Boolean representations. The chapter introduces the main BDD operators, in terms of recursive graph manipulation functions. Some of the most succesful Formal Verification techniques, based on BDD engines, are then reported. The description is limited to Reduced Ordered BDDs (ROBDDs), which, albeight being just one among several decomposition types, are the most widely used and the most general one.


Model Check Boolean Function Temporal Logic Truth Assignment Boolean Expression 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bryant, R.E.: Graph–Based Algorithms for Boolean Function Manipulation. IEEE Trans. on Computers 35(8), 677–691 (1986)CrossRefMATHGoogle Scholar
  2. 2.
    Lee, C.Y.: Representation of Switching Circuits by Binary-Decision Programs. Bell System Technical Journal 38, 985–999 (1959)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Akers, S.B.: Binary Decision Diagram. IEEE Trans. on Computers C-27(6), 509–516 (1978)CrossRefMATHGoogle Scholar
  4. 4.
    Bryant, R.E.: Symbolic Boolean Manipulation with Ordered Binary–Decision Diagrams. ACM Computing Surveys 24(3), 293–318 (1992)MathSciNetCrossRefGoogle Scholar
  5. 5.
    Clarke, E., Kurshan, R.: Computer-Aided Verification. IEEE Spectrum 33(6), 61–67 (1996)CrossRefGoogle Scholar
  6. 6.
    Burch, J.R., Clarke, E.M., Long, D.E., McMillan, K.L., Dill, D.L.: Symbolic Model Checking for Sequential Circuit Verification. IEEE Trans. on Computer-Aided Design 13(4), 401–424 (1994)CrossRefGoogle Scholar
  7. 7.
    Clarke, E., Grumberg, O., Long, D.: Model Checking and Abstraction. In: Proc. ACM Symposium on Principles of Programming Languages, New York (January 1992)Google Scholar
  8. 8.
    Zhang, L., Malik, S.: The Quest for Efficient Boolean Satisfiability Solvers. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 17–36. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  9. 9.
    Hu, A.J.: Formal Hardware Verification with BDDs: An Introduction (July 1999)Google Scholar
  10. 10.
    Andersen, H.R.: An Introduction to Binary Decision Diagrams (October 1997),
  11. 11.
    Moore, E.F., Shannon, C.E.: Reliable Circuits Using Less Reliable Relays I. Journal Franklin Institute 262, 191–208 (1956)MathSciNetCrossRefMATHGoogle Scholar
  12. 12.
    Thomas, W.: Automata on Infinite Objects. In: Handbook of Theoretical Computer Science, The Netherlands and Cambridge - Massachussets, vol. B, pp. 134–191. MIT Press and Elsevier Science Publishers (1990)Google Scholar
  13. 13.
    Kurshan, R.P.: Computer Aided Verification of Coordinating Processes. Princeton University Press, Princeton (1994)MATHGoogle Scholar
  14. 14.
    Hoare, C.A.R.: Communicating sequential processes. Prentice-Hall International series in computer science. Prentice-Hall, Englewood Cliffs (1985)MATHGoogle Scholar
  15. 15.
    Milner, R.: Communication and Concurrency. International Series in Computer Science. Prentice-Hall International, Englewood Cliffs (1989)MATHGoogle Scholar
  16. 16.
    Clarke, E., Emerson, M.: Synthesis of synchronization skeletons for branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, Springer, Heidelberg (1982)CrossRefGoogle Scholar
  17. 17.
    Emerson, E.A.: Temporal and modal logic, pp. 997–1072 (1990)Google Scholar
  18. 18.
    Bryant, R.E.: A Methodology for Hardware Verification Based on Logic Simulation. Journal of the Association for Computing Machinery 38(2), 299–328 (1991)MathSciNetCrossRefMATHGoogle Scholar
  19. 19.
    Coudert, O., Madre, J.C.: A Unified Framework for the Formal Verification of Sequential Circuits. In: Proc. Int’l. Conf. on Computer-Aided Design, San Jose, California, pp. 126–129 (November 1990)Google Scholar
  20. 20.
    Touati, H., Savoj, H., Lin, B., Brayton, R.K., Sangiovanni-Vincentelli, A.: Implicit Enumeration of Finite State Machines Using BDDs. In: Proc. Int’l. Conf. on Computer-Aided Design, San Jose, California, pp. 130–133 (November 1990)Google Scholar
  21. 21.
    Queille, J., Sifakis, J.: Specification and verification of concurrent systems in CAESAR. In: Proc. of Fifth ISP (1982)Google Scholar
  22. 22.
    Pnueli, A.: A temporal logic of concurrent programs. Theor. Comp. Sci. 13, 45–60 (1981)CrossRefMATHGoogle Scholar
  23. 23.
    Har’El, Z., Kurshan, R.P.: Software for analytical development of communications protocols. AT&T Bell Laboratories Technical Journal 69(1), 45–59 (1990)CrossRefGoogle Scholar
  24. 24.
    Cleaveland, R., Parrow, J., Steffen, B.: The Concurrency Workbench: A semantics-based tool for the verification of concurrent systems. ACM TOPLAS 15(1), 36–72 (1993)CrossRefGoogle Scholar
  25. 25.
    Roscoe, A.: Model-checking CSP. In: Roscoe, A. (ed.) A Classical Mind: Essays in Honour of C.A.R. Hoare, Prentice-Hall, Englewood Cliffs (1994)Google Scholar
  26. 26.
    Fernandez, J.A., Grant, J., Minker, J.: Model theoretic approach to view updates in deductive databases. Journal of Automated Reasoning 17, 171–197 (1996)MathSciNetCrossRefMATHGoogle Scholar
  27. 27.
    Roy, V., de Simone, R.: Auto and autograph. In: Clarke, E., Kurshan, R.P. (eds.) CAV 1990. LNCS, vol. 531, pp. 65–75. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  28. 28.
    Vardi, M., Wolper, P.: Automata-theoretic techniques for modal logics of programs. Journal of Computer and Systems Science 32, 183–221 (1986)MathSciNetCrossRefMATHGoogle Scholar
  29. 29.
    Tarski, A.: Lattice-theoretic fixpoint theorem and its applications. Journal Franklin Institute 5, 285–309 (1955)MATHGoogle Scholar
  30. 30.
    Iwashita, H., Nakata, T., Hirose, F.: CTL model checking based on forward state traversal. In: Proceedings of the International Conference on Computer-Aided Design, San Jose - CA, pp. 82–87 (November 1996)Google Scholar
  31. 31.
    Iwashita, H., Nakata, T.: Forward model checking techniques oriented to buggy designs. In: Proceedings of the International Conference on Computer-Aided Design, San Jose - CA, pp. 400–405 (November 1997)Google Scholar
  32. 32.
    Seger, C.-J.H., Bryant, R.E.: Formal Verification by Symbolic Evaluation of Partially-Ordered Trajectories. Formal Methods in Systems Design 6(1), 147–189 (1995)CrossRefGoogle Scholar
  33. 33.
    Bryant, R.E.: Symbolic Verification of MOS Circuits. In: Chapel Hill Conference on VLSI, pp. 419–438 (1985)Google Scholar
  34. 34.
    Bryant, R.E., Seger, C.-J.: Formal Verification of Digital Circuits Using Symbolic Ternary System Models. In: DIMAC Workshop on Computer-Aided Verification, pp. 183–221 (June 1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Gianpiero Cabodi
    • 1
  • Marco Murciano
    • 1
  1. 1.Dip. di Automatica e InformaticaPolitecnico di TorinoTurinItaly

Personalised recommendations