Formal verification of component-based designs

Embedded systems are becoming increasingly common in our everyday lives. As technology progresses, these systems become more and more complex, and designers handle this increasing complexity by reusing existing components (Intellectual Property blocks). At the same time, the systems must fulfill strict requirements on reliability and correctness.This paper proposes a formal verification methodology which smoothly integrates with component-based system-level design using a divide and conquer approach. The methodology assumes that the system consists of several reusable components, each of them already formally verified by their designers. The components are considered correct given that the environment satisfies certain properties imposed by the component. The methodology verifies the correctness of the glue logic inserted between the components and the interaction of the components through the glue logic. Each such glue logic is verified one at a time using model checking techniques.Experimental results have shown the efficiency of the proposed methodology and demonstrated that it is feasible to apply such a verification methodology on real-life examples.

[1]  Martín Abadi,et al.  Composing specifications , 1989, TOPL.

[2]  Jürgen Haase Design methodology for IP providers , 1999, DATE '99.

[3]  R. Camposano,et al.  IP reuse in the system on a chip era , 2000, Proceedings 13th International Symposium on System Synthesis.

[4]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[5]  Petru Eles,et al.  A formal verification methodology for IP-based designs , 2004 .

[6]  Christel Baier,et al.  Model Checking with Formula-Dependent Abstract Models , 2001, CAV.

[7]  Tulika Mitra,et al.  Using formal techniques to debug the AMBA system-on-chip bus protocol , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[8]  Miodrag Potkonjak,et al.  Effective iterative techniques for fingerprinting design IP , 1999, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Howard Barringer,et al.  Proof Rules for Automated Compositional Verification through Learning , 2003 .

[10]  Olivier Coudert,et al.  A unified framework for the formal verification of sequential circuits , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[11]  John M. Rushby,et al.  Theorem Proving for Verification , 2000, MOVEP.

[12]  Wolfgang Rosenstiel,et al.  A qualification platform for design reuse , 2002, Proceedings International Symposium on Quality Electronic Design.

[13]  Shing-Chi Cheung,et al.  Context constraints for compositional reachability analysis , 1996, TSEM.

[14]  Arcot Sowmya,et al.  Forced simulation: A technique for automating component reuse in embedded systems , 2001, TODE.

[15]  Pierre Bricaud,et al.  Reuse methodology manual for system-on-chip designs , 1998 .

[16]  V. Chaiyakul,et al.  Essential issues for IP reuse , 2000, Proceedings 2000. Design Automation Conference. (IEEE Cat. No.00CH37106).

[17]  David Garlan,et al.  A compositional formalization of connector wrappers , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[18]  Alberto L. Sangiovanni-Vincentelli,et al.  Interface-based design , 1997, DAC.

[19]  Sriram K. Rajamani,et al.  SLIC: A Specification Language for Interface Checking (of C) , 2002 .

[20]  Petru Eles,et al.  Formal verification in a component-based reuse methodology , 2002, 15th International Symposium on System Synthesis, 2002..

[21]  Fred B. Schneider,et al.  Enforceable security policies , 2000, Foundations of Intrusion Tolerant Systems, 2003 [Organically Assured and Survivable Information Systems].

[22]  Amir Pnueli,et al.  In Transition From Global to Modular Temporal Reasoning about Programs , 1989, Logics and Models of Concurrent Systems.

[23]  Martín Abadi,et al.  Conjoining specifications , 1995, TOPL.

[24]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[25]  Bryan D. Ackland,et al.  A single-chip 1.6 billion 16-b MAC/s multiprocessor DSP , 1999 .

[26]  Frank Vahid,et al.  An object-oriented communication library for hardware-software codesign , 1997, Proceedings of 5th International Workshop on Hardware/Software Co Design. Codes/CASHE '97.

[27]  P. Eles,et al.  Verification of embedded systems using a Petri net based representation , 2000, Proceedings 13th International Symposium on System Synthesis.

[28]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[29]  Fei Xie,et al.  Verified systems by composition from verified components , 2003, ESEC/FSE-11.

[30]  Daniel D. Gajski,et al.  Embedded tutorial: essential issues for IP reuse , 2000, ASP-DAC '00.

[31]  Arcot Sowmya,et al.  K-time forced simulation: a formal verification technique for IP reuse , 2002, Proceedings. IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[32]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[33]  Stephan Merz,et al.  Model Checking , 2000 .

[34]  Miodrag Potkonjak,et al.  Behavioral synthesis techniques for intellectual property protection , 2005, TODE.