Functional vector generation for HDL models using linear programming and 3-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 checking problem by expanding the arithmetic modules into logic-gates. However, this approach is not very efficient. We present a new HDL-satisfiability 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 datapath modules, and 3-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-satisfiability checking algorithm in this paper. Experimental results which show significant speedups over state-of-the-art gate-level satisfiability checking methods are included.

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

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

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

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

[5]  George S. Avrunin,et al.  Experiments in automated analysis of concurrent software systems , 1989 .

[6]  Arthur D. Friedman,et al.  Logical design of digital systems , 1975 .

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

[8]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

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

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

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

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

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

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

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

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