BDD-Nodes Can Be More Expressive

  • Authors:
  • Frank Reffel

  • Affiliations:
  • -

  • Venue:
  • ASIAN '99 Proceedings of the 5th Asian Computing Science Conference on Advances in Computing Science
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

Normally a whole BDD is associated with its root node. We state that this is not necessarily the best choice. BDDs can be stored more memory efficient if a possibility is introduced that one node can represent several BDDs. BDDs made it possible to apply symbolic model checking [15] to systems which could not be verified with methods based on an explicit state space representation. However, they cannot always avoid an exponential blowup known as the state space explosion which is caused by the fact that the system is build through a composition of modules. We divide the variable index placed in the BDD nodes into two parts. Only one of it is included in the new nodes called CBDD-nodes. This allows the use of one BDD label, i.e. one BDD node, for different variables. Moreover a branching possibility at the end of a BDD-part is introduced such that BDD-parts situated in different layers of the BDD can be shared. A prototypical BDD-library was implemented that uses cyclic BDDs (CBDDs). It was used to verify examples out of the following domains: hardware verification, model checking and communication protocols. Some encouraging results have been achieved where it was possible to represent certain functions with a constant number of CBDD-nodes while classical BDDs grow linearly.