OCCOM: efficient computation of observability-based code coverage metrics for functional verification

Functional simulation is still the primary workhorse for verifying the functional correctness of hardware designs. Functional verification is necessarily incomplete because it is not computationally feasible to exhaustively simulate designs. It is important therefore to quantitatively measure the degree of verification coverage of the design. Coverage metrics proposed for measuring the extent of design verification provided by a set of functional simulation vectors should compute statement execution counts (controllability information), and check to see whether effects of possible errors activated by program stimuli can be observed at the circuit outputs (observability information). Unfortunately, the metrics proposed thus far, either to not compute both types of information, or are inefficient, i.e., the overhead of computing the metric is very large. In this paper, we provide the details of an efficient method to compute an Observability-based Code COverage Metric (OCCOM) that can be used while simulating complex HDL designs. This method offers a more accurate assessment of design verification coverage than line coverage, and is significantly more computationally efficient than prior efforts to assess observability information because it breaks up the computation into two phases: Functional simulation of a modified HDL model, followed by analysis of a flowgraph extracted from the HDL model. Commercial HDL simulators can be directly used for the time-consuming first phase, and the second phase can be performed efficiently using concurrent evaluation techniques.

[1]  Tarak Goradia Dynamic impact analysis: a cost-effective technique to enforce error-propagation , 1993, ISSTA '93.

[2]  Kwang-Ting Cheng,et al.  Transition fault testing for sequential circuits , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

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

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

[5]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[6]  Melvin A. Breuer,et al.  Digital systems testing and testable design , 1990 .

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

[8]  Jacob A. Abraham,et al.  Functional Testing of Microprocessors , 1984, IEEE Transactions on Computers.

[9]  Jacob A. Abraham,et al.  Test Generation for Microprocessors , 1980, IEEE Transactions on Computers.

[10]  Sungho Kang,et al.  Modelling and simulation of design errors , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[11]  Jacob A. Abraham,et al.  Automatic extraction of the control flow machine and application to evaluating coverage of verification vectors , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[12]  Avner Landver,et al.  Coverage-Directed Test Generation Using Symbolic Techniques , 1996, FMCAD.

[13]  Jeffrey M. Voas,et al.  PIE: A Dynamic Failure-Based Technique , 1992, IEEE Trans. Software Eng..

[14]  Donald E. Thomas,et al.  The Verilog hardware description language (4th ed.) , 1998 .

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

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

[17]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

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

[19]  J. Paul Roth,et al.  Diagnosis of automata failures: a calculus and a method , 1966 .

[20]  Farzan Fallah Coverage-directed validation of hardware models , 1999 .

[21]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .

[22]  M. Kantrowitz,et al.  I'm done simulating; now what? Verification coverage analysis and correctness checking of the DECchip 21164 Alpha microprocessor , 1996, 33rd Design Automation Conference Proceedings, 1996.

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

[24]  Brian Marick,et al.  The craft of software testing , 1994 .

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

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