Automatic Vector Generation Using Constraints and Biasing

Constraining and biasing are frequently used techniques to enhance the quality of randomized vector generation. In this paper, we present a novel method that combines constraints and input biasing in automatic bit-vector generation for block-level functional verification of digital designs, which is implemented in a tool called SimGen. Vector generation in SimGen is confined to a legal input space that is defined by constraints symbolically represented in Binary Decision Diagrams (BDDs). A constraint involving state variables in the design defines a state-dependent legal input space. Input biasing can also depend on the state of the design. The effect of constraints and input biasing are combined to form what we called the constrained probabilities of input vectors. An algorithm is developed to efficiently generate input vectors on-the-fly during simulation. The vector generation is a one-pass process, i.e., no backtracking or retry is needed. Also, we describe methods of minimizing the constraint BDDs in an effort to reduce the simulation-time overhead of SimGen. Furthermore we discuss the application of SimGen to a set of commercial design blocks.

[1]  A. K. Chandra,et al.  Constraint solving for test case generation: a technique for high-level design verification , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[2]  Daniel Geist,et al.  AVPGEN-A test generator for architecture verification , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[3]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[4]  Christian Berthet,et al.  Functional verification methodology of Chameleon processor , 1996, DAC '96.

[5]  R. C. Pixley,et al.  INTEGRATING MODEL CHECKING INTO THE SEMICONDUCTOR DESIGN FLOW , 1999 .

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

[7]  Carl Pixley,et al.  Design Constraints in Symbolic Model Checking , 1998, CAV.

[8]  Aharon Aharon,et al.  Verification of the IBM RISC System/6000 by a Dynamic Biased Pseudo-Random Test Program Generator , 1991, IBM Syst. J..

[9]  R. BurchJ.,et al.  Symbolic model checking , 1992 .

[10]  Adrian Evans,et al.  Functional verification of large ASICs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[11]  Carl Ramey,et al.  Functional verification of a multiple-issue, out-of-order, superscalar Alpha processor-the DEC Alpha 21264 microprocessor , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[12]  Bernd Becker,et al.  A BDD-based algorithm for computation of exact fault detection probabilities , 1993, FTCS-23 The Twenty-Third International Symposium on Fault-Tolerant Computing.

[13]  Enrico Macii,et al.  Symbolic algorithms to calculate steady-state probabilities of a finite state machine , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[14]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[15]  Manuel Blum,et al.  Equivalence of Free Boolean Graphs can be Decided Probabilistically in Polynomial Time , 1980, Inf. Process. Lett..

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

[17]  R. Raina,et al.  Functional verification methodology for the PowerPC 604 microprocessor , 1996, 33rd Design Automation Conference Proceedings, 1996.

[18]  Michael Burns,et al.  Commercial design verification: methodology and tools , 1996, Proceedings International Test Conference 1996. Test and Design Validity.

[19]  R. I. Bahar,et al.  Algebraic decision diagrams and their applications , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).