Combining Software and Hardware Verification Techniques

Combining verification methods developed separately for software and hardware is motivated by the industry's need for a technology that would make formal verification of realistic software/hardware co-designs practical. We focus on techniques that have proved successful in each of the two domains: BDD-based symbolic model checking for hardware verification and partial order reduction for the verification of concurrent software programs. In this paper, we first suggest a modification of partial order reduction, allowing its combination with any BDD-based verification tool, and then describe a co-verification methodology developed using these techniques jointly. Our experimental results demonstrate the efficiency of this combined verification technique, and suggest that for moderate–size systems the method is ready for industrial application.

[1]  Robert K. Brayton,et al.  Partial-Order Reduction in Symbolic State Space Exploration , 1997, CAV.

[2]  David L. Dill,et al.  Trace theory for automatic hierarchical verification of speed-independent circuits , 1989, ACM distinguished dissertations.

[3]  Hüsnü Yenigün,et al.  SDLcheck: A Model Checking Tool , 2001, CAV.

[4]  Ariel Orda,et al.  Modelling Asynchrony with a Synchronous Model , 1995, Formal Methods Syst. Des..

[5]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[6]  Richard M. Karp,et al.  Reducibility among combinatorial problems" in complexity of computer computations , 1972 .

[7]  Dieter Hogrefe,et al.  Formal description techniques, VII : proceedings of the 7th IFIP WG 6.1 International Conference on Formal Description Techniques , 1995 .

[8]  Robert P. Kurshan,et al.  Software for analytical development of communications protocols , 1990, AT&T Technical Journal.

[9]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[10]  Ieee Standards Board IEEE Standard hardware Description language : based on the Verilog hardware description language , 1996 .

[11]  Patrice Godefroid,et al.  Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract) , 1993, CAV.

[12]  Stephen J. Mellor,et al.  Object lifecycles: modeling the world in states , 1992 .

[13]  Saharon Shelah,et al.  On the temporal analysis of fairness , 1980, POPL '80.

[14]  James C. Browne,et al.  A Formal Object-Oriented Analysis for Software Reliability: Design for Verification , 2001, FASE.

[15]  Doron A. Peled,et al.  Combining partial order reductions with on-the-fly model-checking , 1994, Formal Methods Syst. Des..

[16]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[17]  Danny Dolev,et al.  An O(n log n) Unidirectional Distributed Algorithm for Extrema Finding in a Circle , 1982, J. Algorithms.

[18]  Doron A. Peled,et al.  Stutter-Invariant Temporal Properties are Expressible Without the Next-Time Operator , 1997, Inf. Process. Lett..

[19]  Doron A. Peled,et al.  Static Partial Order Reduction , 1998, TACAS.

[20]  Doron A. Peled,et al.  Formal Verification of a Partial-Order Reduction Technique for Model Checking , 1996, TACAS.

[21]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[22]  Antti Valmari,et al.  A stubborn attack on state explosion , 1990, Formal Methods Syst. Des..

[23]  Ariel Orda,et al.  Modelling Asynchrony with a Synchronous Model , 1995, CAV.

[24]  Gerard J. Holzmann,et al.  An improvement in formal verification , 1994, FORTE.

[25]  Xuemin Lin,et al.  A Fast and Effective Heuristic for the Feedback Arc Set Problem , 1993, Inf. Process. Lett..

[26]  Bonnie Berger,et al.  Approximation alogorithms for the maximum acyclic subgraph problem , 1990, SODA '90.