Functional vector generation for HDL models using linearprogramming and Boolean satisfiability

Our strategy for automatic generation of functional vectors is based on exercising selected paths in the given hardware description language (HDL) model. The HDL model describes interconnections of arithmetic, logic, and memory modules. Given a path in the HDL model, the search for input stimuli that exercise the path can be converted into a standard satisfiability (SAT) checking problem by expanding the arithmetic modules into logic gates. However, this approach is not very efficient. We present a new HDL-SAT checking algorithm that works directly on the HDL model. The primary feature of our algorithm is a seamless integration of linear-programming techniques for feasibility checking of arithmetic equations that govern the behavior of data-path modules and SAT checking for logic equations that govern the behavior of control modules. This feature is critically important to efficiency, since it avoids module expansion and allows us to work with logic and arithmetic equations whose cardinality tracks the size of the HDL model. We describe the details of the HDL-SAT checking algorithm in this paper. Experimental results that show significant speedups over state-of-the-art gate-level SAT checking methods are included.

[1]  Kurt Keutzer,et al.  An observability-based code coverage metric for functional simulation , 1996, Proceedings of International Conference on Computer Aided Design.

[2]  Kaushik Roy,et al.  High level test generation using data flow descriptions , 1990, Proceedings of the European Design Automation Conference, 1990., EDAC..

[3]  Tracy Larrabee,et al.  Test pattern generation using Boolean satisfiability , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[4]  Michael H. Schulz,et al.  Hierarchical test pattern generation based on high-level primitives , 1989, Proceedings. 'Meeting the Tests of Time'., International Test Conference.

[5]  Kwang-Ting Cheng,et al.  Automatic Functional Test Generation Using The Extended Finite State Machine Model , 1993, 30th ACM/IEEE Design Automation Conference.

[6]  Michael Kantrowitz,et al.  I'm done simulating; now what? Verification coverage analysis and correctness checking of the DEC chip 21164 Alpha microprocessor , 1996, DAC '96.

[7]  William W. Cohen,et al.  Synthesis and Optimization of Multilevel Logic under Timing Constraints , 1986, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[8]  Karem A. Sakallah,et al.  GRASP—a new search algorithm for satisfiability , 1996, ICCAD 1996.

[9]  Kurt Keutzer,et al.  OCCOM: efficient computation of observability-based code coverage metrics for functional verification , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[10]  D. C. King Diagnosis and reliable design of digital systems , 1977 .

[11]  Jaushin Lee Architectural level test generation and fault simulation , 1992 .

[12]  Leon J. Osterweil,et al.  Cesar: a static sequencing constraint analyzer , 1989, TAV3.

[13]  Srinivas Devadas,et al.  Sequential Logic Testing and Verification , 1991 .

[14]  Robert K. Brayton,et al.  Combinational test generation using satisfiability , 1996, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[15]  Richard Gerber,et al.  Symbolic Model Checking of Infinite State Systems Using Presburger Arithmetic , 1997, CAV.

[16]  Tohru Sasaki,et al.  A High Level Test Pattern Generation Algorithm , 1983, ITC.

[17]  Kurt Keutzer,et al.  An observability-based code coverage metric for functional simulation , 1996, ICCAD 1996.

[18]  Aharon Aharon,et al.  Test Program Generation for Functional Verification of PowePC Processors in IBM , 1995, 32nd Design Automation Conference.

[19]  Sharad Malik,et al.  Toward formalizing a validation methodology using simulation coverage , 1997, DAC.

[20]  Premachandran R. Menon,et al.  Symbolic test generation for hierarchically modeled digital systems , 1989, Proceedings. 'Meeting the Tests of Time'., International Test Conference.

[21]  Mark Willard Johnson High Level Test Generation Using Software Testing Metrics , 1995 .

[22]  George S. Avrunin,et al.  Experiments with automated constrained expression analysis of concurrent software systems , 1989 .

[23]  K. D. Jones,et al.  The automatic generation of functional test vectors for Rambus designs , 1996, 33rd Design Automation Conference Proceedings, 1996.

[24]  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.

[25]  K. D. Jones,et al.  The automatic generation of functional test vectors for Rambus designs , 1996, DAC '96.

[26]  Mark Horowitz,et al.  Architecture validation for processors , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[27]  Jian Shen,et al.  On Combining Formal and Informal Verification , 1997, CAV.

[28]  Fredrick J. Hill,et al.  A Design Language Based Approach to Test Sequence Generation , 1977, Computer.

[29]  Franc Brglez,et al.  A framework and method for hierarchical test generation , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[30]  Kaushik Roy The use of RTL descriptions in accurate timing verification and test generation (VLSI) , 1991 .