Verification of Arithmetic Functions with Binary Moment Diagrams

Binary Moment Diagrams (BMDs) provide a canonical representations for linear functions similar to the way Binary Decision Diagrams (BDDs) represent Boolean functions. Within the class of linear functions, we can embed arbitary functions from Boolean variables to real, rational, or integer values. BMDs can thus model the functionality of data path circuits operating over word level data. Many important functions, including integer multiplication, that cannot be represented efficiently at the bit level with BDDs have simple representations at the word level with BMDs. Furthermore, BMDs can represent Boolean functions with around the same complexity as BDDs. We propose a hierarchical approach to verifying arithmetic circuits, here basic building blocks are first shown to implement a word-level specification. The overall circuit functionality is then verified at the word level. Multipliers with word sizes of up to 62 bits have been verified by this technique.

[1]  F. F. Sellers,et al.  Analyzing Errors with the Boolean Difference , 1968, IEEE Transactions on Computers.

[2]  J. C. Cluley Digital Circuits for Binary Arithmetic , 1980 .

[3]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[4]  Jerry R. Burch,et al.  Using bdds to verify multipliers , 1991, 28th ACM/IEEE Design Automation Conference.

[5]  Randal E. Bryant,et al.  On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication , 1991, IEEE Trans. Computers.

[6]  Robert D. Silverman Massively distributed computing and factoring large integers , 1991, CACM.

[7]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[8]  Yung-Te Lai,et al.  Edge-valued binary decision diagrams for multi-level hierarchical verification , 1992, DAC '92.

[9]  Christoph Meinel,et al.  Efficient Analysis and Manipulation of OBDDs can be Extended to Read-once-only Branching Programs , 1992, Universität Trier, Mathematik/Informatik, Forschungsbericht.

[10]  Masahiro Fujita,et al.  Spectral Transforms for Large Boolean Functions with Applications to Technology Mapping , 1993, 30th ACM/IEEE Design Automation Conference.

[11]  Sarma B. K. Vrudhula,et al.  FGILP: an integer linear program solver based on function graphs , 1993, ICCAD '93.

[12]  Hiroyuki Ochi,et al.  Breadth-first manipulation of very large binary-decision diagrams , 1993, ICCAD.

[13]  Enrico Macii,et al.  Algebraic decision diagrams and their applications , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[14]  Richard Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD.

[15]  Rolf Drechsler,et al.  Efficient Representation and Manipulation of Switching Functions Based on Ordered Kronecker Functional Decision Diagrams , 1994, 31st Design Automation Conference.

[16]  Ingo Wegener,et al.  Graph Driven BDDs - A New Data Structure for Boolean Functions , 1995, Theor. Comput. Sci..

[17]  Rolf Drechsler,et al.  On the Relation between BDDs and FDDs , 1995, Inf. Comput..

[18]  Massoud Pedram,et al.  Edge Valued Binary Decision Diagrams , 1996 .